Added /clearbans

fixed sql query in find by name.
This commit is contained in:
high 2011-07-01 17:50:33 -04:00
parent f1c86a6216
commit 2a1b81c86a
3 changed files with 62 additions and 4 deletions

View file

@ -80,7 +80,7 @@ namespace TShockAPI
var namecol = casesensitive ? "Name" : "UPPER(Name)";
if (!casesensitive)
name = name.ToUpper();
com.CommandText = "SELECT *, COUNT(*) FROM Bans WHERE " + namecol + "=@name LIMIT 5";
com.CommandText = "SELECT * FROM Bans WHERE " + namecol + "=@name";
AddParameter(com, "@name", name);
using (var reader = com.ExecuteReader())
{
@ -132,6 +132,22 @@ namespace TShockAPI
}
return false;
}
public bool ClearBans()
{
try
{
using (var com = database.CreateCommand())
{
com.CommandText = "DELETE FROM Bans";
com.ExecuteNonQuery();
return true;
}
}
catch (SqliteExecutionException ex)
{
}
return false;
}
}
public class Ban

View file

@ -112,6 +112,7 @@ namespace TShockAPI
ChatCommands.Add(new Command("ban", BanIP, "banip"));
ChatCommands.Add(new Command("unban", UnBan, "unban"));
ChatCommands.Add(new Command("unban", UnBanIP, "unbanip"));
ChatCommands.Add(new Command("maintenance", ClearBans, "clearbans"));
ChatCommands.Add(new Command("whitelist", Whitelist, "whitelist"));
ChatCommands.Add(new Command("maintenance", Off, "off"));
ChatCommands.Add(new Command("maintenance", OffNoSave, "off-nosave"));
@ -467,6 +468,47 @@ namespace TShockAPI
}
}
static int ClearBansCode = -1;
private static void ClearBans(CommandArgs args)
{
if (args.Parameters.Count < 1 && ClearBansCode == -1)
{
ClearBansCode = new Random().Next(0, short.MaxValue);
args.Player.SendMessage("ClearBans Code: " + ClearBansCode, Color.Red);
return;
}
if (args.Parameters.Count < 1)
{
args.Player.SendMessage("Invalid syntax! Proper syntax: /clearbans <code>");
return;
}
int num;
if (!int.TryParse(args.Parameters[0], out num))
{
args.Player.SendMessage("Invalid syntax! Expecting number");
return;
}
if (num == ClearBansCode)
{
ClearBansCode = -1;
if (TShock.Bans.ClearBans())
{
Log.ConsoleInfo("Bans cleared");
args.Player.SendMessage("Bans cleared");
}
else
{
args.Player.SendMessage("Failed to clear bans");
}
}
else
{
args.Player.SendMessage("Incorrect clear code");
}
}
private static void UnBanIP(CommandArgs args)
{
if (args.Parameters.Count < 1)

View file

@ -29,7 +29,7 @@ namespace TShockAPI
{
internal class Tools
{
private static Random random = new Random();
public static Random Random = new Random();
private static List<Group> groups = new List<Group>();
/// <summary>
@ -191,8 +191,8 @@ namespace TShockAPI
break;
}
tileX = startTileX + random.Next(tileXRange * -1, tileXRange);
tileY = startTileY + random.Next(tileYRange * -1, tileYRange);
tileX = startTileX + Random.Next(tileXRange * -1, tileXRange);
tileY = startTileY + Random.Next(tileYRange * -1, tileYRange);
j++;
}
while (TileValid(tileX, tileY) && !TileClear(tileX, tileY));