public void PostLoadPlayer(Exiled.API.Features.Player player) { Player databasePlayer = player.GetDatabasePlayer(); if (!string.IsNullOrEmpty(databasePlayer.BadgeName)) { UserGroup group = ServerStatic.GetPermissionsHandler()._groups[databasePlayer.BadgeName]; if (databasePlayer.BadgeExpire >= DateTime.Now) { player.ReferenceHub.serverRoles.SetGroup(group, false, true, true); if (ServerStatic.PermissionsHandler._members.ContainsKey(player.UserId)) { ServerStatic.PermissionsHandler._members.Remove(player.UserId); } ServerStatic.PermissionsHandler._members.Add(player.UserId, databasePlayer.BadgeName); BadgeSetEvent args = new BadgeSetEvent(); args.Player = player; args.NewBadgeName = databasePlayer.BadgeName; pluginInstance.Events.OnBadgeSet(args); } else { BadgeRemovedEvent args = new BadgeRemovedEvent(); args.Player = player; args.BadgeName = databasePlayer.BadgeName; databasePlayer.BadgeName = ""; if (ServerStatic.PermissionsHandler._members.ContainsKey(player.UserId)) { ServerStatic.PermissionsHandler._members.Remove(player.UserId); } if (ServerStatic.RolesConfig.GetStringDictionary("Members").ContainsKey(player.UserId)) { UserGroup previous = ServerStatic.GetPermissionsHandler()._groups[ServerStatic.RolesConfig.GetStringDictionary("Members")[player.UserId]]; ServerStatic.PermissionsHandler._members.Add(player.UserId, ServerStatic.RolesConfig.GetStringDictionary("Members")[player.UserId]); player.ReferenceHub.serverRoles.SetGroup(previous, false, true, true); } pluginInstance.Events.OnBadgeRemoved(args); } } Timing.CallDelayed(1.5f, () => { if (!string.IsNullOrEmpty(databasePlayer.ColorPreference) && databasePlayer.ColorPreference != "None") { if (player.CheckPermission("scputils.changecolor") || player.CheckPermission("scputils.playersetcolor") || databasePlayer.KeepPreferences || pluginInstance.Config.KeepColorWithoutPermission) { player.RankColor = databasePlayer.ColorPreference; } else { databasePlayer.ColorPreference = ""; } } if (databasePlayer.HideBadge == true) { if (player.CheckPermission("scputils.badgevisibility") || databasePlayer.KeepPreferences || pluginInstance.Config.KeepBadgeVisibilityWithoutPermission) { player.BadgeHidden = true; } else { databasePlayer.HideBadge = false; } } if (!string.IsNullOrEmpty(databasePlayer.CustomNickName) && databasePlayer.CustomNickName != "None") { if (player.CheckPermission("scputils.changenickname") || player.CheckPermission("scputils.playersetname") || databasePlayer.KeepPreferences || pluginInstance.Config.KeepNameWithoutPermission) { player.DisplayNickname = databasePlayer.CustomNickName; } else { databasePlayer.CustomNickName = ""; } } if (pluginInstance.Config.AutoKickBannedNames && pluginInstance.Functions.CheckNickname(player.Nickname) && !player.CheckPermission("scputils.bypassnickrestriction")) { Timing.CallDelayed(2f, () => { player.Kick("Auto-Kick: " + pluginInstance.Config.AutoKickBannedNameMessage, "SCPUtils"); }); } }); if (databasePlayer.UserNotified.Count() <= 0) { return; } if (databasePlayer.UserNotified[databasePlayer.UserNotified.Count() - 1] == false) { player.ClearBroadcasts(); player.Broadcast(pluginInstance.Config.OfflineWarnNotification); databasePlayer.UserNotified[databasePlayer.UserNotified.Count() - 1] = true; } }