diff --git a/CHANGELOG.md b/CHANGELOG.md
index ec5032c9..145d5933 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,13 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
## Upcoming changes
+## TShock 4.5.17
+* Fixed duplicate characters (twins) after repeatedly logging in as the same character due to connection not being immediately closed during `NetHooks_NameCollision`. (@gohjoseph)
+* Fixed mobs not dropping picked up coins. (@gohjoseph)
+
+## TShock 4.5.16
+* Added preliminary support for Terraria 1.4.3.6. (@SignatureBeef, @hakusaro)
+
## TShock 4.5.15
* Added preliminary support for Terraria 1.4.3.5. (@SignatureBeef, @hakusaro)
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 5a880494..7d877dce 100644
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -3957,7 +3957,7 @@ namespace TShockAPI
return true;
}
- return true;
+ return false;
}
private static bool HandleKillPortal(GetDataHandlerArgs args)
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 81c429ec..98f4045e 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -59,7 +59,7 @@ namespace TShockAPI
/// VersionNum - The version number the TerrariaAPI will return back to the API. We just use the Assembly info.
public static readonly Version VersionNum = Assembly.GetExecutingAssembly().GetName().Version;
/// VersionCodename - The version codename is displayed when the server starts. Inspired by software codenames conventions.
- public static readonly string VersionCodename = "Zelenskyy";
+ public static readonly string VersionCodename = "Volodymyr Oleksandrovych Zelenskyy";
/// SavePath - This is the path TShock saves its data in. This path is relative to the TerrariaServer.exe (not in ServerPlugins).
public static string SavePath = "tshock";
@@ -582,7 +582,7 @@ namespace TShockAPI
{
if (player.IP == ip)
{
- Netplay.Clients[player.Index].PendingTermination = true;
+ player.Kick("You logged in from the same IP.", true, true, null, true);
args.Handled = true;
return;
}
@@ -591,7 +591,7 @@ namespace TShockAPI
var ips = JsonConvert.DeserializeObject>(player.Account.KnownIps);
if (ips.Contains(ip))
{
- Netplay.Clients[player.Index].PendingTermination = true;
+ player.Kick("You logged in from another location.", true, true, null, true);
args.Handled = true;
}
}
@@ -1340,7 +1340,7 @@ namespace TShockAPI
//Reset toggle creative powers to default, preventing potential power transfer & desync on another user occupying this slot later.
- foreach(var kv in CreativePowerManager.Instance._powersById)
+ foreach (var kv in CreativePowerManager.Instance._powersById)
{
var power = kv.Value;
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 047baef3..af21743d 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 047baef38969ac1b8bc4b5c23a9f2fc7836f3751
+Subproject commit af21743d6f1fc468daa558a402cc79d1ee314252