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