public async void SelectCharacter(Client client, object[] args) { uint characterId = (uint)(int)args[0]; CharacterData characterData = await CharacterDatabase.GetCharacterData(characterId); Vector3 position = characterData.GetPosition(); float heading = characterData.Heading.HasValue ? characterData.Heading.Value : 0; if (position == null) { GamePosition spawnPoint = ServerUtilities.GetRandomSpawnPoint(); position = spawnPoint.GetPosition(); heading = spawnPoint.GetHeading(); } client.SetData(CharacterData.CHARACTER_DATA_KEY, characterData); PlayerData playerData = client.GetData(PlayerData.PLAYER_DATA_KEY); GroupData highestRankedGroup = await GroupDatabase.GetPlayerHighestRankingGroup(playerData.Id); if (highestRankedGroup == null) { return; } if (characterData == null) { return; } ServerUtilities.SetPlayerNametag(client); ServerUtilities.SwitchPlayerPosition(client, position, heading); }
public static async void SetPlayerNametag(Client client) { PlayerData playerData = client.GetData(PlayerData.PLAYER_DATA_KEY); CharacterData characterData = client.GetData(CharacterData.CHARACTER_DATA_KEY); GroupData highestRankedGroup = await GroupDatabase.GetPlayerHighestRankingGroup(playerData.Id); if (characterData == null) { return; } client.Name = characterData.Name; if (highestRankedGroup == null) { client.Name = characterData.Name; NAPI.Player.SetPlayerName(client, characterData.Name); return; } var hexColor = highestRankedGroup.Color; client.Name = "[!{" + hexColor + "}" + highestRankedGroup.Name + "~w~] " + characterData.Name; NAPI.Player.SetPlayerName(client, "[!{" + hexColor + "}" + highestRankedGroup.Name + "~w~] " + characterData.Name); }