public static void OnQueryPlayerData(WorldClient client, INetPacketStream packet) { var onQueryPlayerDataPacket = new QueryPlayerDataPacket(packet); var queryPlayerDataEvent = new QueryPlayerDataEventArgs(onQueryPlayerDataPacket.PlayerId, onQueryPlayerDataPacket.Version); client.Player.NotifySystem <PlayerDataSystem>(queryPlayerDataEvent); }
private void GetPlayerData(IPlayerEntity player, QueryPlayerData2EventArgs e) { for (int i = 0; i < e.Size; i++) { var args = new QueryPlayerDataEventArgs(e.PlayerDictionary.Keys.ElementAt(i), e.PlayerDictionary.Values.ElementAt(i)); GetPlayerData(player, args, i == e.Size - 1); } }
private void GetPlayerData(IPlayerEntity player, QueryPlayerDataEventArgs e, bool send = true) { var worldServer = DependencyContainer.Instance.Resolve <IWorldServer>(); var playerEntity = worldServer.GetPlayerEntityByCharacterId(e.PlayerId); // Player is offline if (playerEntity is null) { var database = DependencyContainer.Instance.Resolve <IDatabase>(); var character = database.Characters.Get(x => x.Id == e.PlayerId); WorldPacketFactory.SendPlayerData(player, e.PlayerId, character.Name, (byte)character.ClassId, (byte)character.Level, character.Gender, PlayerDataComponent.StartVersion, false, send); } else // Player is online { WorldPacketFactory.SendPlayerData(player, e.PlayerId, playerEntity.Object.Name, (byte)playerEntity.PlayerData.JobId, (byte)playerEntity.Object.Level, playerEntity.VisualAppearance.Gender, playerEntity.PlayerData.Version, true, send); } }