From 1bc785f39820395c5e4f7e72fb653c342b339575 Mon Sep 17 00:00:00 2001 From: stevenh Date: Mon, 20 Feb 2012 10:56:06 +0000 Subject: [PATCH] Fixes #392 making user group changes take effect on active players instantly --- TShockAPI/DB/UserManager.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/TShockAPI/DB/UserManager.cs b/TShockAPI/DB/UserManager.cs index 0b6ba990..afb0d8dc 100644 --- a/TShockAPI/DB/UserManager.cs +++ b/TShockAPI/DB/UserManager.cs @@ -19,6 +19,7 @@ using System; using System.Data; using System.IO; using System.Collections.Generic; +using System.Linq; using MySql.Data.MySqlClient; using System.Text.RegularExpressions; @@ -130,11 +131,18 @@ namespace TShockAPI.DB { try { - if (!TShock.Groups.GroupExists(group)) + Group grp = TShock.Groups.GetGroupByName(group); + if (null == grp) throw new GroupNotExistsException(group); if (database.Query("UPDATE Users SET UserGroup = @0 WHERE Username = @1;", group, user.Name) == 0) throw new UserNotExistException(user.Name); + + // Update player group reference for any logged in player + foreach (var player in TShock.Players.Where(p => null != p && p.UserAccountName == user.Name)) + { + player.Group = grp; + } } catch (Exception ex) {