public override async void Process() { var info = Device.Player.Home.AllianceInfo; if (!info.HasAlliance) { return; } var alliance = await Resources.Alliances.GetAllianceAsync(info.Id); if (alliance == null) { return; } var entry = new ChatStreamEntry { Message = Message }; entry.SetSender(Device.Player); alliance.AddEntry(entry); }
public override async Task Process() { var alliance = await Resources.AllianceCache.GetAlliance(Device.Player.AllianceId); if (alliance != null) { var entry = new ChatStreamEntry { CreationDateTime = DateTime.Now, Id = (long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds, Message = Message, SenderRole = alliance.GetRole(Device.Player.AccountId) }; entry.SetSender(Device.Player); alliance.AddEntry(entry); foreach (var member in alliance.Members) { var player = await Resources.PlayerCache.GetPlayer(member.AccountId, true); if (player != null) { await Resources.Gateway.Send(new AllianceStreamEntryMessage(player.Device) { AllianceStreamEntry = entry }); } } } }
public override async void Process(Level level) { try { if (m_vChatMessage.Length > 0) { if (m_vChatMessage.Length < 101) { if (m_vChatMessage[0] == '/') { Object obj = GameOpCommandFactory.Parse(m_vChatMessage); if (obj != null) { string player = ""; if (level != null) { player += " (" + level.GetPlayerAvatar().GetId() + ", " + level.GetPlayerAvatar().GetAvatarName() + ")"; } ((GameOpCommand)obj).Execute(level); } } else { ClientAvatar avatar = level.GetPlayerAvatar(); long allianceId = avatar.GetAllianceId(); if (allianceId > 0) { ChatStreamEntry cm = new ChatStreamEntry(); cm.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); cm.SetSender(avatar); cm.SetMessage(m_vChatMessage); Alliance alliance = await ObjectManager.GetAlliance(allianceId); if (alliance != null) { alliance.AddChatMessage(cm); foreach (var op in alliance.GetAllianceMembers()) { Level player = await ResourcesManager.GetPlayer(op.GetAvatarId()); if (player.GetClient() != null) { AllianceStreamEntryMessage p = new AllianceStreamEntryMessage(player.GetClient()); p.SetStreamEntry(cm); PacketProcessor.Send(p); } } } } } } } } catch (Exception) { } }
internal override async void Process() { try { if (m_vChatMessage.Length > 0) { if (m_vChatMessage.Length < 101) { if (m_vChatMessage[0] == '/') { Object obj = GameOpCommandFactory.Parse(m_vChatMessage); if (obj != null) { string player = ""; if (this.Device.Player != null) { player += " (" + this.Device.Player.Avatar.UserId + ", " + this.Device.Player.Avatar.AvatarName + ")"; } ((GameOpCommand)obj).Execute(this.Device.Player); } } else { ClientAvatar avatar = this.Device.Player.Avatar; long allianceId = avatar.AllianceId; if (allianceId > 0) { ChatStreamEntry cm = new ChatStreamEntry(); cm.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; cm.SetSender(avatar); cm.Message = m_vChatMessage; Alliance alliance = ObjectManager.GetAlliance(allianceId); if (alliance != null) { alliance.AddChatMessage(cm); foreach (var op in alliance.GetAllianceMembers()) { Level player = await ResourcesManager.GetPlayer(op.AvatarId); if (player.Client != null) { new AllianceStreamEntryMessage(player.Client) { StreamEntry = cm }.Send(); } } } } } } } } catch (Exception) { } }
public override void Process(Level level) { if (m_vChatMessage.Length > 0) { if (m_vChatMessage[0] == '/') { var obj = GameOpCommandFactory.Parse(m_vChatMessage); if (obj != null) { var player = ""; if (level != null) { player += " (" + level.GetPlayerAvatar().GetId() + ", " + level.GetPlayerAvatar().GetAvatarName() + ")"; } ((GameOpCommand)obj).Execute(level); } } else { var avatar = level.GetPlayerAvatar(); var allianceId = avatar.GetAllianceId(); if (allianceId > 0) { var cm = new ChatStreamEntry(); cm.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); cm.SetSender(avatar); cm.SetMessage(m_vChatMessage); var alliance = ObjectManager.GetAlliance(allianceId); if (alliance != null) { alliance.AddChatMessage(cm); Parallel.ForEach((alliance.GetAllianceMembers()), op => { Level player = ResourcesManager.GetPlayer(op.GetAvatarId()); if (player.GetClient() != null) { var p = new AllianceStreamEntryMessage(player.GetClient()); p.SetStreamEntry(cm); p.Send(); } }); } } } } }
public override async void Process() { var info = Device.Player.Home.AllianceInfo; if (!info.HasAlliance) { return; } var alliance = await Resources.Alliances.GetAllianceAsync(info.Id); if (alliance == null) { return; } if (Message.StartsWith('/')) { var cmd = Message.Split(' '); var cmdType = cmd[0]; var cmdValue = 0; if (cmd.Length > 1) { if (Message.Split(' ')[1].Any(char.IsDigit)) { int.TryParse(Message.Split(' ')[1], out cmdValue); } } switch (cmdType) { case "/upgrade": { Device.Player.Home.Deck.UpgradeAll(); Device.Disconnect(); break; } case "/exp": { Device.Player.Home.AddExpPoints(cmdValue); Device.Disconnect(); break; } case "/gold": { Device.Player.Home.Gold += cmdValue; Device.Disconnect(); break; } case "/status": { await new ServerErrorMessage(Device) { Message = $"Online Players: {Resources.Players.Count}\nTotal Players: {await PlayerDb.CountAsync()}" }.SendAsync(); break; } /*case "/replay": * { * await new HomeBattleReplayDataMessage(Device).SendAsync(); * break; * } * * case "/free": * { * Device.Player.Home.FreeChestTime = Device.Player.Home.FreeChestTime.Subtract(TimeSpan.FromMinutes(245)); * Device.Disconnect(); * break; * }*/ /*case "/trophies": * { * if (cmdValue >= 0) * Device.Player.Home.Arena.AddTrophies(cmdValue); * else if (cmdValue < 0) * Device.Player.Home.Arena.RemoveTrophies(cmdValue); * * Device.Disconnect(); * break; * }*/ /*case "/test": * { * var entry = new DonateStreamEntry * { * Message = Message, * TotalCapacity = 10 * }; * * entry.SetSender(Device.Player); * * alliance.AddEntry(entry); * * break; * }*/ /*case "/test": * { * var entry = new AllianceMailAvatarStreamEntry * { * Message = "Works", * Title = "Hehe", * AllianceId = 1, * AllianceName = "LOL", * AllianceBadge = 5, * IsNew = true * }; * * entry.SetSender(Device.Player); * * Device.Player.AddEntry(entry); * * break; * }*/ } } else { var entry = new ChatStreamEntry { Message = Message }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } }
public override async void Process() { var info = Device.Player.Home.AllianceInfo; if (!info.HasAlliance) { return; } var alliance = await Resources.Alliances.GetAllianceAsync(info.Id); if (alliance == null) { return; } if (Message.StartsWith('/')) { var cmd = Message.Split(' '); var cmdType = cmd[0]; var cmdValue = 0; if (cmd.Length > 1) { if (Message.Split(' ')[1].Any(char.IsDigit)) { int.TryParse(Message.Split(' ')[1], out cmdValue); } } switch (cmdType) { case "/max": { var deck = Device.Player.Home.Deck; foreach (var card in Cards.GetAllCards()) { deck.Add(card); for (var i = 0; i < 12; i++) { deck.UpgradeCard(card.ClassId, card.InstanceId, true); } } await new ServerErrorMessage(Device) { Message = "Added all cards with max level" }.SendAsync(); break; } case "/unlock": { var deck = Device.Player.Home.Deck; foreach (var card in Cards.GetAllCards()) { deck.Add(card); } await new ServerErrorMessage(Device) { Message = "Added all cards" }.SendAsync(); break; } case "/gold": { Device.Player.Home.Gold += cmdValue; Device.Disconnect(); break; } case "/gems": { Device.Player.Home.Diamonds += cmdValue; Device.Disconnect(); break; } case "/status": { var entry = new ChatStreamEntry { Message = $"Server status:\nBuild version: 1.5 (for 1.9.2)\nFingerprint SHA:\n{Resources.Fingerprint.Sha}\nOnline Players: {Resources.Players.Count}\nTotal Players: {await PlayerDb.CountAsync()}\n1v1 Battles: {Resources.Battles.Count}\n2v2 Battles: {Resources.DuoBattles.Count}\nTotal Clans: {await AllianceDb.CountAsync()}\nUptime: {DateTime.UtcNow.Subtract(Resources.StartTime).ToReadableString()}\nUsed RAM: {System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / (1024 * 1024) + " MB"}" }; entry.SetSender(Device.Player); alliance.AddEntry(entry); break; } case "/free": { Device.Player.Home.FreeChestTime = Device.Player.Home.FreeChestTime.Subtract(TimeSpan.FromMinutes(245)); Device.Disconnect(); break; } /*case "/replay": * { * await new HomeBattleReplayDataMessage(Device).SendAsync(); * break; * }*/ case "/trophies": { if (cmdValue >= 0) { Device.Player.Home.Arena.AddTrophies(cmdValue); } else if (cmdValue < 0) { Device.Player.Home.Arena.RemoveTrophies(cmdValue); } Device.Disconnect(); break; } case "/set": { Device.Player.Home.Arena.SetTrophies(cmdValue); Device.Disconnect(); break; } case "/help": { var help = new ChatStreamEntry { Message = $"List of commands:\n/max - open all cards max. level\n/unlock - open all cards\n/gold x - give out gold, where x - amount of gold\n/ gems x - give out gems, where x - amount of gems\n/ status - a command that shows the server status (needed for admins)\n / free - resets the timer of the free chest\n/trophies x - adds trophies, where x - the number of trophies (can be negative)\n/ set x - the specified number of trophies is available, where x - the number of trophies" }; help.SetSender(Device.Player); alliance.AddEntry(help); break; } default: var error = new ChatStreamEntry { Message = $"Command not found. Use /help for the list of commands." }; error.SetSender(Device.Player); alliance.AddEntry(error); break; } } else { var entry = new ChatStreamEntry { Message = Message }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } }
public override async void Process() { var info = Device.Player.Home.AllianceInfo; if (!info.HasAlliance) { return; } var alliance = await Resources.Alliances.GetAllianceAsync(info.Id); if (alliance == null) { return; } if (Message.StartsWith('/')) { var cmd = Message.Split(' '); var cmdType = cmd[0]; var cmdValue = 0; if (cmd.Length > 1) { if (Message.Split(' ')[1].Any(char.IsDigit)) { int.TryParse(Message.Split(' ')[1], out cmdValue); } } switch (cmdType) { case "/max": { var deck = Device.Player.Home.Deck; foreach (var card in Cards.GetAllCards()) { deck.Add(card); for (var i = 0; i < 12; i++) { deck.UpgradeCard(card.ClassId, card.InstanceId, true); } } await new ServerErrorMessage(Device) { Message = "Added all cards with max level" }.SendAsync(); break; } case "/unlock": { var deck = Device.Player.Home.Deck; foreach (var card in Cards.GetAllCards()) { deck.Add(card); } await new ServerErrorMessage(Device) { Message = "Added all cards" }.SendAsync(); break; } case "/gold": { Device.Player.Home.Gold += cmdValue; Device.Disconnect(); break; } case "/status": { await new ServerErrorMessage(Device) { Message = $"Online Players: {Resources.Players.Count}\nTotal Players: {await PlayerDb.CountAsync()}\n1v1 Battles: {Resources.Battles.Count}\n2v2 Battles: {Resources.DuoBattles.Count}\nTotal Clans: {await AllianceDb.CountAsync()}\nUptime: {DateTime.UtcNow.Subtract(Resources.StartTime).ToReadableString()}" }.SendAsync(); break; } /*case "/free": * { * Device.Player.Home.FreeChestTime = Device.Player.Home.FreeChestTime.Subtract(TimeSpan.FromMinutes(245)); * Device.Disconnect(); * break; * }*/ /*case "/replay": * { * await new HomeBattleReplayDataMessage(Device).SendAsync(); * break; * }*/ /*case "/trophies": * { * if (cmdValue >= 0) * Device.Player.Home.Arena.AddTrophies(cmdValue); * else if (cmdValue < 0) * Device.Player.Home.Arena.RemoveTrophies(cmdValue); * * Device.Disconnect(); * break; * }*/ } } else { var entry = new ChatStreamEntry { Message = Message }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } }
public override async void Process() { var info = Device.Player.Home.AllianceInfo; if (!info.HasAlliance) { return; } var alliance = await Resources.Alliances.GetAllianceAsync(info.Id); if (alliance == null) { return; } if (Message.StartsWith('/')) { var cmd = Message.Split(' '); var cmdType = cmd[0]; var cmdValue = 0; if (cmd.Length > 1) { if (Message.Split(' ')[1].Any(char.IsDigit)) { int.TryParse(Message.Split(' ')[1], out cmdValue); } } switch (cmdType) { case "/upgrade": { Device.Player.Home.Deck.UpgradeAll(); Device.Disconnect(); break; } case "/exp": { Device.Player.Home.AddExpPoints(cmdValue); Device.Disconnect(); break; } case "/gold": { Device.Player.Home.Gold += cmdValue; Device.Disconnect(); break; } /*case "/test": * { * var entry = new DonateStreamEntry * { * Message = Message, * TotalCapacity = 10 * }; * * entry.SetSender(Device.Player); * * alliance.AddEntry(entry); * * break; * }*/ } } else { var entry = new ChatStreamEntry { Message = Message }; entry.SetSender(Device.Player); alliance.AddEntry(entry); } }