cmdBook
cmdBook
About:
cmdBook is a plugin that allows you to execute and store multiple commands. You just have to put the commands (or chat text) in a book, and use a command to make it a cmdbook. Whenever you left click with that book, your commands will be executed. You can specify variables so that you can replace them with (F.ex : your player name , the player you are looking at,..) and you can add javascript to it
Version Information
Latest Version: 1.4.5
Release date: 15/12/2013
Upcomming Features
- Basic Logic (If statements , for loops , custom variables)
- Devide this page into other pages (permissions, configuration , examples ,..) (planned 1.4.0)
- Compatibility with Skript and CmdHelper to use WITH a book
- A youtube tutorial (planned 1.4.x)
- Config editor ingame (planned 1.5.0)
Compatibility
cmdBook works with most book related plugins.
Contribute
Do you like cmdBook ant you want to help me expand it even further? Any donation will be welcome (Even if it is just enough so I can buy a cup of coffee while programming) The Source code is also available if you have remarks about the code. NOTE: You may not copy any of the code without asking me
Commands
# NOTE: /cb OR /cbook can be used # Create a cmdBook with the written book in your hand /cb create # Edit/Add commands in a cmdBook (Other books are blocked) /cb edit # List the commands inside a cmdBook /cb info # Show plugin information /cb about # Make a normal book private /cb private # Make a normal book public /cb public # Reload the configuration /cb reload # Convert deprecated variables /cb convert # Show ingame variables and info /cb variables
Permissions
cmdBook uses permissions to define who may create/use a cmdbook.
Create a cmdBook
Ok, to create a cmdBook you need a few things:
- You have to get the rights to make one
- You have to get the rights to use on (not necessarily if you only intend to make it)
- You need a Writable book
- Start you book with: [cmdbook]
- Create a new line and you can type your first command F.ex /broadcast Hello World!
- Split your commands with the character: | OR split commands by starting a new page
- Create a second command , third ,....
- Sign your book
- Type the command /cb create while holding the book in your hand
- Now left click the book to perform the commands
Variables
You can define several variables to replace
# Run every command as console: @runconsole # TIP: You might want to use $chat[..] if you want to let the player use a command without op perm. # Hide all cmdBook messages # This will hide thinigs like " Command performed" or " waiting.." @hidemessages # This will be replaced with the name of the player that uses the book $player # This will be replaced with the player you are clicking on $targetplayer # This will give you an integer with your health $health # This will give you a decimal with your xp $xp # This will give you a decimal with your target's xp $targetxp # This will give you an integer with your level $lvl # This will give you an decimal with your target's level $targetlvl # This allows you to see your hunger as integer (0-10) $hunger # This allows you to see your target's hunger as integer (0-10) $targethunger # This will give you your killers name $killer # This will give you the name of your target's killer $targetkiller # This will give your X position $xpos # This will give your Y position $ypos # This will give the xpos of the block you look at $losx # This will give the ypos of the block you look at $losy # This will give the zpos of the block you look at $losz # Input - A very handy variable: # The input variable will prompt the player before all commands are executed # The data the player enters in chat after getting prompted (without any use of commands, just plain text) # will replace the input variable $input -> When using it in this format , it will just ask for an input $input[Question here] -> put [text] to customize your question # When using @input instead of $input, it will input the user at the beginning of the book # the $input will only input right before the command will be executed # Delay - variable is $wait[int] replace int with a number # This will cause the command execution to Pause (in ms) $wait[int] # Execute javascript, create a variable 'output' this variable will replace the script[**] $script[javascript here] $script[var dNow = new Date();var output = 'Today is ' + dNow.getDate();] # Make a simple calculation $calc[1+2] $calc[$losy+1] # Send a private message to the player $msg[messagehere] # Broadcast a message $broadcast[HEllo There!] # Send player chat $chat[..] # Only required when using @runconsole # MAKE SURE TO USE /cb variables for all **40** variables
Examples
Ex1:
[cmdbook] /give $player cookie 1| I got a cookie :D|
Ex2:
[cmdbook] $targetplayer You have been caught griefing!| /ban $targetplayer Griefing Visual proof| /resident delete $targetplayer|
Ex3:
[cmdbook] /lb lookup player $targetplayer block 56 area 100 time 30 minutes|
Ex4:
PAGE1: [cmdbook] This is my first page| HELLOOWW PAGE2: This is my second command| /give $player cookie 10| :D PAGE3: The End
Ex5:
[cmdbook] /ban $targetplayer $input[Why ban him?]| /lb rollback player $targetplayer time $input[How many days you want to rollback him?] days| $wait[2000]| /yes| $wait[10000]| /no
Ex6:
# permissions needed: - cmdbook.variable.runconsole - cmdbook.use [cmdbook] @runconsole /give $player cookie 1
Ex7:
Will act like WorldEdit compass the calc adds 1 block to the y axis, so you dont teleport IN the block [cmdbook] /teleport $losx calc($losy+1) $losz
Updating
This plugin utilizes an external version checking system, which means that the plugin makes a connection to curseforge.com and the following may occur:
The plugins version checked against approved files Downloading of the plugin files Launching of the plugin files downloaded You can disable the check and/or automated download via the configuration of this plugin.
Metrics
This plugin utilizes Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
A unique identifier The server's version of Java Whether the server is in offline or online mode The plugin's version The server's version The OS version/name and architecture The core count for the CPU The number of players online The Metrics version You can disable the stat collection via /plugins/PluginMetrics/config.yml if you wish.
Changes
Version 1.4.5
Status: Optional
- Moved /cb to an alias command of /cbook. You can now use /cb OR /cbook but /cb will be overridden by other plugins
- Fixed some small bugs
Version 1.4.3
Status: Higly Recommended
- Added @name[namehere] (put anywhere in your book) to name books
- Added permissions based on name "cmdbook.book.namehere" for individual permissions per book
- Fixed several bugs with "You do not have permissions!" messages
- Updated to 1.6.4
Click here to see all version changes
Could you make, Default people can use console command? I need it!. for example, multiworld= /mw move $player world /mw move $player world_neather
Default couldn't use this command and commandbook!
@iComet
There is a feature in the plugin that does this. Check the $uses[1] and $destroywhenused
EDIT: The thing it does: Whenever you use the book, the integer between $uses[.] decreases When it is 0. The book cannot be executed
If you use the $destroywhenused together with the uses. It will destroy the book
Can you make it so the books are single use only? In the config maybe?
nvm i got it
last thing is there a option to make it where you lose the book when you use it?
@Mergedflame
Why Not Make It yourself :D Try using $wait[5000]| before the tp command
Could you make it where there is a delay in the teleportation for example 5 seconds till you teleport?
You should add customization messages in the config instead of preset ones ie: "cmdbook: commands have been performed" You should also add a 'destroy on use option' in the config. Great plugin, just needs some more features in the config.
Ok I've set my goals for the next release
- Option to change alias of command
- Custom variables that can store strings (text)
- Variables involving known economy data (money, targetplayer money ,..)
@Maximvdw
Max, Yes CrafBook does use it's name "/crafbook" but also has alias' "/cb". I can always take the alias of "/cb" out of the plugin.yml file of CraftBook, but perfer not to. Any chance to make your commands and aliase more distinct, like "/cmb" or something.
@zrocweb
Are you sure they conflict? As far as I know craftbook uses /craftbook
@GreenySv
You are right ;) That is something I should add. Variables will come in the next release
gr, Maxim
Hi there,
great plugin, but i'm just missing some functionality (or i didnt found out how to do that).
Is there any posibility to preform these commands with one input ?
Thanks a lot.
Greetings GreenySv
Can the alias' be changed? I used CraftBook for enhanced Physics and Mechanisms, etc.. and CraftBooks alias' are CB as well and I know they will conflict
Preparing for 1.5 Tomorrow 1.5 will be available. I don't think that Bukkit will have a dev release ready this week, but I just want to say If they have, I wont be able to update cmdBook until next week ;) gr, Maxim
@mc2013cm
Thank you for reporting that. But I also think I haven't added ZPOS yet?
It seems "$zpos" has no permission node, while "$xpos" and "$ypos" has.
@Snowybearr
1) Yes you can either configure it so that they cant read them, or that the commands inside the book get executed when they try to read (read is still blocked) 2) Nether portals are not yet supported yet
gr, Maxim
Hey, just checking back here, been a week or two since we last talked. Have two questions, firstly, have you made an option where people can't actually open the book yet, it just preforms the commands? And my second question is, I noticed you added some pressure plate interaction, was wondering if you could do that with nether portals as well?
@boozaa
Ok 1.3.6 has been approved and includes the @uses and @destroywhenused
@zokuman
Ok 1.3.6 has been approved and includes the @uses and @destroywhenused However the cooldown hasn't been added yet
@everyone Forgot to mention one of the cool new (but stupid) things: $effect[..] f.ex $effect[ZOMBIE_DESTROY_DOOR] -> Looks like sniper gun :D