public static AccessLevelMod GetMod(PlayerMobile from) { AccessLevelMod mod = null; m_Mobiles.TryGetValue(from, out mod); return(mod); }
public static AccessLevel GetRawAccessLevel(PlayerMobile from) { AccessLevelMod mod = null; m_Mobiles.TryGetValue(from, out mod); if (mod != null) { return(mod.Level); } else { return(from.AccessLevel); } }
public static void Staff_OnCommand(CommandEventArgs e) { if (!(e.Mobile is PlayerMobile)) { return; } PlayerMobile from = (PlayerMobile)e.Mobile; AccessLevelMod mod = GetMod(from); if (mod != null) { if (e.Length == 0) { from.AccessLevel = mod.Level; m_Mobiles.Remove(from); from.SetCustomFlag(CustomPlayerFlag.StaffLevel, false); } else { AccessLevel level; if (!ArgumentToAccessLevel(e.Arguments[0], out level)) { from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]); } else { if (mod.Level < level) { from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]); } else { if (mod.Level == level) { m_Mobiles.Remove(from); from.SetCustomFlag(CustomPlayerFlag.StaffLevel, false); } from.AccessLevel = level; } } } } else if (from.AccessLevel == AccessLevel.Player) { from.Say(e.ArgString); } else { if (e.Length == 0) { m_Mobiles.Add(from, new AccessLevelMod(from.AccessLevel)); from.SetCustomFlag(CustomPlayerFlag.StaffLevel, true); from.AccessLevel = AccessLevel.Player; } else { AccessLevel level; if (!ArgumentToAccessLevel(e.Arguments[0], out level)) { from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]); } else { if (from.AccessLevel <= level) { from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]); } else { m_Mobiles.Add(from, new AccessLevelMod(from.AccessLevel)); from.SetCustomFlag(CustomPlayerFlag.StaffLevel, true); from.AccessLevel = level; } } } } }