diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 987936cb..73d03f4e 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -252,7 +252,8 @@ namespace TShockAPI ServerApi.Hooks.WorldSave.Register(this, SaveManager.Instance.OnSaveWorld); ServerApi.Hooks.WorldChristmasCheck.Register(this, OnXmasCheck); ServerApi.Hooks.NetNameCollision.Register(this, NetHooks_NameCollision); - TShockAPI.Hooks.PlayerHooks.PlayerPostLogin += OnPlayerLogin; + TShockAPI.Hooks.PlayerHooks.PlayerPreLogin += OnPlayerPreLogin; + TShockAPI.Hooks.PlayerHooks.PlayerPostLogin += OnPlayerLogin; GetDataHandlers.InitGetDataHandler(); Commands.InitCommands(); @@ -365,6 +366,12 @@ namespace TShockAPI Users.UpdateLogin(u); } + private void OnPlayerPreLogin(Hooks.PlayerPreLoginEventArgs args) + { + if (args.Player.IsLoggedIn) + args.Player.SaveServerCharacter(); + } + private void NetHooks_NameCollision(NameCollisionEventArgs args) { string ip = TShock.Utils.GetRealIP(Netplay.serverSock[args.Who].tcpClient.Client.RemoteEndPoint.ToString()); diff --git a/TerrariaServerBins/TerrariaServer.exe b/TerrariaServerBins/TerrariaServer.exe index 1c67e859..0b5d0936 100644 Binary files a/TerrariaServerBins/TerrariaServer.exe and b/TerrariaServerBins/TerrariaServer.exe differ