Now FREE Join my Discord server if you want fast support Main purpose of this plugin is to limit command usage and/or add cool thing to your commands!
All configuration options should be self-explanatory. If you need help, ask me.
I'm open to all suggestions and feature requests, so do not hesitate to post a comment on discussion page!
Dependencies:
Vault - for economy and permissions support
Economy plugin - for economy features
If you use Factions, you must set ""allowNoSlashCommand": true" to "false"! Or users will be able to use "f home" without "/" with no warmup or cooldown!
All features are fully configurable and can be enabled or disabled!
All features can be configured globally or per-command!
(new features are added to top of this list)
PlayerPoints prices!
Command confirmations
Custom permissions
Custom permission needed messages
Shared limits
Shared cooldowns
Advanced aliases
Warmups
Canceling warmups on various events
Block container access during warmups
Potion effects during warmups
Cooldowns
Prices (money, item, experience)
Requirements (experience levels)
Limits
Timed limit resets
Messages
Grouping
UUIDs
Command signs
Localization
Block /<pluginname>:<command> syntax
Easy configuration
Warmups: Warmups are timers that are run before command is executed. Player has to wait configured time period before his command takes effect.
Canceling warmups on various events: Active warmups can be canceled on player’s move, sneak, sprint, game mode change or by taking damage.
Block container access during warmups: When player has active warmup, he will not be able to access any containers. This was done on request, because of some kind of creative game mode exploiting.
Potion effects during warmups: Players can be affected by any number of potion effects during warmups. Potion effects affects player for same time as warmup time.
Cooldowns: Cooldowns are timers that are run after executing command. Player has to wait for configured amount of time before being able to use that specific command again.
This plugin also offers some cool stuff! You are able to reset (clear, stop) all players’ cooldowns on death or on contrary start (activate) them on death!
Shared cooldowns: One command can start cooldown of other commands. This is done per-command so you can create some crazy things like “/spawn” command starting cooldown of “/home” and “/warp” but at the same time “/home” only starting cooldown of “/warp” and not “/spawn”.
Prices (money, item, experience, PlayerPoints): Every command can have set price of money, item, experience and/or PlayerPoints. You can use multiple types of prices for each command and player has to pay all of them. Command can cost $50 and 5 diamonds and 5 experience levels or just $10, it’s up to you.
Requirements (experience levels): Every command can have experience level requirement. This means that command will only be usable by player when he is of set level. Command can be set to require level 30 and player has to be this or higher level to be able to use the command.
Limits: Every command can be limited (or blocked by zero limit) by number of uses. Once player reaches limit, he cannot use that command any more. You can configure to reset this limit on players’ death and create per-life commands like “/repair” once per life!
Shared limits: Commands can share same limits or trigger limits of other commands. So player can have access to /day and /night, but can only use those commands 5 time combined, so player will have to choose which one and how many time he will use them.
Timed limit resets: Limits can be globally (per command) or locally (per player and command) reset in set intervals. Global reset will reset limits of all players for specified command after set interval, while local reset will reset limits of one player for specified command after set interval after he last used limited command. You can now limit your donors and/or players to use certain command only some times a week! E.g. command "/tnt" 10 times a week.
Custom permissions Custom permissions can be set basically for any command from any other (or even this) plugin. Giving you ultimate control over all commands on your server.
Custom permission needed messages When command is denied by Custom permission, you can send any message to player notifying him why he can't use that command or how to access or buy it.
Messages: This allows you to send custom message whenever player uses command associated with that message. For example send player “Welcome home, buddy!” message when he uses “/home”.
Grouping: All commands can be grouped to “as you wish many” groups with separate cooldowns/prices/etc. allowing you to set different prices for your players and donors! Only thing you have to do is assign that config group to your permission group by “booscooldowns.<groupname>” permission.
UUIDs: Plugin stores all limits and cooldowns via UUIDs, so no more cooldown/limit resets by changing name.
Command signs: This allows you to create signs which will run command written on them on right click. Nothing more, nothing else. Simple.
Localization: All messages in this plugin are 100% configurable so you can translate, edit… whatever you want.
Aliases: Advanced command aliasing. Player uses “/home”, but “/warp home” is used instead. Simple enough eh? Dynamic command arguments are supported!
$1
first command argument
$2
second command argument
$*
all remaining command arguments
$player
player who used command
$world
world of player who used command
E.g. /tp to *: /teleport $player $1 $2
If player called Stan uses command "/tp to Bruce" it will change to "/teleport Stan to Bruce"
Easy configuration: Configuration is easy, because you can use time units like seconds, minutes, hours, days, weeks or even months!
/bcd reload
Reloads config.yml
booscooldowns.reload
/bcd clearcooldowns <player> [command]
Clears all active cooldowns (or specified command) of player
booscooldowns.clearcooldowns
/bcd clearuses <player> [command]
Clears all command (or specified command) limits of player
booscooldowns.clearuses
/bcd clearwarmups <player> [command]
Clears all active warmups (or specified command) of player
booscooldowns.clearwarmups
/bcd limits
Shows how many time you can still use limited commands
booscooldowns.list.limits
/bcd set <category> <command> <value> [group]
Sets something to config.yml (see below)
booscooldowns.set
/bcd startglobalreset
Starts all configured global limit reset timers
You have to use this just once, to start timers on desired time (e.g. sunday midnight)
booscooldowns.globalreset
<category> can be cooldown, warmup, price, itemcost, xpcost, limit, message
<command> can be * or any command starting with / (to add command with parameters, replace spaces with _ like /home_set)
<value> can be number (for warmup, cooldown, price, xpcost, limit), ITEM,number (for itemcost), string for message (cannot contain spaces right now, edit config.yml instead)
[group] can be any group, if not specified, will be set for default group
Code (Text):
permissions:
booscooldowns.syntaxblockerexception:
description: Player wont be affected by syntax blocker (player will be able to use command format /pluginname:command).
default: false
booscooldowns.exception:
description: Player wont be affected by plugin at all (no warmups, no cooldowns, no prices, no limits, no aliases).
default: false
booscooldowns.norestriction:
description: Player wont be affected by restrictions but will be affected by aliases(no warmups, no cooldowns, no prices, no limits).
default: false
children:
booscooldowns.noprice: true
booscooldowns.nocooldown: true
booscooldowns.nowarmup: true
booscooldowns.nolimit: true
booscooldowns.noitemcost: true
booscooldowns.noxpcost: true
booscooldowns.nocancel.move:
description: Players warmups will not be canceled by moving, even if it's turned on.
default: false
booscooldowns.nocancel.damage:
description: Players warmups will not be canceled by damage, even if it's turned on.
default: false
booscooldowns.nocancel.sneak:
description: Players warmups will not be canceled by sneaking, even if it's turned on.
default: false
booscooldowns.nocancel.sprint:
description: Players warmups will not be canceled by sprinting, even if it's turned on.
default: false
booscooldowns.nocancel.gamemodechange:
description: Players warmups will not be canceled by changing gamemode, even if it's turned on.
default: false
booscooldowns.dontblock.interact:
description: Players interaction will not be blocked during warmup, even if it's turned on.
default: false
booscooldowns.noprice:
description: Players commands will always be free of charge.
default: false
booscooldowns.noprice./command:
description: Command "/command" will not be affected by price for users with this permission.
default: false
booscooldowns.noitemcost:
description: Players commands will always be free of charge (items).
default: false
booscooldowns.noitemcost./command:
description: Command "/command" will not be affected by item cost for users with this permission.
default: false
booscooldowns.noxpcost:
description: Players commands will always be free of charge (XP).
default: false
booscooldowns.noxpcost./command:
description: Command "/command" will not be affected by xp cost for users with this permission.
default: false
booscooldowns.noplayerpoints:
description: Players commands will always be free of charge (PlayerPoints).
default: false
booscooldowns.noplayerpoints./command:
description: Command "/command" will not be affected by price for users with this permission (PlayerPoints).
default: false
booscooldowns.nocooldown:
description: Player wont be affected by cooldowns.
default: false
booscooldowns.nocooldown./command:
description: Command "/command" will not be affected by cooldown for users with this permission.
default: false
booscooldowns.nowarmup:
description: Player wont be affected by warmups.
default: false
booscooldowns.nowarmup./command:
description: Command "/command" will not be affected by warmup for users with this permission.
default: false
booscooldowns.nolimit:
description: Player wont be affected by limiting.
default: false
booscooldowns.start.cooldowns.death.exception:
description: Player's cooldowns wont be started on death.
default: false
booscooldowns.nolimit./command:
description: Command "/command" will not be affected by limits for users with this permission.
default: false
booscooldowns.reload:
description: Player can use "/booscooldowns reload" to reload config file.
default: op
booscooldowns.clear.uses.death:
description: Players uses (limit-uses=how many times playr can still use command) are cleared on death (must be enabled in config file too!).
default: false
booscooldowns.clear.cooldowns.death:
description: Players cooldowns are cleared on death (must be enabled in config file too!).
default: false
booscooldowns.list.limits:
description: Player can use "/booscooldowns limits" to see limits and how many times he can still use commands.
default: true
booscooldowns.set:
description: Users with this can use "/booscooldowns set" command.
default: op
booscooldowns.signs.player.use:
description: Player can use boosCooldowns signs (marked as player on second line).
default: false
booscooldowns.signs.server.use:
description: Player can use boosCooldowns signs (marked as server on second line).
default: false
booscooldowns.signs.player.place:
description: Player can place/create boosCooldowns signs (marked as player on second line).
default: false
booscooldowns.signs.server.place:
description: Player can place/create boosCooldowns signs (marked as server on second line). !!WARNING!! With this permission, player can create sign with commands that are run as if used from console!
default: false
Code (Text):
options:
options:
#should warmups be enabled?
warmups_enabled: true
#should cooldowns be enabled?
cooldowns_enabled: true
#should prices be enabled?
prices_enabled: true
#should item costs be enabled?
item_cost_enabled: true
#should xp costs be enabled?
xp_cost_enabled: true
#should player points prices be enabled?
player_points_prices_enabled: true
#should limits be enabled?
limits_enabled: true
#do not ever use this if you like your server
auto_save_enabled_CAN_CAUSE_BIG_LAGS: false
#if you have enabled the forbidden option above, this is how often in minutes will your server lag
save_interval_in_minutes: 15
#should warmups be canceled when player takes damage?
cancel_warmup_on_damage: false
#should warmups be canceled when player moves?
cancel_warmup_on_move: false
#should warmups be canceled when player toggles sneak?
cancel_warmup_on_sneak: false
#should warmups be canceled when player starts sprinting?
cancel_warmup_on_sprint: false
#should warmups be canceled when player changes gamemode?
cancel_warmup_on_gamemode_change: false
#should potion effects be cancelled when warmups are cancelled?
cancel_potions_on_warmup_cancel: false
#should container access be disable during warmups?
block_interact_during_warmup: false
#should cooldowns be cleared on server restart?
clear_on_restart: false
#should limits (counts of how many times player used limited command) be cleared on server restart?
clear_uses_on_death: false
#should cooldowns be cleared on players death?
clear_cooldowns_on_death: false
#should cooldowns be started on players death?
start_cooldowns_on_death: false
#should command usages be logged to console? (not needed as spigot logs it already)
command_logging: false
#should commands signs be enabled?
command_signs: false
#should syntax blocker (blocks usage of commands with syntax /pluginname:command) be enabled?
syntax_blocker_enabled: true
#should command confirmations (when command has price, xp price or itemcost) be enabled?
command_confirmation: true
units:
#time unit for seconds that will be shown in messages
seconds: seconds
#time unit for minutes that will be shown in messages
minutes: minutes
#time unit for hours that will be shown in messages
hours: hours
messages:
warmup_cancelled_by_damage: '&6Warm-ups have been cancelled due to receiving damage.&f'
warmup_cancelled_by_move: '&6Warm-ups have been cancelled due to moving.&f'
warmup_cancelled_by_sprint: '&6Warm-ups have been cancelled due to sprinting.&f'
warmup_cancelled_by_sneak: '&6Warm-ups have been cancelled due to sneaking.&f'
warmup_cancelled_by_gamemode_change: '&6Warm-ups have been cancelled due to changing
gamemode.&f'
cooling_down: '&6Wait&e &seconds& &unit&&6 before you can use command&e &command&
&6again.&f'
warming_up: '&6Wait&e &seconds& &unit&&6 before command&e &command& &6has warmed
up.&f'
warmup_already_started: '&6Warm-Up process for&e &command& &6has already started.&f'
paid_error: '&6An error has occured:&e %s'
insufficient_funds: '&6You have insufficient funds!&e &command& &6costs &e%s &6but
you only have &e%s'
paid_for_command: '&6Price of&e &command& &6was&e %s &6and you now have&e %s'
paid_items_for_command: '&6Price of&e &command& &6was &e%s'
paid_xp_for_command: '&6Price of&e &command& &6was &e%s levels'
paid_player_points_for_command: '&6Price of&e &command& &6was &e%s PlayerPoints &6and you now have&e %s PlayerPoints'
insufficient_items: '&6You have not enough items!&e &command& &6needs &e%s'
insufficient_xp: '&6You have not enough XP!&e &command& &6needs &e%s'
insufficient_xp_requirement: '&6Your level is too low to use this!&e &command& &6needs &e%s'
insufficient_player_points: '&6You have not enough PlayerPoints!&e &command& &6needs &e%s'
limit_achieved: '&6You cannot use this command anymore!&f'
limit_reset: '&6Wait&e &seconds& &unit&&6 before your limit for command&e &command&
&6is reset.&f'
limit_reset_now: '&6Reseting limits for command&e &command& &6now!&f'
limit_list: '&6Limit for command &e&command&&6 is &e&limit&&6. You can still use
it &e×&&6 times.&f'
interact_blocked_during_warmup: '&6You can''t do this when command is warming-up!&f'
cannot_create_sign: '&6You are not allowed to create this kind of signs!&f'
cannot_use_sign: '&6You are not allowed to use this sign!&f'
invalid_command_syntax: '&6You are not allowed to use command syntax /<pluginname>:<command>!'
confirmation_message: '&6Would you like to use command&e &command& &6?'
confirmation_price_of_command: '&6its price is&e &price& &6and you now have &e&balance&'
confirmation_item_price_of_command: '&6its price is&e &itemprice& &itemname&'
confirmation_limit_of_command: '&6it is limited to&e &limit& &6uses and you can still use it&e &uses& &6times'
confirmation_xp_price_of_command: '&6its price is&e &xpprice& experience levels'
confirmation_player_points_price_of_command: '&6its price is&e &ppprice& PlayerPoints &6and you now have &e&ppbalance& PlayerPoints'
confirmation_confirm_command_execution: 'Yes'
confirmation_confirm_command_execution_hint: 'Click to confirm'
confirmation_cancel_command_execution: 'No'
confirmation_cancel_command_execution_hint: 'Click to cancel'
confirmation_command_cancelled: '&6Execution of command&e &command& &6was cancelled'
confirmation_toggle_disable: 'Confirmation messages are now disabled for you!'
confirmation_toggle_enable: 'Confirmation messages are now enabled for you!'
commands:
#plugin is disabled for OPs so keep that in mind while testing!
groups:
#this group will work for all players without any booscooldowns permission
default:
/playerpointstest:
#PlayerPoints required to use this command
playerpoints: 5
/permissionstest:
#permission required to use this command
permission: "nice.permission"
#message that is sent to players who does not have above permission and attepts to use this command
denied_message: '&cYou lack required permissions to use this command!'
/day_command:
#limited to 5 uses per player
limit: 5
#shared limit with /night_command, when player uses this command it will also reduce players limit for all shared_limit commands
shared_limit:
- /night_command
/night_command:
#limited to 5 uses but not shared, so when used it will only reduce players limit for itself
limit: 5
#this will only put cooldown on exactly /command parameter
/command parameter:
cooldown: 2 hours
#this will put cooldown on /commandwithparameters with parameters only eg.:
# /commandwithparameters home
# /commandwithparameters warp spawn hell
# this will not be affected: /commandwithparameters
/commandwithparameters *:
cooldown: 5 seconds
#this will put cooldown on /commandnewparams and all its parameters and continuations eg.:
# /commandnewparams
# /commandnewparams home
# /commandnewparams warp spawn hell
# /commandnewparamsprettylong
# /commandnewparamsprettylong and cool
/commandnewparams*:
cooldown: 5 hours
/anothercommand:
cooldown: 2 minute
/yetanothercommand:
#5 second delay between sending the command to chat and actually executing it
warmup: 5
#price of 10 money
price: 10.0
limit: 5
#potion effect and its strength and its duration (duration is optional and defaults to warmup duration) that will affect player for the warmup time (5 seconds here) has to be one from this list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
potion:
- WEAKNESS,3
- SLOW,5,10
/test:
#message that is sent to player when he uses this command
message: You just used /test!
limit: 1
/shared_example:
cooldown: 6 hours
#same as shared_limit except for cooldown, will start cooldown on itself and all commands listed below shared_cooldown
shared_cooldown:
- /this_commands_cooldown_will_also_be_started
- /another_one
/this_commands_cooldown_will_also_be_started:
cooldown: 1 week
/another_one:
cooldown: 1 month
/per_time_interval_limit:
limit: 1
#limit will be automatically cleared after set time (you can set something like 5 uses per hour and so)
limit_reset_delay: 120
/original *:
cooldown: 5
warmup: 1
limit: 10
/testitemcommand:
#price in items required to use this command
itemcost:
#item type (material) has to be one from this list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
item: STONE
#number of items required to use command
count: 5
#name of required item
name: "Super Stone"
#lore of required item (any number of lines)
lore:
- "first line of lore"
- "second line of lore"
#enchants of required item and enchant level enchant name has to be one from this list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
enchants:
- ARROW_DAMAGE,1
- ARROW_FIRE,1
/testitemcommand2:
#item cost without enchants
itemcost:
item: STONE
count: 5
name: "Super"
lore:
- "1"
- "2"
/testitemcommand3:
#item cost without lore
itemcost:
item: STONE
count: 5
name: "Super"
enchants:
- DAMAGE_ARTHROPODS,5
/testitemcommand4:
#item cost without name
itemcost:
item: STONE
count: 5
lore:
- "1"
- "2"
enchants:
- DAMAGE_ARTHROPODS,5
/testitemcommand5:
#item cost without enchants, lore and name
itemcost:
item: STONE
count: 5
/testxpcommand:
#this command costs 5 experience levels to be used
xpcost: 5
/testxpreq:
#this command needs player to have 30 experience levels to be used, but does not take experience levels from player
xprequirement: 30
/cancelledComandWithMessage:
message: "This command will be cancelled and will not return 'Invalid command' message to player"
cancel_command: true
#this group will only work for players that have booscooldowns.vip permission (player can only have one group at a time and no inheritance is possible atm
vip:
/command *:
warmup: 5
#players can use /newcommand and it will execute /originalcommand instead
#/ja * works for parameters and executes /me firstParameter secondParameter remainingParameters worldPlayerIsIn playerName
aliases:
/newcommand: /originalcommand
/ja *: /me $1 $2 $* $world $player
#this will clear limits of command for all players at the same time
#this delay can be started by /bcd startglobalreset
#delay is calculated from the time of command usage (using command on midnight with 1 day delay will reset limits every midnight)
#if the server is offline during limit reset time, it will reset limits as soon as the server starts again
#to cancel delays, delete command from config below and run the command /bcd startglobalreset
global:
/test:
limit_reset_delay: 1 hour
/original *:
limit_reset_delay: 360 minutes