public static bool PlayerCanUseMode(UnturnedPlayer Player, PointToolMode Mode) { if (Player.HasPermission("ShimmysAdminTools.PointTool.all") || Player.HasPermission("ShimmysAdminTools.PointTool.*")) { return(true); } if (Mode == PointToolMode.Destroy) { return(Player.HasPermission("ShimmysAdminTools.PointTool.Destroy") && AdminToolsPlugin.Config.PointToolSettings.DestroyToolEnabled); } if (Mode == PointToolMode.Jump) { return(Player.HasPermission("ShimmysAdminTools.PointTool.Jump") && AdminToolsPlugin.Config.PointToolSettings.JumpToolEnabled); } if (Mode == PointToolMode.Utility) { return(Player.HasPermission("ShimmysAdminTools.PointTool.Utility") && AdminToolsPlugin.Config.PointToolSettings.UtilityToolEnabled); } if (Mode == PointToolMode.Kill) { return(Player.HasPermission("ShimmysAdminTools.PointTool.Kill") && AdminToolsPlugin.Config.PointToolSettings.KillToolEnabled); } if (Mode == PointToolMode.None) { return(true); } return(false); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer Player = (UnturnedPlayer)caller; PlayerSession Session = PlayerSessionStore.GetPlayerData(Player); if (command.Length == 0) { Session.PointToolEnabled = !Session.PointToolEnabled; if (Session.PointToolEnabled) { UnturnedChat.Say(caller, "PointTool_EnabledActive".Translate(Session.PointTool)); Player.Player.gameObject.AddComponent <PointToolInputListener>(); } else { UnturnedChat.Say(caller, "PointTool_Disabled".Translate()); Player.Player.gameObject.DestroyComponentIfExists <PointToolInputListener>(); } } else { PointToolMode PrevTool = Session.PointTool; bool SendMsg = false; string Send = ""; string arg = command[0].ToLower(); if (arg == "d" || arg == "destroy") { Session.PointTool = PointToolMode.Destroy; SendMsg = true; Send = "PointTool_Selected_Destroy".Translate(); } else if (arg == "r" || arg == "repair") { Session.PointTool = PointToolMode.Repair; SendMsg = true; Send = "PointTool_Selected_Repair".Translate(); } else if (arg == "u" || arg == "utility") { Session.PointTool = PointToolMode.Utility; SendMsg = true; Send = "PointTool_Selected_Utility".Translate(); } else if (arg == "k" || arg == "kill") { Session.PointTool = PointToolMode.Kill; SendMsg = true; Send = "PointTool_Selected_Kill".Translate(); } else if (arg == "j" || arg == "jump") { Session.PointTool = PointToolMode.Jump; SendMsg = true; Send = "PointTool_Selected_Jump".Translate(); } if (PlayerCanUseMode(Player, Session.PointTool)) { if (SendMsg) { if (Session.PointToolEnabled) { UnturnedChat.Say(caller, Send); } else { Session.PointToolEnabled = true; UnturnedChat.Say(caller, Send + "PointTool_Extension_Enabled".Translate()); Player.Player.gameObject.AddComponent <PointToolInputListener>(); } } else { UnturnedChat.Say(caller, "Tools: Destroy, Utility, Jump, Kill"); } } else { Session.PointTool = PrevTool; UnturnedChat.Say(caller, "PointTool_Denied".Translate()); } } }