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
@Shereis
Ok the issue regarding the syntax is indeed fixed. Delay seems fixed either.
As regarding the multi-group reported issue don't worry the @perm in conjunction with some specific node fixes the issue for me ... I don't really use the "let user/owner" changes sb scripts. Should they make mistake the yaml is easily corrupted and having no server storage access can ruin the server.
I'm staved about the per user cooldown now :-) And please make it that the message can be configured .. and voided ... so some script can be kept hidden from the mass.
@aelodia
Have you tried @player §eHello ?? it used to work for me ; ) but you have to set it in the script.yml !
Just to know, i look for it but not found : There is a possibility to add color to a text @player ?
Could be nice :) when i do @player &eHello, he just say &eHello with no color snif :)
@PhiberOptikx
I don't understand the syntax you're using...
Here is a good syntax example with the @bypass option :
/sbinteract create [@bypass /give <player> diamond 10][@player Now, you are rich !]
I'm having an issue with @bypass and using [ and ] in the command. Example
@bypass command[player]
it has the player just type out: "player" over and over.
@doekia
Do you still have the issue with the latest version ? I have not been able to duplicate it for now.
for the group check, I use Vault... I thought the group check used by Vault, was looking for all of the player groups... I'm not sure I can fix it, but I'll give a look !
The purpose of the user and group captured in the script is for the permissions.
if a simple have the permission to create a script like :
scriptblock.interact.command.create
scriptblock.interact.option.toplayer
and if he have the permission to remove a command :
scriptblock.interact.command.remove
if he create a script, and want to remove it. ScriptBlock will check if the script is belong to him, and if it is, the script will be removed. if it is not, he won't be able to remove it unless he have the permission:
scriptblock.interact.modify.remove.* OR
scriptblock.interact.modify.remove.'ScriptGroupNameTag'
( ScriptGroupNameTag is the name of the user's Group, that created the script )
This is intended especially for moderators. or for Town owners...
You can add for exemple to a build map moderator :
scriptblock.interact.modify.remove.builder
And for the adventure map moderator:
scriptblock.interact.modify.remove.default
scriptblock.interact.modify.remove.travellers
As you noticed, subgroups won't be check for now... so you have to enter all of the
subGroups (if you need) manually...
if you find a weakness in this system, feel free to inform me about it ! I will see if I can fix it !
@Shereis
The strange behaviour is that multiple option at once get stack altogether: - '@command time day $cost: 10' Some time the quote are also missing, hence yml parsing error. This is not a big issue, I would say a documentation issue. Add one option at a time.
Also need to mention that using PermissionsBukkit and multiple groups per user the @group only check the first one ... Workaround by setting a permission node within the group and switch to @perm:specificnode.group1
What is the purpose of user/group captured in the script? group ownership is also weird when using multiple groups... :-)
EDIT2: 0.8.3 incoming...
EDIT: issues with delay confirmed... this is making this version unstable for the moment for people who have script with delays... but I still need beta testing on it to fix as quick as possible most of the bugs !
@domingo15
For now, You should use delays as short cooldown ! users can't use a script when a delay is initiated ! but I will maybe set everything to milliseconds in a futur update... At the beginning , I wanted something very easy to use... that's why I set everything like that.
@doekia
@wuselrob
there is no global cooldown predefine. I'm checking this issue, if i don't find anything, you'll have to open a ticket with your BlocksData folder .YML files !
Since the new update, I'm getting "You must wait to activate this again..." all the time although I did not define any cooldown. Is there a global cooldown predefined and where do I change this?
I love this plugin and this update however here is a couple of glitch or misunderstanding of mine:
@Shereis
is it possible to set cooldown to seconds instead of minutes?
@domingo15
if you bind a script to a block like in this exemple :
"/sbinteract create @command /warp wild"
This command execute the command "/warp wild" like if it was the player who write it in chat. So, the player will need the permission "scriptblock.interact.use" ( to use the scriptblock ) and the permission relative to the plugin commands.
if you use "/sbinteract create @bypass /warp wild" Then the player won't need any other permission than the "scriptblock.interact.use" the "@bypass" option promote ( with some security check) the player to op only to perform the command and demote him immediately after the command was performed.
If you do not feel enough secure with OP promotion, you can also use "@bypassGroup:" or "@bypassPerm:" option. note that it's more heavy in resources with some permissions plugin. check the Option page for more infos !
@Shereis
Do they have to have the permission for the command to activate like /warp wild, so they need some permissions called warp.wild before they can interact with the block the command is bind on?
Edit: I read that the cool down time is in minutes, is there anyway to make it in seconds?
@domingo15
yeah you can bind it to a button, and also to a pressure plate, but for the pressure plate... you need to "cheat" a little, you need to use the "/sbwalk" command, and bind it to the block under the pressure plate ! the pressure plate will be in this case just aesthetic ! but the script will be run when the player walk on it.
can you also bind this to a button, pleasure plate or lever like anything that can be use or interact.
Nice ! It works greeaaat ! :) Im wondering how work the api.. Well, i wait for a doc lol Nice work shereis ! We approach to a real script like in the scripted games :)
@sheepwool7
Ho yeah, I didn't expect that would be so fast !
I got it already, since I subscribe for file updates :P
@sheepwool7
The 0.8.2 is on the way, it needs approval from moderators ! I hope they won't be too long !
Thanks for the fast update!