diff --git a/CHANGELOG.md b/CHANGELOG.md index d108325b..0d38c1db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,27 @@ This is the rolling changelog for TShock for Terraria. Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large. -## TShock 4.3.0.1 +## TShock 4.3.2 (Unreleased) + +* Fixed the issue where using the Super Absorbent Sponge would disable users (@WhiteXZ) +* Fixed an issue in NetGetData where e.Length - 1 would be -1 (@WhiteXZ) +* Fixed /who -i and /userinfo (@Enerdy) +* API: OnRegionEntered hook now returns the region entered (@Patrikkk) +* Support for Terraria 1.3.0.4 (@nicatronTg) +* Fixed dressers being unbreakable. (@nicatronTg) +* Fixed wall placement mechanics (@nicatronTg, @Ijwu, @WhiteXZ) +* Fixed Moon Lord projectiles disabling players (@k0rd, @nicatronTg) +* Fixed several potential crashes in server (@Patrikkk) +* Fixed -autocreate command line argument (@WhiteXZ, @nicatronTg) +* Added more world data to world load menu (@WhiteXZ) +* Moved server password to TShock config (@Enerdy) +* Fixed world delete in server (@benjiro) +* Fixed disappearing NPCs (@WhiteXZ) +* Added much more performant code, SendQ, to server module. Reduces downstream network overhead by at least 40% (@tylerjwatson) +* API: Updated TSPlayer.Disable to use new buffs (@Enerdy) +* Updated default max projectile damage to 1,175 (based on 625 people) + +## TShock 4.3.1 * Fixed a bug where /user group failing would output no error. (@nicatronTg) * Fixed a bug where /user group would fail. @(Enerdy) diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index adcea438..4bf67d4c 100755 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -293,7 +293,7 @@ namespace TShockAPI public int MaxDamage = 175; [Description("The maximum damage a projectile can inflict.")] - public int MaxProjDamage = 175; + public int MaxProjDamage = 1175; [Description("Kicks a user if set to true, if they inflict more damage then the max damage.")] public bool KickOnDamageThresholdBroken = false; diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 835a890b..55c29f5e 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1944,9 +1944,10 @@ namespace TShockAPI } else if (action == EditAction.KillWall) { - // If they aren't selecting an hammer, they're hacking. - if (selectedItem.hammer == 0 && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0) + // If they aren't selecting an hammer, they could be hacking. + if (selectedItem.hammer == 0 && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0 && selectedItem.createWall == 0) { + args.Player.SendTileSquare(tileX, tileY, 1); return true; } @@ -2474,7 +2475,7 @@ namespace TShockAPI bool hasPermission = !TShock.CheckProjectilePermission(args.Player, index, type); if (!TShock.Config.IgnoreProjUpdate && !hasPermission && !args.Player.Group.HasPermission(Permissions.ignoreprojectiledetection)) { - if (type == 100 || type == 164 || type == 180 || type == 261 || (type > 289 && type < 298) || (type >= 325 && type <= 328) || (type >= 345 && type <= 352) || (type >= 435 && type <= 438)) + if (type == 622 || (type >= 638 && type <= 642) || type == 100 || type == 164 || type == 180 || type == 261 || (type > 289 && type < 298) || (type >= 325 && type <= 328) || (type >= 345 && type <= 352) || (type >= 435 && type <= 438)) { TShock.Log.Debug("Certain projectiles have been ignored for cheat detection."); } @@ -2778,7 +2779,7 @@ namespace TShockAPI return true; } - if (flag != 0 && Main.tile[tileX, tileY].type != 21 && (!TShock.Utils.MaxChests() && Main.tile[tileX, tileY].type != 0)) //Chest + if (flag != 0 && Main.tile[tileX, tileY].type != 21 && Main.tile[tileX, tileY].type != 88 && (!TShock.Utils.MaxChests() && Main.tile[tileX, tileY].type != 0)) //Chest { args.Player.SendTileSquare(tileX, tileY, 3); return true; diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index 69f5e604..eed65b90 100755 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -24,6 +24,7 @@ using System.Text; using System.Threading; using System.Timers; using Terraria; +using Terraria.ID; using TShockAPI.DB; using TShockAPI.Net; using Timer = System.Timers.Timer; @@ -770,13 +771,17 @@ namespace TShockAPI public int ActiveChest = -1; public Item ItemInHand = new Item(); + /// + /// Disables the player for the given . + /// + /// The reason why the player was disabled. + /// Whether or not to log this event to the console. public virtual void Disable(string reason = "", bool displayConsole = true) { LastThreat = DateTime.UtcNow; - SetBuff(33, 330, true); //Weak - SetBuff(32, 330, true); //Slow - SetBuff(23, 330, true); //Cursed - SetBuff(47, 330, true); //Frozen + SetBuff(BuffID.Frozen, 330, true); + SetBuff(BuffID.Stoned, 330, true); + SetBuff(BuffID.Webbed, 330, true); if (ActiveChest != -1) { @@ -798,6 +803,7 @@ namespace TShockAPI LastDisableNotification = DateTime.UtcNow; } } + var trace = new StackTrace(); StackFrame frame = null; frame = trace.GetFrame(1); diff --git a/TerrariaServerAPI b/TerrariaServerAPI index e0d62e9b..088c5f70 160000 --- a/TerrariaServerAPI +++ b/TerrariaServerAPI @@ -1 +1 @@ -Subproject commit e0d62e9b9092496c61f86f721235e7b488349d0a +Subproject commit 088c5f707f0ae1f948ee5dac4566702a5d85e07e diff --git a/prebuilts/MySql.Web.dll b/prebuilts/MySql.Web.dll deleted file mode 100644 index ec9a26ea..00000000 Binary files a/prebuilts/MySql.Web.dll and /dev/null differ diff --git a/scripts/create_release.py b/scripts/create_release.py index 8e2bd256..1ca0b618 100644 --- a/scripts/create_release.py +++ b/scripts/create_release.py @@ -11,7 +11,7 @@ cur_wd = os.getcwd() release_dir = os.path.join(cur_wd, "releases") terraria_bin_name = "TerrariaServer.exe" -sql_bins_names = ["Mono.Data.Sqlite.dll", "MySql.Data.dll", "MySql.Web.dll"] +sql_bins_names = ["Mono.Data.Sqlite.dll", "MySql.Data.dll"] sqlite_dep = "sqlite3.dll" json_bin_name = "Newtonsoft.Json.dll" http_bin_name = "HttpServer.dll" @@ -56,7 +56,7 @@ def create_base_zip(name): zip.write(terraria_bin_name) zip.write(sqlite_dep) zip.write(http_bin_name, os.path.join("ServerPlugins", http_bin_name)) - zip.write(json_bin_name, os.path.join("ServerPlugins", json_bin_name)) + zip.write(json_bin_name, json_bin_name) zip.write(bcrypt_bin_name, os.path.join("ServerPlugins", bcrypt_bin_name)) for f in sql_bins_names: zip.write(f, os.path.join("ServerPlugins", f)) diff --git a/scripts/deploy_release.py b/scripts/deploy_release.py index a9194eba..5e2a90e1 100644 --- a/scripts/deploy_release.py +++ b/scripts/deploy_release.py @@ -99,7 +99,7 @@ upload_headers = {'Authorization': 'token ' + token, 'Content-Type':'application #upload the binary, resulting in a complete binary r = requests.post(upload_url, data=open(release_name, 'rb'), headers = upload_headers, verify=False) -read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt") -read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt") -read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt") -read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt") \ No newline at end of file +# read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt") +# read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt") +# read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt") +# read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt") \ No newline at end of file