public override void OnResponse(Mobile from, string text) { PlayerMobile player = from as PlayerMobile; if (player == null) { return; } if (player.Deleted || !player.Alive) { return; } ChatPersistance.ClearExpiredSquelchEntries(); ChatPersistance.CheckAndCreateWorldChatAccountEntry(player); if (text == "" || text == null) { player.SendMessage("No player by that name has been found."); return; } string playerTargetName = text.ToLower(); Account playerAccount = player.Account as Account; if (playerAccount == null) { return; } if (playerAccount.accountMobiles == null) { return; } for (int a = 0; a < playerAccount.accountMobiles.Length; a++) { PlayerMobile pm_Mobile = playerAccount.accountMobiles[a] as PlayerMobile; if (pm_Mobile == null) { continue; } if (pm_Mobile.RawName == null || pm_Mobile.RawName == "") { continue; } if (pm_Mobile.RawName.ToLower() == playerTargetName) { player.SendMessage("You cannot squelch a player on your own account."); return; } } foreach (Account account in Accounts.GetAccounts()) { if (account == null) { continue; } if (account.accountMobiles == null) { continue; } for (int a = 0; a < account.accountMobiles.Length; a++) { PlayerMobile playerTarget = account.accountMobiles[a] as PlayerMobile; if (playerTarget == null) { continue; } if (playerTarget.RawName == null) { continue; } if (playerTarget.RawName.ToLower() == playerTargetName) { if (playerTarget.AccessLevel >= player.AccessLevel) { player.SendMessage("You must have a higher access level to Squelch that player."); return; } string accountName = ""; Account playerTargetAccount = playerTarget.Account as Account; if (playerTargetAccount == null) { return; } for (int b = 0; b < ChatPersistance.m_PlayersSquelched.Count; b++) { if (ChatPersistance.m_PlayersSquelched[b].m_Player == null) { continue; } Account squelchAccount = ChatPersistance.m_PlayersSquelched[b].m_Player.Account as Account; if (squelchAccount != null) { if (playerTargetAccount == squelchAccount) { accountName = playerTargetAccount.Username; player.SendMessage("That player's account (" + accountName + ") has already been Squelched. Use [WorldChatAdmin to manage current Squelches."); return; } } } ChatPersistance.m_PlayersSquelched.Add(new PlayerSquelchEntry(playerTarget, true, DateTime.UtcNow + TimeSpan.FromHours(24))); player.SendMessage(playerTarget.RawName + " added to WorldChat Squelch List."); switch (ChatPersistance.m_AdminFilterMode) { case WorldChatAccountEntry.FilterMode.Name: ChatPersistance.AdminSortSquelchedPlayersByName(); break; case WorldChatAccountEntry.FilterMode.Date: ChatPersistance.AdminSortSquelchedPlayersByDate(); break; } ChatPersistance.UpdateAdminGumps(); player.CloseGump(typeof(WorldChatAdminGump)); player.SendGump(new WorldChatAdminGump(player)); return; } } } player.SendMessage("No player by the name of " + playerTargetName + " has been found."); }
public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; if (from == null) { return; } if (from.Deleted) { return; } if (player == null) { return; } if (player.Deleted) { return; } bool resendGump = false; ChatPersistance.CheckAndCreateWorldChatAccountEntry(player); int m_PageNumber = ChatPersistance.m_PlayersSquelchedAdminPage; int TotalPlayersSquelched = ChatPersistance.m_PlayersSquelched.Count; int m_TotalPages = (int)(Math.Ceiling((double)TotalPlayersSquelched / (double)EntriesPerPage)); if (m_TotalPages == 0) { m_TotalPages = 1; } if (m_PageNumber < 1) { m_PageNumber = 1; } if (m_PageNumber > m_TotalPages) { m_PageNumber = m_TotalPages; } ChatPersistance.m_PlayersSquelchedAdminPage = m_PageNumber; //Filter By Name if (info.ButtonID == 1) { if (ChatPersistance.m_AdminFilterMode != WorldChatAccountEntry.FilterMode.Name) { ChatPersistance.m_AdminFilterMode = WorldChatAccountEntry.FilterMode.Name; ChatPersistance.m_PlayersSquelchedAdminPage = 1; ChatPersistance.AdminSortSquelchedPlayersByName(); ChatPersistance.UpdateAdminGumps(); } resendGump = true; } //Filter By Account if (info.ButtonID == 2) { if (ChatPersistance.m_AdminFilterMode != WorldChatAccountEntry.FilterMode.Account) { ChatPersistance.m_AdminFilterMode = WorldChatAccountEntry.FilterMode.Account; ChatPersistance.m_PlayersSquelchedAdminPage = 1; ChatPersistance.AdminSortSquelchedPlayersByAccount(); ChatPersistance.UpdateAdminGumps(); } resendGump = true; } //Filter By Expiration if (info.ButtonID == 3) { if (ChatPersistance.m_AdminFilterMode != WorldChatAccountEntry.FilterMode.Date) { ChatPersistance.m_AdminFilterMode = WorldChatAccountEntry.FilterMode.Date; ChatPersistance.m_PlayersSquelchedAdminPage = 1; ChatPersistance.AdminSortSquelchedPlayersByDate(); ChatPersistance.UpdateAdminGumps(); } resendGump = true; } //Previous if (info.ButtonID == 4) { if (ChatPersistance.m_PlayersSquelchedAdminPage > 1) { ChatPersistance.m_PlayersSquelchedAdminPage--; } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //Next if (info.ButtonID == 5) { if (ChatPersistance.m_PlayersSquelchedAdminPage < m_TotalPages) { ChatPersistance.m_PlayersSquelchedAdminPage++; } resendGump = true; } //Enable World Chat if (info.ButtonID == 6) { ChatPersistance.Enabled = !ChatPersistance.Enabled; if (ChatPersistance.Enabled) { player.SendMessage("WorldChat has been enabled for all players."); } else { player.SendMessage("WorldChat has been disabled for all players."); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //Squelch Player By Target if (info.ButtonID == 7) { ChatPersistance.WorldChatAdminSquelch(player, TimeSpan.FromHours(24)); resendGump = false; } //Squelch Player By Name if (info.ButtonID == 8) { player.SendMessage("Please enter the name of the player to add to the Squelched List."); player.Prompt = new WorldChatAdminSquelchPlayerPrompt(player); resendGump = true; } //Remove Entry if (info.ButtonID >= 10 && info.ButtonID <= 19) { PlayerSquelchEntry squelchEntry = null; int entryIndex = (m_PageNumber - 1) * EntriesPerPage + (info.ButtonID - 10); if (entryIndex < ChatPersistance.m_PlayersSquelched.Count) { ChatPersistance.m_PlayersSquelched.RemoveAt(entryIndex); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //24 Hour Squelch if (info.ButtonID >= 20 && info.ButtonID <= 29) { PlayerSquelchEntry squelchEntry = null; int entryIndex = (m_PageNumber - 1) * EntriesPerPage + (info.ButtonID - 20); if (entryIndex < ChatPersistance.m_PlayersSquelched.Count) { ChatPersistance.m_PlayersSquelched[entryIndex].m_SquelchExpiration = DateTime.UtcNow + TimeSpan.FromHours(24); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //1 Week Squelch if (info.ButtonID >= 30 && info.ButtonID <= 39) { PlayerSquelchEntry squelchEntry = null; int entryIndex = (m_PageNumber - 1) * EntriesPerPage + (info.ButtonID - 30); if (entryIndex < ChatPersistance.m_PlayersSquelched.Count) { ChatPersistance.m_PlayersSquelched[entryIndex].m_SquelchExpiration = DateTime.UtcNow + TimeSpan.FromDays(7); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //1 Month Squelch if (info.ButtonID >= 40 && info.ButtonID <= 49) { PlayerSquelchEntry squelchEntry = null; int entryIndex = (m_PageNumber - 1) * EntriesPerPage + (info.ButtonID - 40); if (entryIndex < ChatPersistance.m_PlayersSquelched.Count) { ChatPersistance.m_PlayersSquelched[entryIndex].m_SquelchExpiration = DateTime.UtcNow + TimeSpan.FromDays(30); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } //1 Year Squelch if (info.ButtonID >= 50 && info.ButtonID <= 59) { PlayerSquelchEntry squelchEntry = null; int entryIndex = (m_PageNumber - 1) * EntriesPerPage + (info.ButtonID - 50); if (entryIndex < ChatPersistance.m_PlayersSquelched.Count) { ChatPersistance.m_PlayersSquelched[entryIndex].m_SquelchExpiration = DateTime.UtcNow + TimeSpan.FromDays(365); } ChatPersistance.UpdateAdminGumps(); resendGump = true; } if (resendGump) { player.CloseGump(typeof(WorldChatAdminGump)); player.SendGump(new WorldChatAdminGump(player)); } }