diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 230add18..896cc4bd 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -1218,7 +1218,7 @@ namespace TShockAPI
args.Parameters.RemoveAt(0);
String permissions = String.Join(",", args.Parameters );
- String response = TShock.Groups.addGroup(groupname, permissions);
+ String response = TShock.Groups.AddGroup(groupname, permissions);
if( response.Length > 0 )
args.Player.SendMessage(response, Color.Green);
}
@@ -1234,7 +1234,7 @@ namespace TShockAPI
{
String groupname = args.Parameters[0];
- String response = TShock.Groups.delGroup(groupname);
+ String response = TShock.Groups.DeleteGroup(groupname);
if (response.Length > 0)
args.Player.SendMessage(response, Color.Green);
}
@@ -1256,14 +1256,14 @@ namespace TShockAPI
if (com.Equals("add"))
{
- String response = TShock.Groups.addPermission(groupname, args.Parameters);
+ String response = TShock.Groups.AddPermissions(groupname, args.Parameters);
if (response.Length > 0)
args.Player.SendMessage(response, Color.Green);
return;
}
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)
args.Player.SendMessage(response, Color.Green);
return;
diff --git a/TShockAPI/DB/BanManager.cs b/TShockAPI/DB/BanManager.cs
index b4beb54d..20bf5c84 100644
--- a/TShockAPI/DB/BanManager.cs
+++ b/TShockAPI/DB/BanManager.cs
@@ -34,45 +34,39 @@ namespace TShockAPI.DB
{
database = db;
- using (var com = database.CreateCommand())
+ string query;
+ if (TShock.Config.StorageType.ToLower() == "sqlite")
+ query =
+ "CREATE TABLE IF NOT EXISTS 'Bans' ('IP' TEXT PRIMARY KEY, 'Name' TEXT, 'Reason' TEXT);";
+ else
+ query =
+ "CREATE TABLE IF NOT EXISTS Bans (IP VARCHAR(255) PRIMARY, Name VARCHAR(255), Reason VARCHAR(255));";
+
+ db.Query(query);
+
+ String file = Path.Combine(TShock.SavePath, "bans.txt");
+ if (File.Exists(file))
{
- if (TShock.Config.StorageType.ToLower() == "sqlite")
- com.CommandText =
- "CREATE TABLE IF NOT EXISTS 'Bans' ('IP' TEXT PRIMARY KEY, 'Name' TEXT, 'Reason' TEXT);";
- else if (TShock.Config.StorageType.ToLower() == "mysql")
- com.CommandText =
- "CREATE TABLE IF NOT EXISTS Bans (IP VARCHAR(255) PRIMARY, Name VARCHAR(255), Reason VARCHAR(255));";
-
- com.ExecuteNonQuery();
-
- String file = Path.Combine( TShock.SavePath, "bans.txt" );
- if (File.Exists(file))
+ using (StreamReader sr = new StreamReader(file))
{
- using (StreamReader sr = new StreamReader(file))
+ String line;
+ while ((line = sr.ReadLine()) != null)
{
- String line;
- while ((line = sr.ReadLine()) != null)
- {
- String[] info = line.Split('|');
- if (TShock.Config.StorageType.ToLower() == "sqlite")
- com.CommandText = "INSERT OR IGNORE INTO Bans (IP, Name, Reason) VALUES (@ip, @name, @reason);";
- else if (TShock.Config.StorageType.ToLower() == "mysql")
- com.CommandText = "INSERT IGNORE INTO Bans SET IP=@ip, Name=@name, Reason=@reason;";
- com.AddParameter("@ip", info[0].Trim());
- com.AddParameter("@name", info[1].Trim());
- com.AddParameter("@reason", info[2].Trim());
- com.ExecuteNonQuery();
- com.Parameters.Clear();
- }
+ String[] info = line.Split('|');
+ if (TShock.Config.StorageType.ToLower() == "sqlite")
+ query = "INSERT OR IGNORE INTO Bans (IP, Name, Reason) VALUES (@0, @1, @2);";
+ else
+ query = "INSERT IGNORE INTO Bans SET IP=@0, Name=@1, Reason=@2;";
+ db.Query(query, info[0].Trim(), info[1].Trim(), info[2].Trim());
}
- String path = Path.Combine(TShock.SavePath, "old_configs");
- String file2 = Path.Combine(path, "bans.txt");
- if (!Directory.Exists(path))
- System.IO.Directory.CreateDirectory(path);
- if (File.Exists(file2))
- File.Delete(file2);
- File.Move(file, file2);
}
+ String path = Path.Combine(TShock.SavePath, "old_configs");
+ String file2 = Path.Combine(path, "bans.txt");
+ if (!Directory.Exists(path))
+ System.IO.Directory.CreateDirectory(path);
+ if (File.Exists(file2))
+ File.Delete(file2);
+ File.Move(file, file2);
}
}
@@ -80,17 +74,10 @@ namespace TShockAPI.DB
{
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())
- return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
-
- reader.Close();
- }
+ if (reader.Read())
+ return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
}
}
catch (Exception ex)
@@ -108,20 +95,14 @@ namespace TShockAPI.DB
}
try
{
- using (var com = database.CreateCommand())
+ var namecol = casesensitive ? "Name" : "UPPER(Name)";
+ if (!casesensitive)
+ name = name.ToUpper();
+ using (var reader = database.QueryReader("SELECT * FROM Bans WHERE " + namecol + "=@0", name))
{
- var namecol = casesensitive ? "Name" : "UPPER(Name)";
- if (!casesensitive)
- name = name.ToUpper();
- com.CommandText = "SELECT * FROM Bans WHERE " + namecol + "=@name";
- com.AddParameter("@name", name);
- using (var reader = com.ExecuteReader())
- {
- if (reader.Read())
- return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
+ if (reader.Read())
+ return new Ban((string)reader["IP"], (string)reader["Name"], (string)reader["Reason"]);
- reader.Close();
- }
}
}
catch (Exception ex)
@@ -135,15 +116,7 @@ namespace TShockAPI.DB
{
try
{
- using (var com = database.CreateCommand())
- {
- 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;
+ return database.Query("INSERT INTO Bans (IP, Name, Reason) VALUES (@0, @1, @2);", ip, name, reason) != 0;
}
catch (Exception ex)
{
@@ -156,13 +129,7 @@ namespace TShockAPI.DB
{
try
{
- using (var com = database.CreateCommand())
- {
- com.CommandText = "DELETE FROM Bans WHERE IP=@ip";
- com.AddParameter("@ip", ip);
- com.ExecuteNonQuery();
- return true;
- }
+ return database.Query("DELETE FROM Bans WHERE IP=@ip", ip) != 0;
}
catch (Exception ex)
{
@@ -174,12 +141,7 @@ namespace TShockAPI.DB
{
try
{
- using (var com = database.CreateCommand())
- {
- com.CommandText = "DELETE FROM Bans";
- com.ExecuteNonQuery();
- return true;
- }
+ return database.Query("DELETE FROM Bans") != 0;
}
catch (Exception ex)
{
diff --git a/TShockAPI/DB/DbExt.cs b/TShockAPI/DB/DbExt.cs
index 13942cf2..49014ac8 100644
--- a/TShockAPI/DB/DbExt.cs
+++ b/TShockAPI/DB/DbExt.cs
@@ -7,7 +7,45 @@ using System.Text;
namespace TShockAPI.DB
{
public static class DbExt
- {
+ {
+
+ ///
+ /// Executes a query on a database.
+ ///
+ /// Database to query
+ /// Query string with parameters as @0, @1, etc.
+ /// Parameters to be put in the query
+ /// Rows affected by query
+ 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();
+ }
+ }
+ ///
+ /// Executes a query on a database.
+ ///
+ /// Database to query
+ /// Query string with parameters as @0, @1, etc.
+ /// Parameters to be put in the query
+ /// Query result as IDataReader
+ 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)
{
var parm = command.CreateParameter();
diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs
index bd0edb4e..c82b2eaa 100644
--- a/TShockAPI/DB/GroupManager.cs
+++ b/TShockAPI/DB/GroupManager.cs
@@ -18,17 +18,15 @@ namespace TShockAPI.DB
{
database = db;
- using (var com = database.CreateCommand())
- {
- if (TShock.Config.StorageType.ToLower() == "sqlite")
- com.CommandText =
- "CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT, 'OrderBy' TEXT);";
- else if (TShock.Config.StorageType.ToLower() == "mysql")
- com.CommandText =
- "CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255), OrderBy VARCHAR(255));";
+ string query;
+ if (TShock.Config.StorageType.ToLower() == "sqlite")
+ query =
+ "CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT, 'OrderBy' TEXT);";
+ else
+ query =
+ "CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255), OrderBy VARCHAR(255));";
- com.ExecuteNonQuery();
- }
+ db.Query(query);
//Add default groups
AddGroup("trustedadmin", "admin,maintenance,cfg,butcher,item,heal,immunetoban,ignorecheatdetection,ignoregriefdetection,usebanneditem,manageusers");
@@ -60,18 +58,14 @@ namespace TShockAPI.DB
comms = comms + ",";
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());
- com.AddParameter("@commands", comms);
- com.AddParameter("@order", hasOrder ? info[info.Length - 1] : "0");
- com.ExecuteNonQuery();
- }
+ if (TShock.Config.StorageType.ToLower() == "sqlite")
+ query = "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);";
+ else if (TShock.Config.StorageType.ToLower() == "mysql")
+ 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
}
- ///
- /// Adds group with name and permissions if it does not exist.
- ///
- /// name of group
- /// permissions
- 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)
{
@@ -123,93 +96,74 @@ namespace TShockAPI.DB
return false;
}
- public String addGroup(String name, String permissions)
+ ///
+ /// Adds group with name and permissions if it does not exist.
+ ///
+ /// name of group
+ /// permissions
+ public String AddGroup(String name, String permissions)
{
String message = "";
- if( GroupExists( name ) )
+ if (GroupExists(name))
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);";
- 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", permissions);
- com.AddParameter("@order", "0");
- if (com.ExecuteNonQuery() == 1)
- message = "Group " + name + " has been created successfully.";
- Group g = new Group(name);
- g.permissions.Add(permissions);
- groups.Add(g);
- }
+
+
+
+ string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
+ "INSERT OR IGNORE INTO GroupList (GroupName, Commands, OrderBy) VALUES (@0, @1, @2);" :
+ "INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1, OrderBy=@2;";
+ if (database.Query(query, name, permissions, "0") == 1)
+ message = "Group " + name + " has been created successfully.";
+ Group g = new Group(name);
+ g.permissions.Add(permissions);
+ groups.Add(g);
+
return message;
}
- public String delGroup(String name)
+ public String DeleteGroup(String name)
{
String message = "";
if (!GroupExists(name))
return "Error: Group doesn't exists.";
- using (var com = database.CreateCommand())
- {
- com.CommandText = "Delete FROM GroupList WHERE GroupName=@groupname;";
- com.AddParameter("@groupname", name);
- if (com.ExecuteNonQuery() == 1)
- message = "Group " + name + " has been deleted successfully.";
- groups.Remove(Tools.GetGroup(name));
- }
+
+ if (database.Query("DELETE FROM GroupList WHERE GroupName=@0", name) == 1)
+ message = "Group " + name + " has been deleted successfully.";
+ groups.Remove(Tools.GetGroup(name));
+
return message;
}
- public String addPermission(String name, List permissions)
+ public String AddPermissions(String name, List permissions)
{
String message = "";
if (!GroupExists(name))
return "Error: Group doesn't exists.";
- using (var com = database.CreateCommand())
- {
- Group g = Tools.GetGroup(name);
- List perm = g.permissions;
- foreach (String p in permissions)
- {
- 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.";
- }
+
+ var group = Tools.GetGroup(name);
+ //Add existing permissions (without duplicating)
+ permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s)));
+
+ if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", permissions), name) != 0)
+ message = "Group " + name + " has been modified successfully.";
+
return message;
}
- public String delPermission(String name, List permissions)
+ public String DeletePermissions(String name, List permissions)
{
String message = "";
if (!GroupExists(name))
return "Error: Group doesn't exists.";
- using (var com = database.CreateCommand())
- {
- Group g = Tools.GetGroup(name);
- List perm = g.permissions;
- foreach (String p in permissions)
- {
- if (perm.Contains(p))
- 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.";
- }
+
+ var group = Tools.GetGroup(name);
+
+ //Only get permissions that exist in the group.
+ var newperms = permissions.Where(s => group.permissions.Contains(s));
+
+ if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", newperms), name) != 0)
+ message = "Group " + name + " has been modified successfully.";
+
return message;
}
@@ -220,41 +174,23 @@ namespace TShockAPI.DB
try
{
- using (var com = database.CreateCommand())
- {
- com.CommandText = "SELECT * FROM Grouplist;";
- using (var reader = com.ExecuteReader())
- {
- while (reader.Read())
- {
- Group group = null;
- string groupname = reader.Get("GroupName");
- group = new Group(groupname);
- //Inherit Given commands
- String[] commands = reader.Get("Commands").Split(',');
- for (int i = 0; i < commands.Length; i++)
- {
- group.AddPermission(commands[i].Trim());
- }
- 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)
+ using (var reader = database.QueryReader("SELECT * FROM Grouplist;"))
+ {
+ while (reader.Read())
{
- if (group.Order != 0 && group.Order < groups.Count)
+ Group group = null;
+ string groupname = reader.Get("GroupName");
+ group = new Group(groupname);
+
+ //Inherit Given commands
+ String[] commands = reader.Get("Commands").Split(',');
+ for (int i = 0; i < commands.Length; i++)
{
- 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]);
- }
- }
+ group.AddPermission(commands[i].Trim());
}
- }*/
+ groups.Add(group);
+ }
}
}
catch (Exception ex)
diff --git a/TShockAPI/DB/ItemManager.cs b/TShockAPI/DB/ItemManager.cs
index 12ddb646..d30c580f 100644
--- a/TShockAPI/DB/ItemManager.cs
+++ b/TShockAPI/DB/ItemManager.cs
@@ -18,48 +18,42 @@ namespace TShockAPI.DB
{
database = db;
- using (var com = database.CreateCommand())
+
+ string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
+ "CREATE TABLE IF NOT EXISTS 'ItemBans' ('ItemName' TEXT PRIMARY KEY);" :
+ "CREATE TABLE IF NOT EXISTS ItemBans (ItemName VARCHAR(255) PRIMARY);";
+ database.Query(query);
+
+ String file = Path.Combine(TShock.SavePath, "itembans.txt");
+ if (File.Exists(file))
{
- if (TShock.Config.StorageType.ToLower() == "sqlite")
- 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);";
- com.ExecuteNonQuery();
-
- String file = Path.Combine(TShock.SavePath, "itembans.txt");
- if (File.Exists(file))
+ using (StreamReader sr = new StreamReader(file))
{
- using (StreamReader sr = new StreamReader(file))
+ String line;
+ while ((line = sr.ReadLine()) != null)
{
- String line;
- while ((line = sr.ReadLine()) != null)
+ 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);";
- else if (TShock.Config.StorageType.ToLower() == "mysql")
- com.CommandText = "INSERT IGNORE INTO ItemBans SET ItemName=@name;";
- int id = 0;
- int.TryParse(line, out id);
- com.AddParameter("@name", Tools.GetItemById(id).name);
- com.ExecuteNonQuery();
- com.Parameters.Clear();
- }
+ query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
+ "INSERT OR IGNORE INTO 'ItemBans' (ItemName) VALUES (@0);" :
+ "INSERT IGNORE INTO ItemBans SET ItemName=@0;";
+
+ int id = 0;
+ int.TryParse(line, out id);
+
+ database.Query(query, Tools.GetItemById(id).name);
}
}
-
- String path = Path.Combine(TShock.SavePath, "old_configs");
- String file2 = Path.Combine(path, "itembans.txt");
- if (!Directory.Exists(path))
- System.IO.Directory.CreateDirectory(path);
- if (File.Exists(file2))
- File.Delete(file2);
- File.Move(file, file2);
}
+
+ String path = Path.Combine(TShock.SavePath, "old_configs");
+ String file2 = Path.Combine(path, "itembans.txt");
+ if (!Directory.Exists(path))
+ System.IO.Directory.CreateDirectory(path);
+ if (File.Exists(file2))
+ File.Delete(file2);
+ File.Move(file, file2);
}
UpdateItemBans();
@@ -74,7 +68,7 @@ namespace TShockAPI.DB
using (var reader = com.ExecuteReader())
{
- while (reader!=null&&reader.Read())
+ while (reader != null && reader.Read())
ItemBans.Add(reader.Get("ItemName"));
}
}
@@ -83,14 +77,9 @@ namespace TShockAPI.DB
{
try
{
- using (var com = database.CreateCommand())
- {
- com.CommandText = "INSERT INTO ItemBans (ItemName) VALUES (@itemname);";
- com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
- com.ExecuteNonQuery();
- if( !ItemIsBanned( itemname ) )
- ItemBans.Add(itemname);
- }
+ database.Query("INSERT INTO ItemBans (ItemName) VALUES (@0);", Tools.GetItemByName(itemname)[0].name);
+ if (!ItemIsBanned(itemname))
+ ItemBans.Add(itemname);
}
catch (Exception ex)
{
@@ -104,13 +93,8 @@ namespace TShockAPI.DB
return;
try
{
- using (var com = database.CreateCommand())
- {
- com.CommandText = "Delete FROM 'ItemBans' WHERE ItemName=@itemname;";
- com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
- com.ExecuteNonQuery();
- ItemBans.Remove(itemname);
- }
+ database.Query("Delete FROM 'ItemBans' WHERE ItemName=@0;", Tools.GetItemByName(itemname)[0].name);
+ ItemBans.Remove(itemname);
}
catch (Exception ex)
{
diff --git a/TShockAPI/DB/RegionManager.cs b/TShockAPI/DB/RegionManager.cs
index 2c298dca..f05126c4 100644
--- a/TShockAPI/DB/RegionManager.cs
+++ b/TShockAPI/DB/RegionManager.cs
@@ -43,14 +43,11 @@ namespace TShockAPI.DB
using (var com = database.CreateCommand())
{
- if (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);";
- else if (TShock.Config.StorageType.ToLower() == "mysql")
- com.CommandText =
+ string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
+ "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 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 name = "";
diff --git a/TShockAPI/DB/SqlTable.cs b/TShockAPI/DB/SqlTable.cs
new file mode 100644
index 00000000..4d1dc44c
--- /dev/null
+++ b/TShockAPI/DB/SqlTable.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace TShockAPI.DB
+{
+ class SqlTable
+ {
+ }
+}
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index ab773528..06d95c87 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -96,6 +96,7 @@
+
@@ -170,7 +171,7 @@
-
+