After looking around trying to find a affordable, feature rich, efficient (for use on Larger Servers) Minions plugin and after concluding that was not going to happen, I decided to make my own. The current Minion plugins that exist on Spigot / other places are (in my opinion) way overpriced, incredibly un-efficient or simply do not work..
My plugin aims to provide an efficient however feature rich Minions Plugin and even includes an API so developers can create their own custom Minions, simply.
What is this plugin? This plugin, like others, provides a way for players to place 'Minions' (robots) that perform tasks, such as mine ores. These resources can be automatically put into a linked chest nearby. This plugin has tons of hooks that allow it to hook into other plugins, including SkyBlock, GriefPrevention, Towny, Factions, World Guard and so many more (see below)!
Current Minions:
- Miner (Mines the block in-front, upgraded miner smelts ore / mines multiple blocks in front)
- Slayer (Kills mobs within a pre-configured range)
- Collector (Collects Items within a pre-configured range)
- Feeder (Feeds minions with a pre-configured range)
- Lumberjack (Chops wood & leaves within a pre-configured range)
- Farmer (Farms farmland within a pre-configured range)
- Fisher (Catches fish within water pools located infront of the minion)
- Seller (Sells items found in its attached chest, the minion is able to get shop values from ShopGUI+, Essentials or CMI)
All Minions are upgradable, with configurable upgrade settings
Come and join our official Discord Server!
Some of my other resources
- Upgrade Minions with $$$, configure price per upgrade, messages & what they do at each level
- Fully customizable Minion Store
- Completely customizable per Minion Interface
- Console Commands Supported
- All Protection Plugins, such as any SkyBlock, CoreProtect WorldGuard plugins Supported
- HeadDatabase support
- Managers Minions Efficiently, this plugin will not keep chunks loaded (unlike other similar plugins that do) - Causing larger servers to have thousands of unneeded chunks loaded.
- Set Minion Limits with Permissions
- Customizable Health, per Minion type
- Customizable delays for Animations and Actions per Minion (Specificity the amount of ticks between animation and action, great for larger servers to deal with lag efficiently)
- Customise Minions Name (and allow Players to set the name of their minions, again through a permission which they can win/buy somehow)
- Rotate the Minions direction
- Link Minions to chests
- Feed Minions to keep them powering through their tasks! (Again completely configurable, if you want minions to power on for ever, you can..)
- Create your own custom suits (using Player Heads & RGB colours) and give players access to them through permissions (A great EULA friendly donation perk!). Why be forced to have 'pre-defined' suits when you can create your own...? Players will have access to a Skin GUI to pick from these suits! Skins are cached to prevent long loading times / to many authentications with Mojang
- Data is stored via Custom NBT Tags When a minion is in an inventory, many other minion plugins force you to have a lore that you do not want (this is how, for example, block-counts can be saved). This plugin uses custom NBT tags to store data (such as stats & Minion level) meaning data is saved on ItemStacks however it is invisible to the user.
- An API that allows any developer with a basic understanding of Java to create custom Minions. The API is explained below, although is incredibly very easy to use.
.
So the plugin is being ran on the PlanetMine SkyBlock server (IP: PlanetMine.org > SkyBlock). You may need to message me (jet315) or another user ingame if you wish to see them.
Spoiler: IMAGES
Everything you see is Customizable, from the interfaces, to the minion itself..
Cracked servers require Head Database for skins
Customise everything from GUI name, to everything inside it.
Clicking a skin in this UI will change their minion skin! Everything is Customizable in this.
Minion Store (again everything customizable)
Video courtesy of @AntonioRush (However quite outdated now!)
There are no real commands needed for players, instead I suggest giving them these permissions:
General Permissions:
minions.player.* - Gives them the permissions below
minions.player.rename - Allows them to rename their minion
minions.player.linkchest - Allows them to link a chest
minions.player.helpcommand - Allows them access to /Minions (although not needed)
minions.player.store - Allow access to /Minions store
Skin Permissions
This will allow players to select skins in the skin GUI menu
minions.skins.* or
minions.skins.<NameOfSkin>
Minion Limit Permissions
Depending on what permission a user has, will depend on how many minions they can place. Minion place permissions are configured in the config.yml. By default, the permission
minions.place.default - will allow access to three minions, (Check the config.yml to create other permissions allowing for more/less minions)
Admin Permissions & Commands
minions.admin.break - Will allow a user to break any minion
minions.admin.viewminion - Allows any user to open any (loaded) minion menu
minions.admin.reload - /Minions Reload - Reloads the configuration file, although a restart is required for certain things.
minions.admin.givecommand - /Minions give <Player> <MinionType> <Amount> - Gives a specified player that minion (The Minion Type is Case sensitive)
minions.admin.storeother- /Minions storeother <Player> - Opens the store for another player
minions.admin.bypasslimit - Allows a user to place however many minions they want
Pretty simple, just put the plugin in plugins folder and all should be well.
Hooks, such as World Guard, Factions, etc will automatically be detected & enabled if present (you may disable them if needed in the hooks.yml file)
I really suggest turning off the server to modify properties of the configuration files, rather than using the reloading command. Using PlugMan to force reload the plugin may break things, although to be fair, in my tests works fine.
There is quite a few files that can be customised. These can be found here
(Will be adding more very soon.. Made your own Minion? Post it as a free Spigot Resource and I'll list it here
)
Currently, you may create a Minion by simply creating a new class and extend Minion (from me.jet315.minions.minions)
Check this out for information:
You will not need a plugin.yml or onEnable or anything like that.
Once you have done this, to register your minion simply export the jar, and put it into the Minions/minions folder. You will also need to setup properties for the Minion in the config.yml and controlpanel.yml.
There's also a bunch of different events