public void AddFriend(string datas) { if (Program.GameServer.Clients.Any(x => x.Characters.Any(f => f.Name == datas))) { var charact = Program.GameServer.Clients.First(x => x.Characters.Any(f => f.Name == datas)); if (!character.NClient.Friends.Contains(charact.Infos.Pseudo)) { character.NClient.Friends.Add(charact.Infos.Pseudo); bool seeLevel = (charact.Friends.Contains(character.NClient.Infos.Pseudo) ? true : false); var packet = string.Format("{0};?;{1};{2};{3};{4};{5};{6}|", charact.Infos.Pseudo, charact.Player.Name, (seeLevel ? charact.Player.Level.ToString() : "?"), (seeLevel ? charact.Player.Faction.ID.ToString() : "-1"), charact.Player.Class.ToString(), charact.Player.Sex.ToString(), charact.Player.Skin.ToString()); character.NClient.Send(string.Concat("FAK", packet)); AccountsRequests.UpdateFriend(character.NClient.Infos.ID, charact.Infos.Pseudo, true); } else { character.NClient.Send("FAEa"); } } else { character.NClient.Send("FAEf"); } }
public void RemoveFriend(string datas) { var name = datas.Substring(1); if (datas.Substring(0, 1) == "*") { if (character.NClient.Friends.Contains(name)) { character.NClient.Friends.Remove(name); character.NClient.Send("FDK"); AccountsRequests.UpdateFriend(character.NClient.Infos.ID, name, true); } else { character.NClient.Send("FDEf"); } } else if (datas.Substring(0, 1) == "%") { if (Program.GameServer.Clients.Any(x => x.Characters.Any(f => f.Name == name))) { var client = Program.GameServer.Clients.First(x => x.Characters.Any(f => f.Name == name)); if (character.NClient.Friends.Contains(client.Infos.Pseudo)) { character.NClient.Friends.Remove(client.Infos.Pseudo); character.NClient.Send("FDK"); AccountsRequests.UpdateFriend(character.NClient.Infos.ID, client.Infos.Pseudo, true); } else { character.NClient.Send("FDEf"); } } else { character.NClient.Send("FDEf"); } } }