From c72eabf3101abc825deef716ac2858f3315e75b1 Mon Sep 17 00:00:00 2001 From: PUDGE Date: Thu, 30 Oct 2025 03:51:33 +0300 Subject: [PATCH 1/6] Bug fixes and renaming of some properties to more understandable ones. We need to test this to make sure it doesn't cause problems, because God only knows how it all works internally. https://discord.com/channels/656673194693885975/1002713309876854924/1432873468285948055 --- EXILED/Exiled.API/Features/Player.cs | 28 ++++++++++++-------------- EXILED/Exiled.CreditTags/CreditTags.cs | 6 +++--- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index cba7d0864d..7afba325e2 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -564,7 +564,12 @@ public Quaternion Rotation public PlayerPermissions RemoteAdminPermissions { get => (PlayerPermissions)ReferenceHub.serverRoles.Permissions; - set => ReferenceHub.serverRoles.Permissions = (ulong)value; + set + { + ReferenceHub.serverRoles.Permissions = (ulong)value; + Group.Permissions = (ulong)value; + ReferenceHub.serverRoles.FinalizeSetGroup(); + } } /// @@ -1033,12 +1038,11 @@ public float Stamina public bool IsStaffBypassEnabled => ReferenceHub.authManager.BypassBansFlagSet; /// - /// Gets or sets the player's group name. + /// Gets the player's group name. /// public string GroupName { get => ServerStatic.PermissionsHandler.Members.TryGetValue(UserId, out string groupName) ? groupName : null; - set => ServerStatic.PermissionsHandler.Members[UserId] = value; } /// @@ -1082,18 +1086,18 @@ public UserGroup Group } /// - /// Gets or sets the player's rank color. + /// Gets or sets the player's badge color. /// - public string RankColor + public string BadgeColor { get => ReferenceHub.serverRoles.Network_myColor; set => ReferenceHub.serverRoles.SetColor(value); } /// - /// Gets or sets the player's rank name. + /// Gets or sets the player's badge name. /// - public string RankName + public string BadgeText { get => ReferenceHub.serverRoles.Network_myText; set => ReferenceHub.serverRoles.SetText(value); @@ -1915,25 +1919,19 @@ public bool TryGetItem(ushort serial, out Item item) } /// - /// Sets the player's rank. + /// Receives an existing rank(group) or, if it doesn't exist, creates a new one and assigns it to this player. /// /// The rank name to be set. /// The group to be set. - public void SetRank(string name, UserGroup group) + public void SetGroup(string name, UserGroup group) { if (ServerStatic.PermissionsHandler.Groups.TryGetValue(name, out UserGroup userGroup)) { - userGroup.BadgeColor = group.BadgeColor; - userGroup.BadgeText = name; - userGroup.HiddenByDefault = !group.Cover; - userGroup.Cover = group.Cover; - ReferenceHub.serverRoles.SetGroup(userGroup, false, false); } else { ServerStatic.PermissionsHandler.Groups.Add(name, group); - ReferenceHub.serverRoles.SetGroup(group, false, false); } diff --git a/EXILED/Exiled.CreditTags/CreditTags.cs b/EXILED/Exiled.CreditTags/CreditTags.cs index 09ee281b7b..9228bb9e1d 100644 --- a/EXILED/Exiled.CreditTags/CreditTags.cs +++ b/EXILED/Exiled.CreditTags/CreditTags.cs @@ -83,7 +83,7 @@ internal bool ShowCreditTag(Player player, bool force = false) void ShowRank(RankType rank) { bool canReceiveCreditBadge = force || - (((string.IsNullOrEmpty(player.RankName) && + (((string.IsNullOrEmpty(player.BadgeText) && string.IsNullOrEmpty(player.ReferenceHub.serverRoles.HiddenBadge)) || Config.BadgeOverride) && player.GlobalBadge is null); bool canReceiveCreditCustomInfo = string.IsNullOrEmpty(player.CustomInfo) || Config.CustomPlayerInfoOverride; @@ -111,8 +111,8 @@ void ShowRank(RankType rank) private void SetCreditBadge(Player player, Rank value) { - player.RankName = value.Name; - player.RankColor = value.Color; + player.BadgeText = value.Name; + player.BadgeColor = value.Color; Log.Debug($"Updated {player.Nickname} badge to {value.Name}."); } From cfa302de39049229913067eeca34731d5e0593b1 Mon Sep 17 00:00:00 2001 From: PUDGE Date: Sat, 1 Nov 2025 16:41:30 +0300 Subject: [PATCH 2/6] Revert "Bug fixes and renaming of some properties to more understandable ones. We need to test this to make sure it doesn't cause problems, because God only knows how it all works internally." This reverts commit c72eabf3101abc825deef716ac2858f3315e75b1. --- EXILED/Exiled.API/Features/Player.cs | 28 ++++++++++++++------------ EXILED/Exiled.CreditTags/CreditTags.cs | 6 +++--- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index 7afba325e2..cba7d0864d 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -564,12 +564,7 @@ public Quaternion Rotation public PlayerPermissions RemoteAdminPermissions { get => (PlayerPermissions)ReferenceHub.serverRoles.Permissions; - set - { - ReferenceHub.serverRoles.Permissions = (ulong)value; - Group.Permissions = (ulong)value; - ReferenceHub.serverRoles.FinalizeSetGroup(); - } + set => ReferenceHub.serverRoles.Permissions = (ulong)value; } /// @@ -1038,11 +1033,12 @@ public float Stamina public bool IsStaffBypassEnabled => ReferenceHub.authManager.BypassBansFlagSet; /// - /// Gets the player's group name. + /// Gets or sets the player's group name. /// public string GroupName { get => ServerStatic.PermissionsHandler.Members.TryGetValue(UserId, out string groupName) ? groupName : null; + set => ServerStatic.PermissionsHandler.Members[UserId] = value; } /// @@ -1086,18 +1082,18 @@ public UserGroup Group } /// - /// Gets or sets the player's badge color. + /// Gets or sets the player's rank color. /// - public string BadgeColor + public string RankColor { get => ReferenceHub.serverRoles.Network_myColor; set => ReferenceHub.serverRoles.SetColor(value); } /// - /// Gets or sets the player's badge name. + /// Gets or sets the player's rank name. /// - public string BadgeText + public string RankName { get => ReferenceHub.serverRoles.Network_myText; set => ReferenceHub.serverRoles.SetText(value); @@ -1919,19 +1915,25 @@ public bool TryGetItem(ushort serial, out Item item) } /// - /// Receives an existing rank(group) or, if it doesn't exist, creates a new one and assigns it to this player. + /// Sets the player's rank. /// /// The rank name to be set. /// The group to be set. - public void SetGroup(string name, UserGroup group) + public void SetRank(string name, UserGroup group) { if (ServerStatic.PermissionsHandler.Groups.TryGetValue(name, out UserGroup userGroup)) { + userGroup.BadgeColor = group.BadgeColor; + userGroup.BadgeText = name; + userGroup.HiddenByDefault = !group.Cover; + userGroup.Cover = group.Cover; + ReferenceHub.serverRoles.SetGroup(userGroup, false, false); } else { ServerStatic.PermissionsHandler.Groups.Add(name, group); + ReferenceHub.serverRoles.SetGroup(group, false, false); } diff --git a/EXILED/Exiled.CreditTags/CreditTags.cs b/EXILED/Exiled.CreditTags/CreditTags.cs index 9228bb9e1d..09ee281b7b 100644 --- a/EXILED/Exiled.CreditTags/CreditTags.cs +++ b/EXILED/Exiled.CreditTags/CreditTags.cs @@ -83,7 +83,7 @@ internal bool ShowCreditTag(Player player, bool force = false) void ShowRank(RankType rank) { bool canReceiveCreditBadge = force || - (((string.IsNullOrEmpty(player.BadgeText) && + (((string.IsNullOrEmpty(player.RankName) && string.IsNullOrEmpty(player.ReferenceHub.serverRoles.HiddenBadge)) || Config.BadgeOverride) && player.GlobalBadge is null); bool canReceiveCreditCustomInfo = string.IsNullOrEmpty(player.CustomInfo) || Config.CustomPlayerInfoOverride; @@ -111,8 +111,8 @@ void ShowRank(RankType rank) private void SetCreditBadge(Player player, Rank value) { - player.BadgeText = value.Name; - player.BadgeColor = value.Color; + player.RankName = value.Name; + player.RankColor = value.Color; Log.Debug($"Updated {player.Nickname} badge to {value.Name}."); } From 7e673b2eb746c165579b60c6dcac309c7f855fc5 Mon Sep 17 00:00:00 2001 From: PUDGE Date: Sat, 1 Nov 2025 16:42:18 +0300 Subject: [PATCH 3/6] Fix a fix --- EXILED/Exiled.API/Features/Player.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index cba7d0864d..c32247fb58 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -1915,25 +1915,19 @@ public bool TryGetItem(ushort serial, out Item item) } /// - /// Sets the player's rank. + /// Receives an existing rank(group) or, if it doesn't exist, creates a new one and assigns it to this player. /// /// The rank name to be set. /// The group to be set. - public void SetRank(string name, UserGroup group) + public void SetGroup(string name, UserGroup group) { if (ServerStatic.PermissionsHandler.Groups.TryGetValue(name, out UserGroup userGroup)) { - userGroup.BadgeColor = group.BadgeColor; - userGroup.BadgeText = name; - userGroup.HiddenByDefault = !group.Cover; - userGroup.Cover = group.Cover; - ReferenceHub.serverRoles.SetGroup(userGroup, false, false); } else { ServerStatic.PermissionsHandler.Groups.Add(name, group); - ReferenceHub.serverRoles.SetGroup(group, false, false); } From a356911df5f3c7db9c62449faa3e9617b9c1ae7c Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Sat, 1 Nov 2025 23:02:49 +0100 Subject: [PATCH 4/6] Update EXILED/Exiled.API/Features/Player.cs --- EXILED/Exiled.API/Features/Player.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index c32247fb58..cf2ec78c09 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -1919,7 +1919,7 @@ public bool TryGetItem(ushort serial, out Item item) /// /// The rank name to be set. /// The group to be set. - public void SetGroup(string name, UserGroup group) + public void SetRank(string name, UserGroup group) { if (ServerStatic.PermissionsHandler.Groups.TryGetValue(name, out UserGroup userGroup)) { From 3c4f0b18a6cd3802591ea98d7c155e0ea218ca88 Mon Sep 17 00:00:00 2001 From: PUDGE Date: Sun, 2 Nov 2025 03:20:41 +0300 Subject: [PATCH 5/6] Fix RemoteAdminPermissions property --- EXILED/Exiled.API/Features/Player.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index cf2ec78c09..e9e0f5a3e6 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -564,7 +564,11 @@ public Quaternion Rotation public PlayerPermissions RemoteAdminPermissions { get => (PlayerPermissions)ReferenceHub.serverRoles.Permissions; - set => ReferenceHub.serverRoles.Permissions = (ulong)value; + set + { + ReferenceHub.serverRoles.Permissions = (ulong)value; + ReferenceHub.serverRoles.FinalizeSetGroup(); + } } /// From 57d4ea3a5258b0eb43753d617a15b19161171fff Mon Sep 17 00:00:00 2001 From: PUDGE Date: Fri, 7 Nov 2025 01:58:28 +0300 Subject: [PATCH 6/6] Minor refactoring and new method for easier rank assignment. --- EXILED/Exiled.API/Features/Player.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index e9e0f5a3e6..f3ccbe49f1 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -1935,10 +1935,24 @@ public void SetRank(string name, UserGroup group) ReferenceHub.serverRoles.SetGroup(group, false, false); } - if (ServerStatic.PermissionsHandler.Members.ContainsKey(UserId)) + ServerStatic.PermissionsHandler.Members[UserId] = name; + } + + /// + /// If the rank(group) exists in the remote admin config, it will assign it to the player. + /// + /// The rank name to be set. + /// if the rank(group) was found and successfully assigned, otherwise. + public bool TrySetRank(string name) + { + if (ServerStatic.PermissionsHandler.Groups.TryGetValue(name, out UserGroup userGroup)) + { + ReferenceHub.serverRoles.SetGroup(userGroup, false, false); ServerStatic.PermissionsHandler.Members[UserId] = name; - else - ServerStatic.PermissionsHandler.Members.Add(UserId, name); + return true; + } + + return false; } ///