Added query function for easier queries.

Normalized method names in GroupManager.cs
This commit is contained in:
high 2011-07-24 10:12:18 -04:00
parent cda0002889
commit 57a2d082ef
8 changed files with 205 additions and 276 deletions

View file

@ -1218,7 +1218,7 @@ namespace TShockAPI
args.Parameters.RemoveAt(0); args.Parameters.RemoveAt(0);
String permissions = String.Join(",", args.Parameters ); String permissions = String.Join(",", args.Parameters );
String response = TShock.Groups.addGroup(groupname, permissions); String response = TShock.Groups.AddGroup(groupname, permissions);
if( response.Length > 0 ) if( response.Length > 0 )
args.Player.SendMessage(response, Color.Green); args.Player.SendMessage(response, Color.Green);
} }
@ -1234,7 +1234,7 @@ namespace TShockAPI
{ {
String groupname = args.Parameters[0]; String groupname = args.Parameters[0];
String response = TShock.Groups.delGroup(groupname); String response = TShock.Groups.DeleteGroup(groupname);
if (response.Length > 0) if (response.Length > 0)
args.Player.SendMessage(response, Color.Green); args.Player.SendMessage(response, Color.Green);
} }
@ -1256,14 +1256,14 @@ namespace TShockAPI
if (com.Equals("add")) if (com.Equals("add"))
{ {
String response = TShock.Groups.addPermission(groupname, args.Parameters); String response = TShock.Groups.AddPermissions(groupname, args.Parameters);
if (response.Length > 0) if (response.Length > 0)
args.Player.SendMessage(response, Color.Green); args.Player.SendMessage(response, Color.Green);
return; return;
} }
else if (com.Equals("del") || com.Equals("delete")) else if (com.Equals("del") || com.Equals("delete"))
{ {
String response = TShock.Groups.delPermission(groupname, args.Parameters); String response = TShock.Groups.DeletePermissions(groupname, args.Parameters);
if (response.Length > 0) if (response.Length > 0)
args.Player.SendMessage(response, Color.Green); args.Player.SendMessage(response, Color.Green);
return; return;

View file

@ -34,18 +34,17 @@ namespace TShockAPI.DB
{ {
database = db; database = db;
using (var com = database.CreateCommand()) string query;
{
if (TShock.Config.StorageType.ToLower() == "sqlite") if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = query =
"CREATE TABLE IF NOT EXISTS 'Bans' ('IP' TEXT PRIMARY KEY, 'Name' TEXT, 'Reason' TEXT);"; "CREATE TABLE IF NOT EXISTS 'Bans' ('IP' TEXT PRIMARY KEY, 'Name' TEXT, 'Reason' TEXT);";
else if (TShock.Config.StorageType.ToLower() == "mysql") else
com.CommandText = query =
"CREATE TABLE IF NOT EXISTS Bans (IP VARCHAR(255) PRIMARY, Name VARCHAR(255), Reason VARCHAR(255));"; "CREATE TABLE IF NOT EXISTS Bans (IP VARCHAR(255) PRIMARY, Name VARCHAR(255), Reason VARCHAR(255));";
com.ExecuteNonQuery(); db.Query(query);
String file = Path.Combine( TShock.SavePath, "bans.txt" ); String file = Path.Combine(TShock.SavePath, "bans.txt");
if (File.Exists(file)) if (File.Exists(file))
{ {
using (StreamReader sr = new StreamReader(file)) using (StreamReader sr = new StreamReader(file))
@ -55,14 +54,10 @@ namespace TShockAPI.DB
{ {
String[] info = line.Split('|'); String[] info = line.Split('|');
if (TShock.Config.StorageType.ToLower() == "sqlite") if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = "INSERT OR IGNORE INTO Bans (IP, Name, Reason) VALUES (@ip, @name, @reason);"; query = "INSERT OR IGNORE INTO Bans (IP, Name, Reason) VALUES (@0, @1, @2);";
else if (TShock.Config.StorageType.ToLower() == "mysql") else
com.CommandText = "INSERT IGNORE INTO Bans SET IP=@ip, Name=@name, Reason=@reason;"; query = "INSERT IGNORE INTO Bans SET IP=@0, Name=@1, Reason=@2;";
com.AddParameter("@ip", info[0].Trim()); db.Query(query, info[0].Trim(), info[1].Trim(), info[2].Trim());
com.AddParameter("@name", info[1].Trim());
com.AddParameter("@reason", info[2].Trim());
com.ExecuteNonQuery();
com.Parameters.Clear();
} }
} }
String path = Path.Combine(TShock.SavePath, "old_configs"); String path = Path.Combine(TShock.SavePath, "old_configs");
@ -74,23 +69,15 @@ namespace TShockAPI.DB
File.Move(file, file2); File.Move(file, file2);
} }
} }
}
public Ban GetBanByIp(string ip) public Ban GetBanByIp(string ip)
{ {
try try
{ {
using (var com = database.CreateCommand()) using (var reader = database.QueryReader("SELECT * FROM Bans WHERE IP=@0", ip))
{
com.CommandText = "SELECT * FROM Bans WHERE IP=@ip";
com.AddParameter("@ip", ip);
using (var reader = com.ExecuteReader())
{ {
if (reader.Read()) if (reader.Read())
return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]); return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
reader.Close();
}
} }
} }
catch (Exception ex) catch (Exception ex)
@ -107,21 +94,15 @@ namespace TShockAPI.DB
return null; return null;
} }
try try
{
using (var com = database.CreateCommand())
{ {
var namecol = casesensitive ? "Name" : "UPPER(Name)"; var namecol = casesensitive ? "Name" : "UPPER(Name)";
if (!casesensitive) if (!casesensitive)
name = name.ToUpper(); name = name.ToUpper();
com.CommandText = "SELECT * FROM Bans WHERE " + namecol + "=@name"; using (var reader = database.QueryReader("SELECT * FROM Bans WHERE " + namecol + "=@0", name))
com.AddParameter("@name", name);
using (var reader = com.ExecuteReader())
{ {
if (reader.Read()) if (reader.Read())
return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]); return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
reader.Close();
}
} }
} }
catch (Exception ex) catch (Exception ex)
@ -135,15 +116,7 @@ namespace TShockAPI.DB
{ {
try try
{ {
using (var com = database.CreateCommand()) return database.Query("INSERT INTO Bans (IP, Name, Reason) VALUES (@0, @1, @2);", ip, name, reason) != 0;
{
com.CommandText = "INSERT INTO Bans (IP, Name, Reason) VALUES (@ip, @name, @reason);";
com.AddParameter("@ip", ip);
com.AddParameter("@name", name);
com.AddParameter("@reason", reason);
com.ExecuteNonQuery();
}
return true;
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -156,13 +129,7 @@ namespace TShockAPI.DB
{ {
try try
{ {
using (var com = database.CreateCommand()) return database.Query("DELETE FROM Bans WHERE IP=@ip", ip) != 0;
{
com.CommandText = "DELETE FROM Bans WHERE IP=@ip";
com.AddParameter("@ip", ip);
com.ExecuteNonQuery();
return true;
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -174,12 +141,7 @@ namespace TShockAPI.DB
{ {
try try
{ {
using (var com = database.CreateCommand()) return database.Query("DELETE FROM Bans") != 0;
{
com.CommandText = "DELETE FROM Bans";
com.ExecuteNonQuery();
return true;
}
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -8,6 +8,44 @@ namespace TShockAPI.DB
{ {
public static class DbExt public static class DbExt
{ {
/// <summary>
/// Executes a query on a database.
/// </summary>
/// <param name="db">Database to query</param>
/// <param name="query">Query string with parameters as @0, @1, etc.</param>
/// <param name="args">Parameters to be put in the query</param>
/// <returns>Rows affected by query</returns>
public static int Query(this IDbConnection db, string query, params object[] args)
{
using (var com = db.CreateCommand())
{
com.CommandText = query;
for (int i = 0; i < args.Length; i++)
com.AddParameter("@" + i, args[i]);
return com.ExecuteNonQuery();
}
}
/// <summary>
/// Executes a query on a database.
/// </summary>
/// <param name="db">Database to query</param>
/// <param name="query">Query string with parameters as @0, @1, etc.</param>
/// <param name="args">Parameters to be put in the query</param>
/// <returns>Query result as IDataReader</returns>
public static IDataReader QueryReader(this IDbConnection db, string query, params object[] args)
{
using (var com = db.CreateCommand())
{
com.CommandText = query;
for (int i = 0; i < args.Length; i++)
com.AddParameter("@" + i, args[i]);
return com.ExecuteReader();
}
}
public static IDbDataParameter AddParameter(this IDbCommand command, string name, object data) public static IDbDataParameter AddParameter(this IDbCommand command, string name, object data)
{ {
var parm = command.CreateParameter(); var parm = command.CreateParameter();

View file

@ -18,17 +18,15 @@ namespace TShockAPI.DB
{ {
database = db; database = db;
using (var com = database.CreateCommand()) string query;
{
if (TShock.Config.StorageType.ToLower() == "sqlite") if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = query =
"CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT, 'OrderBy' TEXT);"; "CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT, 'OrderBy' TEXT);";
else if (TShock.Config.StorageType.ToLower() == "mysql") else
com.CommandText = query =
"CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255), OrderBy VARCHAR(255));"; "CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255), OrderBy VARCHAR(255));";
com.ExecuteNonQuery(); db.Query(query);
}
//Add default groups //Add default groups
AddGroup("trustedadmin", "admin,maintenance,cfg,butcher,item,heal,immunetoban,ignorecheatdetection,ignoregriefdetection,usebanneditem,manageusers"); AddGroup("trustedadmin", "admin,maintenance,cfg,butcher,item,heal,immunetoban,ignorecheatdetection,ignoregriefdetection,usebanneditem,manageusers");
@ -60,18 +58,14 @@ namespace TShockAPI.DB
comms = comms + ","; comms = comms + ",";
comms = comms + info[i].Trim(); comms = comms + info[i].Trim();
} }
using (var com = database.CreateCommand())
{
if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@groupname, @commands, @order);";
else if (TShock.Config.StorageType.ToLower() == "mysql")
com.CommandText = "INSERT IGNORE INTO GroupList SET GroupName=@groupname, Commands=@commands, OrderBy=@order;";
com.AddParameter("@groupname", info[0].Trim()); if (TShock.Config.StorageType.ToLower() == "sqlite")
com.AddParameter("@commands", comms); query = "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);";
com.AddParameter("@order", hasOrder ? info[info.Length - 1] : "0"); else if (TShock.Config.StorageType.ToLower() == "mysql")
com.ExecuteNonQuery(); query = "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1, OrderBy=@2;";
}
db.Query(query, info[0].Trim(), comms, hasOrder ? info[info.Length - 1] : "0");
} }
} }
} }
@ -86,27 +80,6 @@ namespace TShockAPI.DB
} }
/// <summary>
/// Adds group with name and permissions if it does not exist.
/// </summary>
/// <param name="name">name of group</param>
/// <param name="commands">permissions</param>
public void AddGroup(string name, string commands)
{
using (var com = database.CreateCommand())
{
if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText =
"INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@groupname, @commands, @order);";
else if (TShock.Config.StorageType.ToLower() == "mysql")
com.CommandText =
"INSERT IGNORE INTO GroupList SET GroupName=@groupname, Commands=@commands, OrderBy=@order;";
com.AddParameter("@groupname", name);
com.AddParameter("@commands", commands);
com.AddParameter("@order", "0");
com.ExecuteNonQuery();
}
}
public bool GroupExists(string group) public bool GroupExists(string group)
{ {
@ -123,93 +96,74 @@ namespace TShockAPI.DB
return false; return false;
} }
public String addGroup(String name, String permissions) /// <summary>
/// Adds group with name and permissions if it does not exist.
/// </summary>
/// <param name="name">name of group</param>
/// <param name="permissions">permissions</param>
public String AddGroup(String name, String permissions)
{ {
String message = ""; String message = "";
if( GroupExists( name ) ) if (GroupExists(name))
return "Error: Group already exists. Use /modGroup to change permissions."; return "Error: Group already exists. Use /modGroup to change permissions.";
using (var com = database.CreateCommand())
{
if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@groupname, @commands, @order);"; string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
else if (TShock.Config.StorageType.ToLower() == "mysql") "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);" :
com.CommandText = "INSERT IGNORE INTO GroupList SET GroupName=@groupname, Commands=@commands, OrderBy=@order;"; "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1, OrderBy=@2;";
com.AddParameter("@groupname", name); if (database.Query(query, name, permissions, "0") == 1)
com.AddParameter("@commands", permissions);
com.AddParameter("@order", "0");
if (com.ExecuteNonQuery() == 1)
message = "Group " + name + " has been created successfully."; message = "Group " + name + " has been created successfully.";
Group g = new Group(name); Group g = new Group(name);
g.permissions.Add(permissions); g.permissions.Add(permissions);
groups.Add(g); groups.Add(g);
}
return message; return message;
} }
public String delGroup(String name) public String DeleteGroup(String name)
{ {
String message = ""; String message = "";
if (!GroupExists(name)) if (!GroupExists(name))
return "Error: Group doesn't exists."; return "Error: Group doesn't exists.";
using (var com = database.CreateCommand())
{ if (database.Query("DELETE FROM GroupList WHERE GroupName=@0", name) == 1)
com.CommandText = "Delete FROM GroupList WHERE GroupName=@groupname;";
com.AddParameter("@groupname", name);
if (com.ExecuteNonQuery() == 1)
message = "Group " + name + " has been deleted successfully."; message = "Group " + name + " has been deleted successfully.";
groups.Remove(Tools.GetGroup(name)); groups.Remove(Tools.GetGroup(name));
}
return message; return message;
} }
public String addPermission(String name, List<String> permissions) public String AddPermissions(String name, List<String> permissions)
{ {
String message = ""; String message = "";
if (!GroupExists(name)) if (!GroupExists(name))
return "Error: Group doesn't exists."; return "Error: Group doesn't exists.";
using (var com = database.CreateCommand())
{ var group = Tools.GetGroup(name);
Group g = Tools.GetGroup(name); //Add existing permissions (without duplicating)
List<String> perm = g.permissions; permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s)));
foreach (String p in permissions)
{ if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", permissions), name) != 0)
if (!perm.Contains(p))
{
if (perm.Count > 0 && perm[0].Equals(""))
perm[0] = p;
else
g.permissions.Add(p);
}
}
com.CommandText = "UPDATE GroupList SET Commands=@perm WHERE GroupName=@name;";
com.AddParameter("@perm", String.Join(",", perm));
com.AddParameter("@name", name);
if (com.ExecuteNonQuery() == 1)
message = "Group " + name + " has been modified successfully."; message = "Group " + name + " has been modified successfully.";
}
return message; return message;
} }
public String delPermission(String name, List<String> permissions) public String DeletePermissions(String name, List<String> permissions)
{ {
String message = ""; String message = "";
if (!GroupExists(name)) if (!GroupExists(name))
return "Error: Group doesn't exists."; return "Error: Group doesn't exists.";
using (var com = database.CreateCommand())
{ var group = Tools.GetGroup(name);
Group g = Tools.GetGroup(name);
List<String> perm = g.permissions; //Only get permissions that exist in the group.
foreach (String p in permissions) var newperms = permissions.Where(s => group.permissions.Contains(s));
{
if (perm.Contains(p)) if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", newperms), name) != 0)
g.permissions.Remove(p);
}
com.CommandText = "UPDATE GroupList SET Commands=@perm WHERE GroupName=@name;";
com.AddParameter("@perm", String.Join(",", perm));
com.AddParameter("@name", name);
if (com.ExecuteNonQuery() == 1)
message = "Group " + name + " has been modified successfully."; message = "Group " + name + " has been modified successfully.";
}
return message; return message;
} }
@ -220,10 +174,8 @@ namespace TShockAPI.DB
try try
{ {
using (var com = database.CreateCommand())
{ using (var reader = database.QueryReader("SELECT * FROM Grouplist;"))
com.CommandText = "SELECT * FROM Grouplist;";
using (var reader = com.ExecuteReader())
{ {
while (reader.Read()) while (reader.Read())
{ {
@ -240,22 +192,6 @@ namespace TShockAPI.DB
groups.Add(group); groups.Add(group);
} }
} }
/** ORDER BY IS DUMB
//Inherit all commands from group below in order, unless Order is 0 (unique groups anyone)
foreach (Group group in groups)
{
if (group.Order != 0 && group.Order < groups.Count)
{
for (int i = group.Order + 1; i < groups.Count; i++)
{
for (int j = 0; j < groups[i].permissions.Count; j++)
{
group.AddPermission(groups[i].permissions[j]);
}
}
}
}*/
}
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -18,15 +18,11 @@ namespace TShockAPI.DB
{ {
database = db; database = db;
using (var com = database.CreateCommand())
{ string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
if (TShock.Config.StorageType.ToLower() == "sqlite") "CREATE TABLE IF NOT EXISTS 'ItemBans' ('ItemName' TEXT PRIMARY KEY);" :
com.CommandText =
"CREATE TABLE IF NOT EXISTS 'ItemBans' ('ItemName' TEXT PRIMARY KEY);";
else if (TShock.Config.StorageType.ToLower() == "mysql")
com.CommandText =
"CREATE TABLE IF NOT EXISTS ItemBans (ItemName VARCHAR(255) PRIMARY);"; "CREATE TABLE IF NOT EXISTS ItemBans (ItemName VARCHAR(255) PRIMARY);";
com.ExecuteNonQuery(); database.Query(query);
String file = Path.Combine(TShock.SavePath, "itembans.txt"); String file = Path.Combine(TShock.SavePath, "itembans.txt");
if (File.Exists(file)) if (File.Exists(file))
@ -38,16 +34,15 @@ namespace TShockAPI.DB
{ {
if (!line.Equals("") && !line.Substring(0, 1).Equals("#")) if (!line.Equals("") && !line.Substring(0, 1).Equals("#"))
{ {
if (TShock.Config.StorageType.ToLower() == "sqlite")
com.CommandText = "INSERT OR IGNORE INTO 'ItemBans' (ItemName) VALUES (@name);"; query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
else if (TShock.Config.StorageType.ToLower() == "mysql") "INSERT OR IGNORE INTO 'ItemBans' (ItemName) VALUES (@0);" :
com.CommandText = "INSERT IGNORE INTO ItemBans SET ItemName=@name;"; "INSERT IGNORE INTO ItemBans SET ItemName=@0;";
int id = 0; int id = 0;
int.TryParse(line, out id); int.TryParse(line, out id);
com.AddParameter("@name", Tools.GetItemById(id).name);
com.ExecuteNonQuery(); database.Query(query, Tools.GetItemById(id).name);
com.Parameters.Clear();
} }
} }
} }
@ -60,7 +55,6 @@ namespace TShockAPI.DB
File.Delete(file2); File.Delete(file2);
File.Move(file, file2); File.Move(file, file2);
} }
}
UpdateItemBans(); UpdateItemBans();
} }
@ -74,7 +68,7 @@ namespace TShockAPI.DB
using (var reader = com.ExecuteReader()) using (var reader = com.ExecuteReader())
{ {
while (reader!=null&&reader.Read()) while (reader != null && reader.Read())
ItemBans.Add(reader.Get<string>("ItemName")); ItemBans.Add(reader.Get<string>("ItemName"));
} }
} }
@ -83,15 +77,10 @@ namespace TShockAPI.DB
{ {
try try
{ {
using (var com = database.CreateCommand()) database.Query("INSERT INTO ItemBans (ItemName) VALUES (@0);", Tools.GetItemByName(itemname)[0].name);
{ if (!ItemIsBanned(itemname))
com.CommandText = "INSERT INTO ItemBans (ItemName) VALUES (@itemname);";
com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery();
if( !ItemIsBanned( itemname ) )
ItemBans.Add(itemname); ItemBans.Add(itemname);
} }
}
catch (Exception ex) catch (Exception ex)
{ {
Log.Error(ex.ToString()); Log.Error(ex.ToString());
@ -104,14 +93,9 @@ namespace TShockAPI.DB
return; return;
try try
{ {
using (var com = database.CreateCommand()) database.Query("Delete FROM 'ItemBans' WHERE ItemName=@0;", Tools.GetItemByName(itemname)[0].name);
{
com.CommandText = "Delete FROM 'ItemBans' WHERE ItemName=@itemname;";
com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery();
ItemBans.Remove(itemname); ItemBans.Remove(itemname);
} }
}
catch (Exception ex) catch (Exception ex)
{ {
Log.Error(ex.ToString()); Log.Error(ex.ToString());

View file

@ -43,14 +43,11 @@ namespace TShockAPI.DB
using (var com = database.CreateCommand()) using (var com = database.CreateCommand())
{ {
if (TShock.Config.StorageType.ToLower() == "sqlite") string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
com.CommandText = "CREATE TABLE IF NOT EXISTS 'Regions' ('X1' NUMERIC, 'Y1' NUMERIC, 'height' NUMERIC, 'width' NUMERIC, 'RegionName' TEXT PRIMARY KEY, 'WorldID' TEXT, 'UserIds' TEXT, 'Protected' NUMERIC);":
"CREATE TABLE IF NOT EXISTS 'Regions' ('X1' NUMERIC, 'Y1' NUMERIC, 'height' NUMERIC, 'width' NUMERIC, 'RegionName' TEXT PRIMARY KEY, 'WorldID' TEXT, 'UserIds' TEXT, 'Protected' NUMERIC);";
else if (TShock.Config.StorageType.ToLower() == "mysql")
com.CommandText =
"CREATE TABLE IF NOT EXISTS Regions (X1 INT(11), Y1 INT(11), height INT(11), width INT(11), RegionName VARCHAR(255) PRIMARY, WorldID VARCHAR(255), UserIds VARCHAR(255), Protected INT(1));"; "CREATE TABLE IF NOT EXISTS Regions (X1 INT(11), Y1 INT(11), height INT(11), width INT(11), RegionName VARCHAR(255) PRIMARY, WorldID VARCHAR(255), UserIds VARCHAR(255), Protected INT(1));";
com.ExecuteNonQuery(); database.Query(query);
String file = Path.Combine(TShock.SavePath, "regions.xml"); String file = Path.Combine(TShock.SavePath, "regions.xml");
String name = ""; String name = "";

11
TShockAPI/DB/SqlTable.cs Normal file
View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TShockAPI.DB
{
class SqlTable
{
}
}

View file

@ -96,6 +96,7 @@
<Compile Include="DB\ItemManager.cs" /> <Compile Include="DB\ItemManager.cs" />
<Compile Include="DB\DbExt.cs" /> <Compile Include="DB\DbExt.cs" />
<Compile Include="DB\GroupManager.cs" /> <Compile Include="DB\GroupManager.cs" />
<Compile Include="DB\SqlTable.cs" />
<Compile Include="DB\UserManager.cs" /> <Compile Include="DB\UserManager.cs" />
<Compile Include="IPackable.cs" /> <Compile Include="IPackable.cs" />
<Compile Include="Commands.cs" /> <Compile Include="Commands.cs" />
@ -170,7 +171,7 @@
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <VisualStudio>
<UserProperties BuildVersion_IncrementBeforeBuild="False" BuildVersion_StartDate="2011/6/17" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_BuildAction="Both" BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" /> <UserProperties BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildAction="Both" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_StartDate="2011/6/17" BuildVersion_IncrementBeforeBuild="False" />
</VisualStudio> </VisualStudio>
</ProjectExtensions> </ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.