/// <summary> /// Sets an override player character name and community name on the player list for all players. Is not persistent. /// </summary> /// <param name="target">The player whose name is being overridden.</param> /// <param name="nameOverride">The new names for the player.</param> public void SetPlayerNameOverride(NwPlayer target, PlayerNameOverride nameOverride) { globalNameOverrides[target] = nameOverride; CacheOriginalNames(target); // If we've ran this before the PC has even been added to the other clients' player list then there's // nothing else we need to do, the hooks will take care of doing the renames. If we don't skip this // then the SendServerToPlayerPlayerList_All in the SendNameUpdate below runs before the server has even ran a // SendServerToPlayerPlayerList_Add and weird things happen(tm) if (PlayerListNameType != OverrideNameType.Original && renameAddedToPlayerList.Contains(target)) { return; } SendNameUpdateToAllPlayers(target); }
/// <summary> /// Sets an override player character name and community name on the player list as observed by a specific player. Is not persistent. /// </summary> /// <param name="target">The player whose name is being overridden.</param> /// <param name="nameOverride">The new names for the player.</param> /// <param name="observer">The observer to see the new names.</param> public void SetPlayerNameOverride(NwPlayer target, PlayerNameOverride nameOverride, NwPlayer observer) { if (!perPlayerOverrides.TryGetValue(target, out Dictionary <NwPlayer, PlayerNameOverride>?playerOverrides)) { playerOverrides = new Dictionary <NwPlayer, PlayerNameOverride>(); perPlayerOverrides[target] = playerOverrides; } playerOverrides[observer] = nameOverride; CacheOriginalNames(target); // If we've ran this before the PC has even been added to the other clients' player list then there's // nothing else we need to do, the hooks will take care of doing the renames. If we don't skip this // then the SendServerToPlayerPlayerList_All in the SendNameUpdate below runs before the server has even ran a // SendServerToPlayerPlayerList_Add and weird things happen(tm) if (PlayerListNameType != OverrideNameType.Original && renameAddedToPlayerList.Contains(target)) { return; } SendNameUpdate(target, observer); }