diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index f1caa8f8..4bb88a62 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -151,6 +151,8 @@ namespace TShockAPI [Description("Enable Server Side Inventory checks, EXPERIMENTAL")] public bool ServerSideInventory; + [Description("How often SSI should save, in minutes")] public int ServerSideInventorySave = 15; + [Description("Time, in milliseconds, to disallow discarding items after logging in when ServerSideInventory is ON")] public int LogonDiscardThreshold=250; [Description("Disables reporting of playercount to the stat system.")] public bool DisablePlayerCountReporting; diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 279ab251..96b9b19d 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -57,6 +57,11 @@ namespace TShockAPI /// public class TileEditEventArgs : HandledEventArgs { + /// + /// The TSPlayer who made the tile edit + /// + public TSPlayer Player { get; set; } + /// /// The tile coordinate on the X plane /// @@ -82,13 +87,14 @@ namespace TShockAPI /// TileEdit - called when a tile is placed or destroyed /// public static HandlerList TileEdit; - private static bool OnTileEdit(int x, int y, byte type, byte editType) + private static bool OnTileEdit(TSPlayer ply, int x, int y, byte type, byte editType) { if (TileEdit == null) return false; var args = new TileEditEventArgs { + Player = ply, X = x, Y = y, Type = type, @@ -1598,7 +1604,7 @@ namespace TShockAPI var tileX = args.Data.ReadInt32(); var tileY = args.Data.ReadInt32(); var tiletype = args.Data.ReadInt8(); - if (OnTileEdit(tileX, tileY, tiletype, type)) + if (OnTileEdit(args.Player, tileX, tileY, tiletype, type)) return true; if (tileX < 0 || tileX >= Main.maxTilesX || tileY < 0 || tileY >= Main.maxTilesY) return false; diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 2f4394e8..9bdd096b 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -446,7 +446,7 @@ namespace TShockAPI LastCheck = DateTime.UtcNow; } - if ((DateTime.UtcNow - LastSave).TotalMinutes >= 15) + if ((DateTime.UtcNow - LastSave).TotalMinutes >= Config.ServerSideInventorySave) { foreach (TSPlayer player in Players) { diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj index 2f8b8a19..3968ad3f 100644 --- a/TShockAPI/TShockAPI.csproj +++ b/TShockAPI/TShockAPI.csproj @@ -32,12 +32,12 @@ true full false - ..\..\..\Tshock Debug\ServerPlugins\ + bin\Debug\ DEBUG;TRACE prompt 4 true - ..\..\..\Tshock Debug\ServerPlugins\TShockAPI.XML + bin\Debug\TShockAPI.XML pdbonly @@ -187,7 +187,7 @@ - +