diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index d0c3b48a..c3c7090d 100644 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -825,9 +825,9 @@ namespace TShockAPI { var group = TShock.Groups.GetGroupByName(account.Group); - if (group == null) + if (!TShock.Utils.AssertGroupValid(args.Player, group, false)) { - args.Player.SendErrorMessage("Login failed: The account references a group that doesn't exist."); + args.Player.SendErrorMessage("Login attempt failed - see the message above."); return; } diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index b90f6fe1..bc5f2175 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -2452,7 +2452,7 @@ namespace TShockAPI var group = TShock.Groups.GetGroupByName(account.Group); - if (!TShock.Utils.AssertGroupValid(args.Player, group)) + if (!TShock.Utils.AssertGroupValid(args.Player, group, true)) return true; args.Player.PlayerData = TShock.CharacterDB.GetPlayerData(args.Player, account.ID); @@ -3007,7 +3007,7 @@ namespace TShockAPI var group = TShock.Groups.GetGroupByName(account.Group); - if (!TShock.Utils.AssertGroupValid(args.Player, group)) + if (!TShock.Utils.AssertGroupValid(args.Player, group, true)) return true; args.Player.Group = group; diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs index be3722df..aad127dc 100644 --- a/TShockAPI/Utils.cs +++ b/TShockAPI/Utils.cs @@ -214,15 +214,19 @@ namespace TShockAPI /// /// Asserts that the group reference can be safely assigned to the player object. + /// If this assertion fails, and is true, the player is disconnected. If is false, the player will receive an error message. /// /// /// /// - public bool AssertGroupValid(TSPlayer player, Group group) + public bool AssertGroupValid(TSPlayer player, Group group, bool kick) { if (group == null) { - player.Disconnect("Your account's group could not be found. Please contact server administrators about this."); + if (kick) + player.Disconnect("Your account's group could not be loaded. Please contact server administrators about this."); + else + player.SendErrorMessage("Your account's group could not be loaded. Please contact server administrators about this."); return false; }