public static void WorldChatAdmin(CommandEventArgs e) { Mobile from = e.Mobile; PlayerMobile player = from as PlayerMobile; if (player == null) { return; } ChatPersistance.CheckAndCreateWorldChatAccountEntry(player); player.CloseGump(typeof(WorldChatAdminGump)); player.SendGump(new WorldChatAdminGump(player)); }
protected override void OnTarget(Mobile from, object target) { if (from == null) { return; } PlayerMobile playerTarget = target as PlayerMobile; if (playerTarget == null) { from.SendMessage("That is not a player."); return; } ChatPersistance.CheckAndCreateWorldChatAccountEntry(playerTarget); Account playerAccount = playerTarget.Account as Account; if (playerAccount == null) { return; } PlayerSquelchEntry entryToRemove = null; foreach (PlayerSquelchEntry squelchEntry in ChatPersistance.m_PlayersSquelched) { if (squelchEntry.m_Player == null) { continue; } if (squelchEntry.m_Player.Account == null) { continue; } Account squelchAccount = squelchEntry.m_Player.Account as Account; if (squelchAccount == null) { continue; } if (playerAccount == squelchAccount) { entryToRemove = squelchEntry; break; } } if (entryToRemove != null) { ChatPersistance.m_PlayersSquelched.Remove(entryToRemove); from.SendMessage("Squelch for " + playerTarget.Name + " has been lifted."); } else { from.SendMessage("No Squelch entry found for that player's account."); } UpdateAdminGumps(); }
protected override void OnTarget(Mobile from, object target) { PlayerMobile pm_From = from as PlayerMobile; if (pm_From == null) { return; } PlayerMobile playerTarget = target as PlayerMobile; if (playerTarget == null) { pm_From.SendMessage("That is not a player."); return; } if (pm_From.AccessLevel <= playerTarget.AccessLevel) { pm_From.SendMessage("You do not have enough access to Squelch that player."); return; } ChatPersistance.CheckAndCreateWorldChatAccountEntry(playerTarget); Account playerAccount = playerTarget.Account as Account; if (playerAccount == null) { return; } string accountName = ""; PlayerSquelchEntry entryToRemove = null; foreach (PlayerSquelchEntry squelchEntry in ChatPersistance.m_PlayersSquelched) { if (squelchEntry.m_Player == null) { continue; } if (squelchEntry.m_Player.Account == null) { continue; } Account squelchAccount = squelchEntry.m_Player.Account as Account; if (squelchAccount == null) { continue; } if (playerAccount == squelchAccount) { accountName = playerAccount.Username; entryToRemove = squelchEntry; break; } } if (entryToRemove != null) { if (entryToRemove.m_SquelchExpiration >= DateTime.UtcNow + TimeSpan.FromHours(24)) { pm_From.SendMessage("That player's account (" + accountName + ") is already squelched for longer than 24 hours. Use [WorldChatAdmin to manage current Squelches."); } else { ChatPersistance.m_PlayersSquelched.Remove(entryToRemove); ChatPersistance.m_PlayersSquelched.Add(new PlayerSquelchEntry(playerTarget, true, DateTime.UtcNow + TimeSpan.FromHours(24))); pm_From.SendMessage("Squelch for " + playerTarget.Name + " set for 24 hours."); } } else { ChatPersistance.m_PlayersSquelched.Add(new PlayerSquelchEntry(playerTarget, true, DateTime.UtcNow + TimeSpan.FromHours(24))); pm_From.SendMessage("Squelch for " + playerTarget.Name + " set for 24 hours."); } UpdateAdminGumps(); pm_From.CloseGump(typeof(WorldChatAdminGump)); pm_From.SendGump(new WorldChatAdminGump(pm_From)); }