diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 2fc5fed6..c746dbd1 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1284,9 +1284,15 @@ namespace TShockAPI bypassTrashCanCheck = true; } - if (OnPlayerSlot(plr, slot, stack, prefix, type) || plr != args.Player.Index || slot < 0 || slot > NetItem.maxNetInventory || args.Player.IgnoreSSCPackets) + if (OnPlayerSlot(plr, slot, stack, prefix, type) || plr != args.Player.Index || slot < 0 || + slot > NetItem.maxNetInventory) return true; - + if (args.Player.IgnoreSSCPackets) + { + args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, slot); + return true; + } + // Garabage? Or will it cause some internal initialization or whatever? var item = new Item(); item.netDefaults(type); diff --git a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs index ea4cc931..b49f3238 100644 --- a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs +++ b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs @@ -20,6 +20,8 @@ along with this program. If not, see . */ using System.IO; +using System.Linq; +using System.Text; using Newtonsoft.Json; namespace TShockAPI.ServerSideCharacters @@ -61,5 +63,37 @@ namespace TShockAPI.ServerSideCharacters writer.Write(JsonConvert.SerializeObject(this, Formatting.Indented)); } } + + /// + /// Dumps all configuration options to a text file in Markdown format + /// + public static void DumpDescriptions() + { + var sb = new StringBuilder(); + var defaults = new ServerSideConfig(); + + foreach (var field in defaults.GetType().GetFields().OrderBy(f => f.Name)) + { + if (field.IsStatic) + continue; + + var name = field.Name; + var type = field.FieldType.Name; + + var descattr = + field.GetCustomAttributes(false).FirstOrDefault(o => o is DescriptionAttribute) as DescriptionAttribute; + var desc = descattr != null && !string.IsNullOrWhiteSpace(descattr.Description) ? descattr.Description : "None"; + + var def = field.GetValue(defaults); + + sb.AppendLine("{0} ".SFormat(name)); + sb.AppendLine("Type: {0} ".SFormat(type)); + sb.AppendLine("Description: {0} ".SFormat(desc)); + sb.AppendLine("Default: \"{0}\" ".SFormat(def)); + sb.AppendLine(); + } + + File.WriteAllText("ServerSideConfigDescriptions.txt", sb.ToString()); + } } } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 7310011c..f7f32205 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -518,6 +518,8 @@ namespace TShockAPI case "-dump": ConfigFile.DumpDescriptions(); Permissions.DumpDescriptions(); + ServerSideConfig.DumpDescriptions(); + Environment.Exit(1); break; } }