ToolBelt
ToolBelt
About
This plugin provides a way to replace specific tools with special functionality. The idea originated from the VoxelDoop2 plugin, but has been re-written entirely for better code quality and to include permissions and yml configuration. The framework has been rewritten a second time now so that additional tools can be added more easily.
Setup
The process for setting up this mod is to drop it in your CraftBukkit plugins/ folder. Run (or /reload) bukkit, and it will create a ToolBelt/ folder with the config.yml file inside. Modify the file as wished (it is documented inside the file) and then run /tb reload to tell ToolBelt to reconfigure itself from modified config file.
Tools
- Block Duplicator (defaults to Stone Axe) Right click with this tool in your hand to get a stack of 64 of the selected block.
- Data Scrolling (defaults to Bone) Right or Left click with this tool to change the data value for the selected block. This lets you change a half-step from wood to stone to brick and so on.
- Paint Brush (defaults to Slime Ball) Left click to load a block type and data into the paintbrush, and Right click to paint the loaded data onto the selected block
- Leap (defaults to Feather) Right click to make large leaps through the air. This is similar to VoxelAir, only instead of hovering, left click can enter creative mode flight.
- Pickhax (defaults to Diamond Pickaxe) Left click to insta-delete a block. Right click to insta-delete without applying minecraft physics. Crouch to remove blocks at range (if have phax.range)
- Ruler (defaults to Paper) Left click in one spot, Right click in another, and get the width in x,y,z, total distance between points, and the enclosed volume.
- Watch (defaults to Watch) Left click to set personal time to day, right click for night. Crouch and click to re-sync with server time. If synced with server and have watch.server permission, left/right crouch click to set server time to day/night.
- Sledge (defaults to Gold Pickaxe) Left click to push a block forward into air, right click to pull it towards you. Crouch to push/pull into non-air blocks.
- Pliers (defaults to Glowstone Dust) Same as Sledge, except you copy the block instead of move it.
- Shovel (defaults to Gold Spade) Left click to remove (by default) a 3x3x3 cube of earth. Right click to remove a disk (by default) of radius 2.5, and crouch right click to remove a sphere (by default) of radius 2.5. By default, the shovel removes stone, dirt, grass, sand and gravel.
- Chainsaw (defaults to Gold Axe) Left click to remove (by default) a 3x3x3 cube of trees. Right click to remove a sphere (by default) of radius 2.5. By default, the chainsaw removes logs, leaves and vines.
- Tree (defaults to Gold Hoe) Right click to place a full tree where you click, Left click to change the type of tree to place. This uses the built-in tree generation code, and so will only place in locations where there is room for the full tree, and the appropriate ground below. The tool is disabled by default in config.yml .
Permissions
This help is now available in help/Permissions.txt. That file will be updated with every new release and will always list what is available.
- toolbelt.reload Give permission to reload the settings from the configuration file on the fly
- toolbelt.tool.* Give permission for all tool related settings
- toolbelt.tool.dupe Give permission to use the duplication tool
- toolbelt.tool.scroll Give permission to use the data scrolling tool
- toolbelt.tool.paint Give permission to use the paint tool.
- toolbelt.tool.paint.range Give permission to use the paint tool at a distance.
- toolbelt.tool.leap Give permission to make huge leaps with the leap tool.
- toolbelt.tool.leap.fly Give permission to enter creative mode flying by left clicking.
- toolbelt.tool.leap.tel Give permission to teleport by crouching while leaping.
- toolbelt.tool.phax Give permission to use the PickHax tool.
- toolbelt.tool.phax.range Give permission to use the PickHax tool at a distance.
- toolbelt.tool.ruler Give permission to measure distances easily with the ruler.
- toolbelt.tool.watch Give permission to set the time to day or night for themselves with the watch tool.
- toolbelt.tool.watch.server Give permission to set the server time.
- toolbelt.tool.sledge Give permission to push or pull blocks.
- toolbelt.tool.pliers Give permission to copy and push or pull blocks.
- toolbelt.tool.shovel Give permission to clear large amounts of (by default) stone, dirt, grass, sand and gravel.
- toolbelt.tool.saw Give permission to clear large amounts of (by default) logs, leaves and vines.
- toolbelt.tool.tree Give permission to rapidly place fully grown trees.
The warning/help messages can be configured per-user by the following permissions. Please only give any user one of these permissions at a time.
- toolbelt.print.debug Print all messages including ones that give debugging information.
- toolbelt.print.hint Print all quieter messages + hints for using tools.
- toolbelt.print.info Print all quieter messages + informational notices for tools.
- toolbelt.print.warning Print all quieter messages + warnings on wrong tool use.
- toolbelt.print.important Print important messages, such as loaded paint material and such.
There is an always up-to-date list of permissions in help/Permissions.txt inside the ToolBelt folder.
Commands
This help is now available in help/Commands.txt. That file will be updated with every new release and will always list what is available.
- /toolbelt or /tb
- /tb reload Reload the settings from the configuration file. (if you have the permission above)
- /tb tools See a list of all the tools you can use. (takes into account what tools are enabled and what you have permission to use)
- /tb off Allows a player to use the ToolBelt tools as they normally are, with ToolBelt not active. This is just for the person who ran the command.
- /tb on Allows a player to re-enable the use of ToolBelt tools.
Configuration
- config.yml The configuration file is heavily documented in the top comment. Please let me know if I'm not clear enough on any option and if I'm missing any configuration options that you wish for.
- help/<tool>.txt These files will give further information on the configuration settings for a given tool.
Additional links
The code for the plugin is available at github.
Please update the mod in 1.10.2 D:
Will this ever be updated for 1.10?
I cannot figure how do you configure the leap... I changed the config, still doesn't work. The leap still too high and too fast, please help
@Peter200lx
Thank you for looking in to this :-)
Alright, I'll start investigating updating the plugin as there are multiple people out there still interested. I've been busy with RL, so I don't know how fast this will be fully ready for 1.8, but it is back on my TODO list now.
It has begun (at an initial investigation level):
Extremely alpha build, literally just the changes to compile in the 1.8 world and nothing else.
No Guarantees that this won't corrupt your world as I've not done any testing further then making sure that each tool does it's basic job. Obviously it doesn't support any new blocks yet. However with all of those warnings, if you want to test this on a throw-away test server I'd love feedback. If possible please open bugs and issues on github so that I can talk in detail about each one:
@Peter200lx
Oh, please update the plugin for 1.8! This is a wonderful plugin and it's made things so difficult going without it. it would truly be appreciated!
Oh no! This is one of my servers main plugins, really worried at the prospect of not getting an update. I dont think there are any alternatives.
@asmit119
Yeah, originally I was waiting for a bucket update so that I could update this with the official 1.8 changes via that API. As it looks like that project is dead I should probably just do the changes with Spigot now which as far as I understand it is the new standard API.
However with the whole DMCA notice / Bukkit update drought I've sort-of moved on to other projects. If this is still a plugin that multiple people are interested in then I'll try and get around to updating it again.
However^2 With the 1.8 update (lots of new blocks) and block names instead of block numerical IDs, the plugin will probably need some significant changes to support the modern Minecraft. This of course makes updating this plugin more daunting.
So the end answer is I might update this, but I've not decided yet. If there is enough interest it will probably push me over the edge to update it.
Broken in 1.8.3
@xNanochip
Sorry, but scaling the current tools to world-edit levels is outside the scope for this plugin. These are supposed to be easy to use tools for the users on your server. For more advanced tools that you can configure the size of their effect I'd suggest looking at World Edit or Voxel Sniper.
@Peter200lx
I know I've already asked a bunch from you, but I have yet another suggestion: What about adding a tool or mechanic that can place a 3x3x3 area of the block that the paintbrush has copied? Maybe this could be an additional feature to the paintbrush tool (shift+right click)?
This, of course, is not urgent at all, but would be a nifty and helpful feature for your plugin. Keep up the great work!
@Peter200lx
Wow! It works! Thanks a lot Peter! This is exactly what I was looking for. Again, thanks a lot man!
@xNanochip
Alright, not making an official release of it yet as I want to do a bit more testing, but I've created a build so that you can give me feedback if you wish. The build just contains a version bump to 0.9.1 and the following commit on top of 0.9: https://github.com/Peter200lx/ToolBelt/commit/0067cf0577
It is used by adding the ToolBeltBlock*Event items to CompatNoCheatPlus/cncp.yml: https://github.com/asofold/CompatNoCheatPlus/issues/5#issuecomment-43464564
This build is not verified by Bukkit Dev, and the link will not be good forever: https://dl.dropboxusercontent.com/u/71355/toolbelt-0.9.1.jar
If you encounter any problems with getting the NoCheat exception working, please comment on the ToolBelt issue below so I can track and fix: https://github.com/Peter200lx/ToolBelt/issues/37
@xNanochip
Glad to hear you enjoy the plugin, and you're not being too demanding, I understand the use-case. I would be willing to talk with the the author of CompatNoCheatPlus to see if we could create some way to provide an exemption. I've opened an issue on the plugin to begin a dialog: https://github.com/asofold/CompatNoCheatPlus/issues/5
I had not been aware of the idea of a custom event name before, and will have to test it thoroughly to make sure I don't regress in WorldGuard/LogBlock compatibility, but it does seem like a possibility. I also suggested a second communication avenue if I see any loss of functionality from the first route.
@Peter200lx
I really enjoy your plugin very much. Furthermore, I would love to use it and let the members of my server experience it as well. Unfortunately, I am unable to use it due to NoCheat. My server HAS to have NoCheat. I cannot disable the checks in NoCheat only for this plugin. Not to mention, that could/would get exploited quickly. Therefore, is there anyway that you and the author of CompatNoCheatPlus can get together and discuss what needs to be done in order for NoCheat and ToolBelt to be compatible with each other?
This is what the author of CompatNoCheatPlus wrote back to me:
@xNanochip: I think my answer did not get registered, sorry about that - i will come back to this question soon.
In short: Of course the author can do something, maybe we can as well or we just both could cooperate on it. Simple things like block-breaking can be cured if they use custom events that are different from the default events, so cncp can make NCP skip those.
If you want exemption but still protection, it gets slightly more complicated, because those exemptions tend to allow too much, e.g. nuking for fast-breaking skills.
So from what I could understand, you would need to use custom events for block-breaking. However, the only problem I see with this is that LogBlock wouldn't detect the blocks that are being edited by ToolBelt. Which would lead to another issue of mine. D:
I apologize if I am being too demanding here. I just really like your plugin :)
@xNanochip
Interference with NoCheat plugins is a known problem, the way I've heard it in the past is with changing blocks at range. (This is documented in the "Known caveats" section of the file download).
I do not know of any way that you can stop this without disabling those checks on players using ToolBelt. I'm also unaware of any way to collaborate with NoCheat on the plugin level.
Sorry my reply isn't more helpful. I've not looked in a while, but didn't see any tricks I could use last time I investigated this. I hope ToolBelt is useful to you even with the interference.
Ok this is probably a stupid question, and I bet this has been answered before. However, I can't seem to find the answer.
SO, Everytime one of my members on my server use paintbrush or the shovel tool, NoCheatPlus blocks them with "[player] failed NoSwing. Didn't swing arm." or "[player] failed frequency tried to break too many blocks". That being said, is there anyway I can make NoCheat ignore ToolBelt's block changes. Or could you make ToolBelt compatible with NoCheat WITHOUT disabling the nocheat check all around... I'm not sure if there's anything ToolBelt can do to get around this though, so I'm asking anyways.
Thanks in advance. -Nano
Belated thanks for the 1.7.2 update. Still using it with 1.7.5 and it works great! Really love this plugin.
@Dad_Yoshi
Ah, yes. I had done a most of the work for this back in December, but then RL has distracted me from minecraft, thanks for the reminder. Version 0.9 with support for 1.7.2 has been uploaded and is available.
Any chance of a 1.7.2 update?