/// <summary> /// Checks if the player has a cooldown on a specific command /// </summary> /// <param name="command">The command to check for</param> /// <returns>If there is a cooldown on the command</returns> public virtual bool HasCooldown(PointBlankCommand command) { if (!_Cooldowns.ContainsKey(command)) { return(false); } int cooldown = GetCooldown(); if (cooldown != -1) { if (!((DateTime.Now - _Cooldowns[command]).TotalSeconds >= cooldown)) { return(true); } _Cooldowns.Remove(command); return(false); } if (command.Cooldown == -1) { return(false); } if (!((DateTime.Now - _Cooldowns[command]).TotalSeconds >= command.Cooldown)) { return(true); } _Cooldowns.Remove(command); return(false); }
/// <summary> /// Gives the player a cooldown on a specific command /// </summary> /// <param name="command">The command to set the cooldown on</param> /// <param name="time">The time when the cooldown was applied(set to null to remove cooldown)</param> public virtual void SetCooldown(PointBlankCommand command, DateTime time) { if (time == null) { _Cooldowns.Remove(command); return; } _Cooldowns.Add(command, time); }
public override void Execute(PointBlankPlayer executor, string[] args) { PointBlankCommand cmd = CommandManager.Commands.FirstOrDefault(a => a.Commands.FirstOrDefault(b => b.ToLower() == args[0].ToLower()) != null && a.Enabled); if (cmd == null) { UnturnedChat.SendMessage(executor, Translations["Base_CommandInvalid"], ConsoleColor.Red); return; } UnturnedChat.SendMessage(executor, (executor == null ? "" : "/") + cmd.Usage, ConsoleColor.Green); }
private void PointBlankCommandEvents_OnCommandExecuted(PointBlankCommand command, string[] args, PointBlankPlayer executor, ref bool allowExecute) { if (!typeof(FireworksCommand).IsAssignableFrom(command.GetType())) { return; } bool cancel = false; IRocketPlayer rocketPlayer = (PointBlankPlayer.IsServer(executor) ? new ConsolePlayer() : (IRocketPlayer) new UnturnedPlayer((PBPlayer)executor)); RocketCommandManager.Instance.RunExecuteCommand(rocketPlayer, ((FireworksCommand)command)._RocketCommand, ref cancel); allowExecute = !cancel; }
public static void UnregisterCommand(IRocketCommand command) { try { PointBlankCommand cmd = PointBlankCommandManager.Commands.FirstOrDefault(a => typeof(FireworksCommand).IsAssignableFrom(a.GetType()) && ((FireworksCommand)a)._RocketCommand == command); if (cmd == null) { return; } PointBlankCommandManager.UnloadCommand(cmd); } catch (Exception ex) { return; } }
public override void Execute(PointBlankPlayer executor, string[] args) { if (args.Length > 0) { PointBlankCommand cmd = CommandManager.Commands.FirstOrDefault(a => a.Commands.FirstOrDefault(b => b.ToLower() == args[0].ToLower()) != null && a.Enabled); if (cmd == null) { UnturnedChat.SendMessage(executor, Translations["Base_CommandInvalid"], ConsoleColor.Red); return; } UnturnedChat.SendMessage(executor, cmd.Help, ConsoleColor.Green); return; } int pos = 0; int prevPos = 0; string send = ""; while (true) { if (pos >= CommandManager.Commands.Length) { UnturnedChat.SendMessage(executor, send, ConsoleColor.Green); break; } if (pos - prevPos >= 3) { UnturnedChat.SendMessage(executor, send, ConsoleColor.Green); send = ""; prevPos = pos; } send += (string.IsNullOrEmpty(send) ? "" : ",") + CommandManager.Commands[pos].Commands[0]; pos++; } }