Clean up /itemban, /projban and tempbans
This commit is contained in:
parent
6d3bb30c7c
commit
3e12e80a89
3 changed files with 184 additions and 194 deletions
|
|
@ -1148,7 +1148,8 @@ namespace TShockAPI
|
||||||
int time;
|
int time;
|
||||||
if (!TShock.Utils.TryParseTime(args.Parameters[2], out time))
|
if (!TShock.Utils.TryParseTime(args.Parameters[2], out time))
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid time string! Proper format: 0d0h0m0s, with at least one time specifier.");
|
args.Player.SendErrorMessage("Invalid time string! Proper format: _d_h_m_s, with at least one time specifier.");
|
||||||
|
args.Player.SendErrorMessage("For example, 1d and 10h-30m+2m are both valid time strings, but 2 is not.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2192,9 +2193,9 @@ namespace TShockAPI
|
||||||
|
|
||||||
private static void Group(CommandArgs args)
|
private static void Group(CommandArgs args)
|
||||||
{
|
{
|
||||||
string subcmd = args.Parameters.Count == 0 ? "help" : args.Parameters[0].ToLower();
|
string subCmd = args.Parameters.Count == 0 ? "help" : args.Parameters[0].ToLower();
|
||||||
|
|
||||||
switch (subcmd)
|
switch (subCmd)
|
||||||
{
|
{
|
||||||
case "add":
|
case "add":
|
||||||
#region Add group
|
#region Add group
|
||||||
|
|
@ -2596,16 +2597,8 @@ namespace TShockAPI
|
||||||
|
|
||||||
private static void ItemBan(CommandArgs args)
|
private static void ItemBan(CommandArgs args)
|
||||||
{
|
{
|
||||||
if (args.Parameters.Count == 0)
|
string subCmd = args.Parameters.Count == 0 ? "help" : args.Parameters[0].ToLower();
|
||||||
{
|
switch (subCmd)
|
||||||
args.Player.SendInfoMessage("Invalid syntax! Proper syntax: /itemban <command> [arguments]");
|
|
||||||
args.Player.SendInfoMessage("Commands: add, allow, del, disallow, list");
|
|
||||||
args.Player.SendInfoMessage("Arguments: add <item name>, allow <item name> <group name>");
|
|
||||||
args.Player.SendInfoMessage("Arguments: del <item name>, disallow <item name> <group name>, list [page]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (args.Parameters[0].ToLower())
|
|
||||||
{
|
{
|
||||||
case "add":
|
case "add":
|
||||||
#region Add item
|
#region Add item
|
||||||
|
|
@ -2662,17 +2655,17 @@ namespace TShockAPI
|
||||||
ItemBan ban = TShock.Itembans.GetItemBanByName(items[0].name);
|
ItemBan ban = TShock.Itembans.GetItemBanByName(items[0].name);
|
||||||
if (ban == null)
|
if (ban == null)
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage(items[0].name + " is not banned.");
|
args.Player.SendErrorMessage("{0} is not banned.", items[0].name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
|
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
|
||||||
{
|
{
|
||||||
TShock.Itembans.AllowGroup(items[0].name, args.Parameters[2]);
|
TShock.Itembans.AllowGroup(items[0].name, args.Parameters[2]);
|
||||||
args.Player.SendSuccessMessage(String.Format("{0} has been allowed to use {1}.", args.Parameters[2], items[0].name));
|
args.Player.SendSuccessMessage("{0} has been allowed to use {1}.", args.Parameters[2], items[0].name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args.Player.SendWarningMessage(String.Format("{0} is already allowed to use {1}.", args.Parameters[2], items[0].name));
|
args.Player.SendWarningMessage("{0} is already allowed to use {1}.", args.Parameters[2], items[0].name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2705,7 +2698,7 @@ namespace TShockAPI
|
||||||
#endregion
|
#endregion
|
||||||
return;
|
return;
|
||||||
case "disallow":
|
case "disallow":
|
||||||
#region Allow group to item
|
#region Disllow group from item
|
||||||
{
|
{
|
||||||
if (args.Parameters.Count != 3)
|
if (args.Parameters.Count != 3)
|
||||||
{
|
{
|
||||||
|
|
@ -2733,42 +2726,64 @@ namespace TShockAPI
|
||||||
ItemBan ban = TShock.Itembans.GetItemBanByName(items[0].name);
|
ItemBan ban = TShock.Itembans.GetItemBanByName(items[0].name);
|
||||||
if (ban == null)
|
if (ban == null)
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage(items[0].name + " is not banned.");
|
args.Player.SendErrorMessage("{0} is not banned.", items[0].name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ban.AllowedGroups.Contains(args.Parameters[2]))
|
if (ban.AllowedGroups.Contains(args.Parameters[2]))
|
||||||
{
|
{
|
||||||
TShock.Itembans.RemoveGroup(items[0].name, args.Parameters[2]);
|
TShock.Itembans.RemoveGroup(items[0].name, args.Parameters[2]);
|
||||||
args.Player.SendSuccessMessage(String.Format("{0} has been disallowed to use {1}.", args.Parameters[2], items[0].name));
|
args.Player.SendSuccessMessage("{0} has been disallowed to use {1}.", args.Parameters[2], items[0].name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args.Player.SendWarningMessage(String.Format("{0} is already disallowed to use {1}.", args.Parameters[2], items[0].name));
|
args.Player.SendWarningMessage("{0} is already disallowed to use {1}.", args.Parameters[2], items[0].name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
return;
|
return;
|
||||||
case "help":
|
case "help":
|
||||||
args.Player.SendInfoMessage("Syntax: /itemban <command> [arguments]");
|
#region Help
|
||||||
args.Player.SendInfoMessage("Commands: add, allow, del, disallow, list");
|
{
|
||||||
args.Player.SendInfoMessage("Arguments: add <item name>, allow <item name> <group name>");
|
int pageNumber;
|
||||||
args.Player.SendInfoMessage("Arguments: del <item name>, disallow <item name> <group name>, list [page]");
|
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var lines = new List<string>
|
||||||
|
{
|
||||||
|
"add <item> - Adds an item ban.",
|
||||||
|
"allow <item> <group> - Allows a group to use an item.",
|
||||||
|
"del <item> - Deletes an item ban.",
|
||||||
|
"disallow <item> <group> - Disallows a group from using an item.",
|
||||||
|
"list [page] - Lists all item bans."
|
||||||
|
};
|
||||||
|
|
||||||
|
PaginationTools.SendPage(args.Player, pageNumber, lines,
|
||||||
|
new PaginationTools.Settings
|
||||||
|
{
|
||||||
|
HeaderFormat = "Item Ban Sub-Commands ({0}/{1}):",
|
||||||
|
FooterFormat = "Type /itemban help {0} for more sub-commands."
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
return;
|
return;
|
||||||
case "list":
|
case "list":
|
||||||
#region List items
|
#region List items
|
||||||
int pageNumber;
|
{
|
||||||
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
int pageNumber;
|
||||||
return;
|
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
||||||
IEnumerable<string> itemNames = from itemBan in TShock.Itembans.ItemBans
|
return;
|
||||||
select itemBan.Name;
|
IEnumerable<string> itemNames = from itemBan in TShock.Itembans.ItemBans
|
||||||
PaginationTools.SendPage(args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(itemNames),
|
select itemBan.Name;
|
||||||
new PaginationTools.Settings
|
PaginationTools.SendPage(args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(itemNames),
|
||||||
{
|
new PaginationTools.Settings
|
||||||
HeaderFormat = "Item bans ({0}/{1}):",
|
{
|
||||||
FooterFormat = "Type /itemban list {0} for more.",
|
HeaderFormat = "Item bans ({0}/{1}):",
|
||||||
NothingToDisplayString = "There are currently no banned items."
|
FooterFormat = "Type /itemban list {0} for more.",
|
||||||
});
|
NothingToDisplayString = "There are currently no banned items."
|
||||||
|
});
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -2779,201 +2794,170 @@ namespace TShockAPI
|
||||||
|
|
||||||
private static void ProjectileBan(CommandArgs args)
|
private static void ProjectileBan(CommandArgs args)
|
||||||
{
|
{
|
||||||
if (args.Parameters.Count == 0)
|
string subCmd = args.Parameters.Count == 0 ? "help" : args.Parameters[0].ToLower();
|
||||||
{
|
switch (subCmd)
|
||||||
args.Player.SendInfoMessage("Invalid syntax! Proper syntax: /projban <command> [arguments]");
|
|
||||||
args.Player.SendInfoMessage("Commands: add, allow, del, disallow, list");
|
|
||||||
args.Player.SendInfoMessage("Arguments: add <proj id>, allow <proj id> <group name>");
|
|
||||||
args.Player.SendInfoMessage("Arguments: del <proj id>, disallow <proj id> <group name>, list [page]");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (args.Parameters[0].ToLower())
|
|
||||||
{
|
{
|
||||||
case "add":
|
case "add":
|
||||||
|
|
||||||
#region Add projectile
|
#region Add projectile
|
||||||
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count != 2)
|
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban add <proj id>");
|
if (args.Parameters.Count != 2)
|
||||||
return;
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban add <proj id>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
short id;
|
||||||
|
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||||
|
{
|
||||||
|
TShock.ProjectileBans.AddNewBan(id);
|
||||||
|
args.Player.SendSuccessMessage("Banned projectile {0}.", id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args.Player.SendErrorMessage("Invalid projectile ID!");
|
||||||
}
|
}
|
||||||
short id;
|
|
||||||
if (Int16.TryParse(args.Parameters[1], out id))
|
|
||||||
{
|
|
||||||
TShock.ProjectileBans.AddNewBan(id);
|
|
||||||
args.Player.SendSuccessMessage("Banned Projectile: " + id + ".");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Projectile Id must be a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return;
|
return;
|
||||||
case "allow":
|
case "allow":
|
||||||
|
|
||||||
#region Allow group to projectile
|
#region Allow group to projectile
|
||||||
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count != 3)
|
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban allow <id> <group name>");
|
if (args.Parameters.Count != 3)
|
||||||
return;
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban allow <id> <group>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
short id;
|
||||||
|
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||||
|
{
|
||||||
|
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid group.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
|
||||||
|
if (ban == null)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Projectile {0} is not banned.", id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
|
||||||
|
{
|
||||||
|
TShock.ProjectileBans.AllowGroup(id, args.Parameters[2]);
|
||||||
|
args.Player.SendSuccessMessage("{0} has been allowed to use projectile {1}.", args.Parameters[2], id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args.Player.SendWarningMessage("{0} is already allowed to use projectile {1}.", args.Parameters[2], id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args.Player.SendErrorMessage("Invalid projectile ID!");
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
short id;
|
return;
|
||||||
if (Int16.TryParse(args.Parameters[1], out id))
|
case "del":
|
||||||
|
#region Delete projectile
|
||||||
{
|
{
|
||||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
if (args.Parameters.Count != 2)
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid group.");
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban del <id>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
|
short id;
|
||||||
if (ban == null)
|
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Projectile " + id + " is not banned.");
|
TShock.ProjectileBans.RemoveBan(id);
|
||||||
return;
|
args.Player.SendSuccessMessage("Unbanned projectile {0}.", id);
|
||||||
}
|
|
||||||
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
|
|
||||||
{
|
|
||||||
TShock.ProjectileBans.AllowGroup(id, args.Parameters[2]);
|
|
||||||
args.Player.SendSuccessMessage(String.Format("{0} has been allowed to use projectile {1}.", args.Parameters[2],
|
|
||||||
id));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
args.Player.SendErrorMessage("Invalid projectile ID!");
|
||||||
args.Player.SendWarningMessage(String.Format("{0} is already allowed to use projectile {1}.", args.Parameters[2],
|
|
||||||
id));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Projectile Id must be a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
case "del":
|
|
||||||
|
|
||||||
#region Delete item
|
|
||||||
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count != 2)
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban del <id>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
short id;
|
|
||||||
if (Int16.TryParse(args.Parameters[1], out id))
|
|
||||||
{
|
|
||||||
TShock.ProjectileBans.RemoveBan(id);
|
|
||||||
args.Player.SendSuccessMessage("Unbanned Projectile: " + id + ".");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Projectile Id must be a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
case "disallow":
|
case "disallow":
|
||||||
|
#region Disallow group from projectile
|
||||||
#region Allow group to item
|
|
||||||
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count != 3)
|
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban disallow <id> <group name>");
|
if (args.Parameters.Count != 3)
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
short id;
|
|
||||||
if (Int16.TryParse(args.Parameters[1], out id))
|
|
||||||
{
|
|
||||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid group.");
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /projban disallow <id> <group name>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
|
short id;
|
||||||
if (ban == null)
|
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Projectile " + id + " is not banned.");
|
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||||
return;
|
{
|
||||||
}
|
args.Player.SendErrorMessage("Invalid group.");
|
||||||
if (ban.AllowedGroups.Contains(args.Parameters[2]))
|
return;
|
||||||
{
|
}
|
||||||
TShock.ProjectileBans.RemoveGroup(id, args.Parameters[2]);
|
|
||||||
args.Player.SendSuccessMessage(String.Format("{0} has been disallowed from using projectile {1}.",
|
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
|
||||||
args.Parameters[2], id));
|
if (ban == null)
|
||||||
return;
|
{
|
||||||
|
args.Player.SendErrorMessage("Projectile {0} is not banned.", id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ban.AllowedGroups.Contains(args.Parameters[2]))
|
||||||
|
{
|
||||||
|
TShock.ProjectileBans.RemoveGroup(id, args.Parameters[2]);
|
||||||
|
args.Player.SendSuccessMessage("{0} has been disallowed from using projectile {1}.", args.Parameters[2], id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args.Player.SendWarningMessage("{0} is already prevented from using projectile {1}.", args.Parameters[2], id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
args.Player.SendErrorMessage("Invalid projectile ID!");
|
||||||
args.Player.SendWarningMessage(String.Format("{0} is already prevented from using projectile {1}.",
|
|
||||||
args.Parameters[2], id));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Invalid syntax! Projectile Id must be a number.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return;
|
return;
|
||||||
case "help":
|
case "help":
|
||||||
args.Player.SendInfoMessage("Syntax: /projban <command> [arguments]");
|
#region Help
|
||||||
args.Player.SendInfoMessage("Commands: add, allow, del, disallow, list");
|
{
|
||||||
args.Player.SendInfoMessage("Arguments: add <id>, allow <id> <group name>");
|
int pageNumber;
|
||||||
args.Player.SendInfoMessage("Arguments: del <id>, disallow <id> <group name>, list [page]");
|
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var lines = new List<string>
|
||||||
|
{
|
||||||
|
"add <projectile ID> - Adds a projectile ban.",
|
||||||
|
"allow <projectile ID> <group> - Allows a group to use a projectile.",
|
||||||
|
"del <projectile ID> - Deletes an projectile ban.",
|
||||||
|
"disallow <projectile ID> <group> - Disallows a group from using a projectile.",
|
||||||
|
"list [page] - Lists all projectile bans."
|
||||||
|
};
|
||||||
|
|
||||||
|
PaginationTools.SendPage(args.Player, pageNumber, lines,
|
||||||
|
new PaginationTools.Settings
|
||||||
|
{
|
||||||
|
HeaderFormat = "Projectile Ban Sub-Commands ({0}/{1}):",
|
||||||
|
FooterFormat = "Type /projban help {0} for more sub-commands."
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
return;
|
return;
|
||||||
case "list":
|
case "list":
|
||||||
|
#region List projectiles
|
||||||
#region List items
|
{
|
||||||
|
int pageNumber;
|
||||||
int pageNumber;
|
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
||||||
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
|
return;
|
||||||
return;
|
IEnumerable<Int16> projectileIds = from projectileBan in TShock.ProjectileBans.ProjectileBans
|
||||||
IEnumerable<Int16> projectileIds = from projectileBan in TShock.ProjectileBans.ProjectileBans
|
select projectileBan.ID;
|
||||||
select projectileBan.ID;
|
PaginationTools.SendPage(args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(projectileIds),
|
||||||
PaginationTools.SendPage(args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(projectileIds),
|
new PaginationTools.Settings
|
||||||
new PaginationTools.Settings
|
{
|
||||||
{
|
HeaderFormat = "Projectile bans ({0}/{1}):",
|
||||||
HeaderFormat = "Projectile bans ({0}/{1}):",
|
FooterFormat = "Type /projban list {0} for more.",
|
||||||
FooterFormat = "Type /Projectile list {0} for more.",
|
NothingToDisplayString = "There are currently no banned projectiles."
|
||||||
NothingToDisplayString = "There are currently no banned projectiles."
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Projectile Management
|
#endregion Projectile Management
|
||||||
|
|
||||||
#region Server Config Commands
|
#region Server Config Commands
|
||||||
|
|
|
||||||
|
|
@ -968,12 +968,16 @@ namespace TShockAPI
|
||||||
player.Disconnect(String.Format("You are banned for {0} hour{1} and {2} minute{3}: {4}",
|
player.Disconnect(String.Format("You are banned for {0} hour{1} and {2} minute{3}: {4}",
|
||||||
ts.Hours, ts.Hours == 1 ? "" : "s", ts.Minutes, ts.Minutes == 1 ? "" : "s", ban.Reason));
|
ts.Hours, ts.Hours == 1 ? "" : "s", ts.Minutes, ts.Minutes == 1 ? "" : "s", ban.Reason));
|
||||||
}
|
}
|
||||||
|
else if (ts.Minutes > 0)
|
||||||
|
{
|
||||||
|
player.Disconnect(String.Format("You are banned for {0} minute{1} and {2} second{3}: {4}",
|
||||||
|
ts.Minutes, ts.Minutes == 1 ? "" : "s", ts.Seconds, ts.Seconds == 1 ? "" : "s", ban.Reason));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.Disconnect(String.Format("You are banned for {0} minute{1}: {2}",
|
player.Disconnect(String.Format("You are banned for {0} second{1}: {2}",
|
||||||
ts.Minutes, ts.Minutes == 1 ? "" : "s", ban.Reason));
|
ts.Seconds, ts.Seconds == 1 ? "" : "s", ban.Reason));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -893,7 +893,7 @@ namespace TShockAPI
|
||||||
var sb = new StringBuilder(3);
|
var sb = new StringBuilder(3);
|
||||||
for (int i = 0; i < str.Length; i++)
|
for (int i = 0; i < str.Length; i++)
|
||||||
{
|
{
|
||||||
if (char.IsDigit(str[i]) || (str[i] == '-' || str[i] == '+'))
|
if (Char.IsDigit(str[i]) || (str[i] == '-' || str[i] == '+'))
|
||||||
sb.Append(str[i]);
|
sb.Append(str[i]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -921,6 +921,8 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sb.Length != 0)
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue