OmniTool [The Ultimate Multitool Plugin] [1.8-1.21.4] icon

OmniTool [The Ultimate Multitool Plugin] [1.8-1.21.4] -----

The perfect plugin to give your players the ultimate tool!




OneBlock Support
OmniTool is now compatible with popular gamemode OneBlock Skyblock. Plugin was tested with AOneBlock using Bentobox. The logic for Tool updating has been altered and improved to now support holding down click in all scenarios as well.

Bug Fixes
Miscellaneous bugs have also been fixed. Thank you to those who have let me know of bugs so I can get them fixed ASAP.

Again, thank you to everyone for the continued support for this plugin, and please continue to send me bugs and suggestions via discord (@subnet.mask) for me to continue to keep this project up-to-date! I am running out of ideas for updates to this project, so any help with ideas would be greatly appreciated!
----------, Feb 28, 2025

Droppable Item Toggle
You are now able to toggle if you want OmniTools to be droppable in the config.yml file. Can be updated by changing "tool.droppable" to true or false. Keep in mind you will need to create a new config for this to be editable. Make sure to make a backup of your current config before making changes or updating. There are now 2 more configurable messages, "messages.item-not-droppable," and "messages.item-not-droppable-full-inventory." Message item-not-droppable-full-inventory will only be sent if the player attempts to drop the tool with no available spots in their inventory to restore the item, and will drop the item on the floor.

GUI upgrades
A few small bugs with OmniGUI have been fixed in this upgrade, causing a minor performance boost. Also, when executing OmniGUI, if you do not select a level for the Fortune enchantment, you will now be prompted if you want to add Silk Touch to the Tool instead.

Again, thank you to everyone for the continued support for this plugin, and please continue to send me bugs and suggestions via discord (@subnet.mask) for me to continue to keep this project up-to-date! I am running out of ideas for updates to this project, so any help with ideas would be greatly appreciated!
----------, Jan 9, 2025

1.21 Support
The long awaited and requested 1.21 Support has finally been added! All new blocks have been added to the Tool Tables. I feared that with the changes made to 1.21 Spigot API, I would have to lose legacy version support, but I was able to find workarounds for all issues that arose with the upgrade.

Dependency Removal
For all of the legacy users of this plugin (1.15 or older), there is now no need to install RyseInventories on your server. This caused most of the issues with upgrading the plugin to function with 1.21. The entire OmniBuilder has been recoded inhouse and now uses no other dependencies to function. This should also increase speed slightly server-side, as the inventories will no longer have to be generated dynamically.. The solution that I created for this plugin now will only generate the Inventories once on server boot, and load them from memory when being used. This will also slightly decrease the plugins storage size on your machine, by around 320KB. While this is not a lot, it will increase plugin performance due to not accessing the dependency.

Again, thank you to everyone for the continued support for this plugin, and please continue to send me bugs and suggestions via discord (@subnet.mask) for me to continue to keep this project up-to-date!
----------, Oct 3, 2024

1.21 Support
The long awaited and requested 1.21 Support has finally been added! All new blocks have been added to the Tool Tables. I feared that with the changes made to 1.21 Spigot API, I would have to lose legacy version support, but I was able to find workarounds for all issues that arose with the upgrade.

Dependency Removal
For all of the legacy users of this plugin (1.15 or older), there is now no need to install RyseInventories on your server. This caused most of the issues with upgrading the plugin to function with 1.21. The entire OmniBuilder has been recoded inhouse and now uses no other dependencies to function. This should also increase speed slightly server-side, as the inventories will no longer have to be generated dynamically.. The solution that I created for this plugin now will only generate the Inventories once on server boot, and load them from memory when being used. This will also slightly decrease the plugins storage size on your machine, by around 320KB. While this is not a lot, it will increase plugin performance due to not accessing the dependency.

Again, thank you to everyone for the continued support for this plugin, and please continue to send me bugs and suggestions via discord (@subnet.mask) for me to continue to keep this project up-to-date!
----------, Oct 2, 2024

CustomModelData Fix
A bug with CustomModelData was brought to my attention, causing the plugin to not properly update the item on change. There is a new version of the config.yml that will prompt for CustomModeData tags for each rarity of each item, to prevent from any issue occuring. All CustomModelData config parts have been changed to a "customModelData.(rarity).(tool)" setup, allowing for more customizability for the data.

ItemFlags
You are now able to toggle if you want OmniTools to show Enchants and other ItemFlags in the config.yml by changing the "tool.hideEnchants" from true to false (default).

If any bugs are encountered with the plugin, or you have any suggestions, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you! Any suggestions and bugs found are the reason why this plugin receives updates!
----------, Sep 4, 2024

Hello all,

This has been a requested addition for a while now, so here it is!

CustomModelData Support
CustomModelData is now supported by OmniTool. You can enable this by updating to the newest version of the config (make sure you take a backup first), toggling "tool.useCustomModelData", and then editing the section under "tool.customModelData", where you can add different customModelData tags for each tier of tool: wood, stone, etc... Anything else having to do with CustomModelData, ie resource packs, needs to be done how you would normally do that. You can also see the CustomModelData tag for the item if you enable the "debug-mode" field in the config, and executing "/nbtdebug". You can use this to verify that each of your tools are being imported properly in your custom resource pack. If you decide to change your CustomModelData after initially setting it, all existing OmniTools will update to the new data the next time they are updated, whether that be by breaking a block, or hitting a player/entity.

Reload Command
It has been brought to my attention that reloading the plugin server-side would be a beneficial feature as well, so you can now reload the plugin by executing "/omni reload". In this case, "omni" would be replaced by whatever your "commands.tool.base-command" is set as. Please note, commands will not update when you reload the server, only cosmetics, like CustomModelData, names, lores, and toggles.

Additional Bug Fixes
You can now name your OmniTools a default name by editing the "tool.name" field in the config.
You can now use hex values in the lore for OmniCrystals, this was a bug that I overlooked when first implementing crystals in the recode for update 2.0.0.

If any bugs are encountered with the plugin, or you have any suggestions, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Apr 23, 2024

Tool Toggling
Tool toggling is a feature that allows server owners to determine whether they would like OmniTools to be able to change into each tool type. This can be changed in the config.yml, which has a new version.
To update your config.yml, please delete the old one, and restart your server. Be sure to make a backup. If you do not wish to update your config, it will default all toggling to true.

Command Mapping
When making this update, I encountered a lot of major bugs with how commands were being handled between all versions of Minecraft. This was due to a reflection issue across spigot and paper platforms, which now has been fixed for all versions 1.8-1.20, and run two separate command handlers to ensure all commands are handled the same at runtime.


If any bugs are encountered with the plugin, or you have any suggestions, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Feb 15, 2024

I was made aware that there were still a lot of missing blocks from various tables.

All of those have been fixed in this update. If I am missing any more please let me know via discord @subnet.mask or DM me here.

Thanks!
----------, Jan 30, 2024

Added more missing blocks for the axe loot table.

If any bugs are encountered with the plugin, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Jan 23, 2024

Added more missing blocks for the axe loot table.

If any bugs are encountered with the plugin, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Jan 23, 2024

New Blocks
These blocks types are now also supported:
-Mangrove Blocks
-Cherry Blocks
-Mud Blocks
-Stripped Wood

If any bugs are encountered with the plugin, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Dec 13, 2023

New Blocks
These blocks types are now also supported:
-Mangrove Blocks
-Cherry Blocks
-Mud Blocks

If any bugs are encountered with the plugin, please reach out over Spigot DM's or Discord (@subnet.mask)

Thank you!
----------, Dec 13, 2023

OmniBuilder
The plugin no longer fully depends on RyseInventory to function. If RyseInventory is not detected running in your server environment, it will disable only the OmniBuilder functionality, rather than disabling the full plugin. This means that if you do not want to use RyseInventory on versions before 1.16, you will no longer need to, however, OmniBuilder will not function. Future updates are planned to fully move away from this system and make the plugin run fully with no dependencies needed.

Update Checker

The plugin will now notify you on startup if there is a new version that is available to download.

Metric Logging
I have implemented bStats into this plugin to allow myself to see Metrics for the plugin. No data about your server is being passed through besides your Java version, Spigot version, and Plugin version.
----------, Oct 15, 2023

This update overhauls the configuration file, so please make sure to make a backup, and then clear the "OmniTool" folder in your plugins directory, and restart your server.

Customizable Commands:

You can now edit the commands, aliases, and permissions for both the OmniTool command and OmniCrystal command.

Customizable Items:
You can now also change what item you want to use as a crystal.

Tool Upgrade:
You can now also set whether or not you want ALL OmniTools to be unbreakable in the config.

Bug Fixes:
There was an error throwing when clicking on NPC's from the Citizens plugin. This has been fixed.
----------, Oct 10, 2023

Quick fix for added support for 1.20.2
----------, Oct 7, 2023

OmniTool 2.0.0

This is the biggest update yet, over 2 years in the making.

I have spent the last 2 months completely recoding how the entire plugin functions.

New Features:
Omni Builder
- /omni gui - A new way to create different Tiers of OmniTools, with different enchant levels
OmniCrystals
- /crystal <player> (chance) - Omni Crystals are finally implemented
Debug Mode
- /nbtdebug - if "debug-mode" in the config.yml is enabled, you can use this command to check the "data" compound within an OmniTool or OmniCrystal

1.8-1.20 Support
Finally, this project works on all versions from 1.8-1.20. If you encounter any bugs with this please let me know, whether that be through a Spigot PM or Discord DM, which my @ can be found at the bottom of the main plugin page.

Developer API
I have now implemented a small Developer API to allow developers to integrate directly with my plugin.
- isOmniTool(ItemStack item) - determine whether an item is an omni tool or not, returns boolean
- isOmniCrystal(ItemStack item) - determine whether an item is an omni crystal or not, returns boolean
- addBlockToTable(ToolType type, Material material) - did I miss a block you wanted to be added to a certain tool? add it here if you want it to be different than the base plugins values
- openOmniToolBuilder(Player player) - Opens the OmniBuilder for a player that is logged into the server
- getOmniCrystal(int success) - returns an OmniCrystal with a given success rate
- OmniCrystalApplyEvent - event called when players apply an OmniCrystal onto an item
- OmniToolChangeEvent - event called when an OmniTool changes states

Permissions
I have implemented 2 basic permissions for the commands within the plugin.
- omni.tool - execute the /omni command without being a server operator
- omni.crystal - execute the /crystal command without being a server operator
----------, Sep 21, 2023

1 more NBT Error was pointed out to me, and I was able to find a quick fix for this issue.

Crystals are not going to be implemented on this update, but they are very close to being done, so I will reiterate this.

Crystals are going to be implemented on the next update, and you can already edit the configuration file for crystals, so you won't need to update the config when they are released.

I will be creating a discord server for support and plugin suggestions/bugs in the near future, so stay tuned for that, most likely will release the discord when I release crystals for this plugin.
----------, Feb 23, 2021

2 NBT Errors have been fixed when using regular tools vs. Omni Tool

If you have any suggestions or bugs, do not hesitate to DM me on discord @Tucker#0680 or PM me on this platform.
----------, Jan 27, 2021

There is now a Built-in NBTAPI, which means you no longer need to download the NBTAPI jar. This plugin is entirely standalone now.

Crystals are going to be implemented on the next update, and you can already edit the configuration file for crystals, so you won't need to update the config when they are released.

Now supports versions 1.8-1.12
----------, Sep 9, 2020

Resource Information
Author:
----------
Total Downloads: 3,440
First Release: Jun 24, 2020
Last Update: Feb 28, 2025
Category: ---------------
All-Time Rating:
10 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings