Error for both ban and unban
Code:
[22:23:48] Error when executing the command.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at wServer.realm.commands.BanCommand.Process(Player player, RealmTime time, String[] args) in C:\Server Src\wServer\realm\commands\AdminCommands.cs:line 86
at wServer.realm.commands.Command.Execute(Player player, RealmTime time, String args) in C:Server Src\wServer\realm\commands\Command.cs:line 62
Ban
(just the fsod ban command, but changed permLevel to 900, i also tried to add it where it disconnects the user as well):
internal class BanCommand : Command
{
public BanCommand() :
base("ban", permLevel: 900)
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
var p = player.Manager.FindPlayer(args[1]);
if (p == null)
{
player.SendError("Player not found");
return false;
}
player.Manager.Database.DoActionAsync(db =>
{
var cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET banned=1 WHERE id=@accId;";
cmd.Parameters.AddWithValue("@accId", p.AccountId);
cmd.ExecuteNonQuery();
{
foreach (KeyValuePair<int, Player> i in player.Owner.Players)
{
{
i.Value.Client.Disconnect();
}
}
}
});
return true;
}
}
Unban
internal class unBanCommand : Command
{
public unBanCommand() : base("unban", 900) { }
protected override bool Process(Player player, RealmTime time, string[] args)
{
if (args.Length > 1)
{
player.SendHelp("Usage: /unban <name>");
return false;
}
player.Manager.Database.DoActionAsync(db =>
{
var cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET banned=0 WHERE name=@name";
cmd.Parameters.AddWithValue("@name", args[0]);
if (cmd.ExecuteNonQuery() == 0)
{
player.SendError(args[0] + " could not be unbanned!");
}
else
{
player.SendHelp(args[0] + " was successfuly unbanned!");
}
});
return true;
}
}