ScriptBlock
Welcome on the ScriptBlock v0.8.0 project page !
ScriptBlock is a CraftBukkit plugin inspired by the great Fluff's plugin Annotate and CommandSign !
It allow you to bind text, commands, or MANY commands to any block (levers, buttons, doors, Signs, etc...), triggered by clicking or walking on it !
Here is a Tutorial video made by Kunoichi Kitteh ! Thanks to here !
LiekMudkipzz also made a cool video of ScriptBlock ! It's a bit outdated, some commands have changed ! but Thanks to him too !
Here is the link !
Regarding Donators
Those who help me maintain motivation for Keeping this project updated !
I really Thanks them !
S4h4rk
StefanPelskamp
Slipswhitley
About 0.8.0...
Lot of change in the codes, in the commands, to make possible and easily, for other devs, the add of Options, and the use of ScriptBlock Options for other Minecraft Event than walk , and interact trigger ! ( ask for sources, and for help if you want to do one ! )
Also a New BIG and FULLY customizable permission system. See changes log for more informations !
Features
- Adding any text, command, or set of commands to a block (levers, buttons, doors, signs, etc...) with Various Options !
- Read any Text and execute any commands or command Script. that has been bound to a block with right or left-click !
- ScriptBlock use the Vault API ! You need to download it even if you don't want to use the Economy and Permissions features !
Download Vault - Support all permissions plugins supported by Vault or if you don't like permissions, it can be Op based only !
- Most of Economy plugins support (if Vault support it, ScriptBlock support it too ! ).
- MultiWorld Support.
- Player can use a bound command, even if he usually doesn't have the permission to use it, with the help of the @bypass prefix.
- You can edit scripts with a simple Text editor like notepad
++
. - Look at Changes Logs for more Infos !
Commands
Trigger:
- /sbinteract
is used for "on block interaction triggered" scripts ! - /sbwalk
is used for "on block walk triggered" scripts !
After you've choosen the kind of trigger you want , you need to choose the type of commands you want to send to ScriptBlock !
Types:
- create
Use this command to create a script and follow displayed informations ! - add
Use this command to add a command, or a script to an already created one, or to an already bound one. - remove
Use this command to remove a script from a block. - view
Use this command to view the script you've bound to a block ! - reload
This command let you reload the save file, to refresh the scripts bound on blocks !
Usefull when editing script in the BlocksData.yml save file while server is still running !
exemples:"/sbinteract create" , "/sbwalk create", "/sbinteract remove", "/sbwalk remove", etc...
Options
There is a lot of cool options you can use for your scripts ! You MUST at least use one option with your script to make it work !
Options List
Permissions
ScriptBlock Permissions system have a lot of possible customisation. You can use simple permissions nodes if you are admin and want full power, without taking the time to set up all the permissions for your players. Or you can take the time, and fully customize the way you want your players to use ScriptBlock.
Upcoming Features
- Per Player Cooldown.
Economy plugins support- Copy/paste Scripts. (low priority)
Add a Config file to edit Script that has been bound.More Permission NodesA command that let you know what commands you've bound to a block.- WorldGuard / Residence support. (low priority)
- Custom messages
- Chat color
I'd suggest per-user cooldowns
@HalestormXV
I have something similar in mind ! but I can't work on scriptblock for now. But I will try to add it !
Long time follower. I was on this since it was released and I think I commented before also. But here is a new comment. This is an amazing script. It does so much and is so useful. Just wanted to say great job, thank you, and keep up the awesome work.
One thing I would suggest is that you add in a script code to check if they player has the permission node and if they don't continue with the script. If they do then exit the script. Much like you did with this one:
======================
@perm:"permissionNode"
when the script reach this line, It check if the player have the specified permission, and if not... it stop the script ! I recommand to use it at the beginning of your script .
Permission Tag: "permission"
======================
Maybe you could add:
@noPerm:"permissionNode
when the script reach this line, It check if the player have the specified permission, and if not... it continues the script ! I recommand to use it at the beginning of your script .
Permission Tag: "permission"
======================
For all I know this might already be possible and i dont know how to do it, but just sending some ideas out there. Keep up the good work!!
@dragonfire967
There is a small possibility that your issue is coming from the fact that you use the command in the spawn protected area. (it's wrong.)
Anyway, I will try it with the last version of craftbukkit... I'll send you returns on my tests.
EDIT: I don't have any issue with the latest version of craftbukkit. Maybe your scriptblock is corrupt, so... you should try this :
if it's still doesn't working you should open a ticket and send me the most details as you on how you've got this chat error.
I tried both by themselves, same error. I have not tried other options yet. My main reason for testing this plugin was to create signs at spawn a player could go and purchase a class for themselves. Most of my other actions / mechanics are handled by craftbook / Towny.
@dragonfire967
It looks like that you didn't make any syntax error. ( but the $cost option should be in first position to cancel the script if the player do not have enough money. )
Does it works only with the "@groupADD:Farmer" and only with the "$cost:750" ? examples :
"/sbinteract create @groupADD:Farmer"
or
"/sbinteract create $cost:750"
if not, Does it works for others options ?
Hey, I'm using MCMMO, Towny, and Vault, and want to make a sign to allow players that hit it to be able to pay say.... $750 in-game money to put them into a class group, such as farmer, builder, etc. When I try to run the following command with the sign highlighted on screen (without the quotes):
"/sbinteract create [@groupADD:Farmer][$cost:750]"
Every time, I get same error:
"An internal error occurred while attempting to perform this command"
I am using Craftbukkit 1.2.5-R4.0. Am I doing something wrong, or is this just not yet compatible with 4.0, only 3.0 and before?
@Shereis
Very true, but to remedy this, I often bound @player Lolnope. to the block behind the switch :D
Then, please make them deactivatable :)
I'm using this plugin for entry system of PvP.
So there are about 30 players using script at once XD
@USQUARE
you can disable option message in the config, but not block trigger message... but I can make them deactivatable in a futur update if it's spamming your console too much...
Please tell me how to disable console messages?
Now that I've made the API, I need some Devs to code some options, to make ScriptBlock more polyvalent. if you're interested send me a PM or leave a comment. Note that if you do some, I will add a link to your option-plugin page !
@UltrafaceGuy
well, the previous block protection feature was bad because, if you bind a script to a lever and somebody break the block behind the lever, the lever will fall. so I need to recode a better one. I'm still thinking about it. but it's not my priority.
Hey, whatever happened to the block protection for scriptblocks? I have some in destructible areas that people break by mistake, I kinda miss that single block protection! :D
How would this be used with worldedit if, say, I wanted normal players to be able to reset a spleef area. This isn't really a question for your plugin in particular, but I'm sure it's been done many times before. How would I make them select a certain coordinate as the first position, another coordinate as the second, and then set snow? Edit: Nevermind, I got it :D
@Shereis
You... Rock! Thanks :)
@ihasamoose
I know big changes are a pain for users, but some times, I do not have the choice if you want ScriptBlock to have more features. And it will be like that while scriptblock is considered as a beta. Converting old version scripts is easy with notepad + + ... I guess your signs was scripted blocks without any option ?
@Bobacadodl
No of course there is no harm... but Since I've fully recoded ScriptBlock (v0.7.0), I did not received any OP issues report... I guess, if actual version of ScriptBlock was easily hackable I would have had some returns about it ! I just spend a lot of time on ScriptBlock and only for the small community who use it. I'm very concerned about security. So adding a @console won't be a problem for me, it's just that I don't want ScriptBlock users to be scared of using it because of the old versions issues...
About the coding, I just said that because, I won't release a new version soon, and having a community coding more options would be great to extends scriptblock features faster !
@TrinaryAtom
I will make a tutorial when I'll have the time.... but quickly, to add option , all you need to do is:
Here is how To Register your option:
Nevermind. Update broke every single one of my signs.. *le sigh*
@Shereis
I will try to code a @console option myself, I'll let you know if I have any issues. (not too great with this stuff) I was just extremely cautious because a player on my server told me that a server he played on was hacked by griefers who permanently opped themselves using script block. Not sure if this was BS, but theres no harm in being overly cautious.
@Shereis
Oh? I know how to code in some areas pretty decently. (just haven't messed with Plugins for Bukkit specifically). So, Can you provide an example of adding a 'custom code' on your ScriptBlock. I am unsure of where to put it, the format, and how to incorporate your code into it.
Course, i'm being general when i say this, because i am completely unsure of what or where your specifying. Maybe add a small example and/or tutorial page?
@TrinaryAtom
You should be able to handle this type of case with the "if else" option... but if I have the time I'll add it.
@Bobacadodl
I'll see... anyway, if you know how to code a bit, adding a basic option to SB is now easy ! You should try it. Ask if you need the sources and some help. Also, I don't think there is a chance of scriptblock to be hacked with the actual code. before it was because of the multi-threading, but now, unless I've forgotten something, it can't.