From c759af6d49650562d8a3e4d8255ae812344a3035 Mon Sep 17 00:00:00 2001 From: quake1337 <3310937+bartico6@users.noreply.github.com> Date: Tue, 13 Jul 2021 21:53:54 +0200 Subject: [PATCH] Minor update. - AssertGroupValid now both sends the message and kicks the player depending on input parameter. - /login and DataHandler code is now an identical assert check. --- TShockAPI/Commands.cs | 4 ++-- TShockAPI/GetDataHandlers.cs | 4 ++-- TShockAPI/Utils.cs | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-) 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; }