From 7a42c56f30defad928a9e30423305d0fdb671abf Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Fri, 6 Apr 2012 16:23:01 -0400 Subject: [PATCH] Added savessi and overridessi to the commandlist. This allows users to save everyones ssi or in the event someone is banned from doing anything once logging in, they can have their account overriden. I haven't tested any of this, as I will be away from this computer, but plan on testing tomorrow. --- TShockAPI/Commands.cs | 44 ++++++++++++++++++++++++++++++++++++++++ TShockAPI/Permissions.cs | 3 +++ 2 files changed, 47 insertions(+) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index b0c6e68e..8667e7ab 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -216,6 +216,8 @@ namespace TShockAPI add(Permissions.converthardmode, ConvertCorruption, "convertcorruption"); add(Permissions.converthardmode, ConvertHallow, "converthallow"); add(Permissions.converthardmode, RemoveSpecial, "removespecial"); + add(Permissions.savessi, SaveSSI, "savessi"); + add(Permissions.savessi, OverrideSSI, "overridessi", "ossi"); } public static bool HandleCommand(TSPlayer player, string text) @@ -976,6 +978,48 @@ namespace TShockAPI args.Player.SendMessage("You now " + (args.Player.DisplayLogs ? "receive" : "stopped receiving") + " logs"); } + public static void SaveSSI(CommandArgs args ) + { + if (TShock.Config.ServerSideInventory) + { + args.Player.SendMessage("SSI has been saved.", Color.Green); + foreach (TSPlayer player in TShock.Players) + { + if (player != null && player.IsLoggedIn && !player.IgnoreActionsForClearingTrashCan) + { + TShock.InventoryDB.InsertPlayerData(player); + } + } + } + } + + public static void OverrideSSI( CommandArgs args ) + { + if( args.Parameters.Count < 1 ) + { + args.Player.SendMessage("Correct usage: /overridessi(/ossi) ", Color.Red); + return; + } + + var players = TShock.Utils.FindPlayer(args.Parameters[0]); + if( players.Count < 1 ) + { + args.Player.SendMessage("No players match " + args.Parameters[0], Color.Red); + } + else if( players.Count > 1 ) + { + args.Player.SendMessage( players.Count + " players matched " + args.Parameters[0], Color.Red); + } + else if (TShock.Config.ServerSideInventory) + { + if( players[0] != null && players[0].IsLoggedIn && !players[0].IgnoreActionsForClearingTrashCan) + { + args.Player.SendMessage( players[0].Name + " has been exempted and updated.", Color.Green); + TShock.InventoryDB.InsertPlayerData(players[0]); + } + } + } + #endregion Player Management Commands #region Server Maintenence Commands diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs index 9933b95b..beffceb0 100644 --- a/TShockAPI/Permissions.cs +++ b/TShockAPI/Permissions.cs @@ -161,6 +161,9 @@ namespace TShockAPI [Description("User can see the id of players with /who")] public static readonly string seeids; + [Description("User can save all the players SSI state.")] + public static readonly string savessi; + static Permissions() { foreach (var field in typeof (Permissions).GetFields())