diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index b9c24487..a2f76ea2 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -24,9 +24,10 @@ using System.IO; using System.IO.Streams; using System.Linq; using System.Text; +using System.Threading.Tasks; using TShockAPI.DB; -using Terraria; using TShockAPI.Net; +using Terraria; namespace TShockAPI { @@ -3400,6 +3401,24 @@ namespace TShockAPI { case RaptorPacketTypes.Acknowledge: args.Player.IsRaptor = true; + // Send these if the player was logged in before this packet arrives + if (args.Player.IsLoggedIn) + { + Task.Factory.StartNew(() => + { + args.Player.SendRaptorPermissions(); + if (args.Player.Group.HasPermission(Permissions.manageregion)) + { + for (int i = 0; i < TShock.Regions.Regions.Count; i++) + args.Player.SendRaptorRegion(TShock.Regions.Regions[i]); + } + if (args.Player.Group.HasPermission(Permissions.managewarp)) + { + for (int i = 0; i < TShock.Warps.Warps.Count; i++) + args.Player.SendRaptorWarp(TShock.Warps.Warps[i]); + } + }); + } return true; case RaptorPacketTypes.Region: if (args.Player.Group.HasPermission(Permissions.manageregion)) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 27aed18c..d8047e6a 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -1123,7 +1123,7 @@ namespace TShockAPI } if ((player.State < 10 || player.Dead) && (int) type > 12 && (int) type != 16 && (int) type != 42 && (int) type != 50 && - (int) type != 38 && (int) type != 21 && (int) type != 67) + (int) type != 38 && (int) type != 21) { e.Handled = true; return; @@ -1131,15 +1131,8 @@ namespace TShockAPI using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length)) { - try - { - if (GetDataHandlers.HandlerGetData(type, player, data)) - e.Handled = true; - } - catch (Exception ex) - { - Log.Error(ex.ToString()); - } + // Exceptions are already handled + e.Handled = GetDataHandlers.HandlerGetData(type, player, data); } }