Additions+ | Custom Commands, Menus, Books, Actions, Nametags and much more | 1.8-1.14

SpigotVIP Additions+ | Custom Commands, Menus, Books, Actions, Nametags and much more | 1.8-1.14 2.2.4

Additions+ | Custom Commands, Menus, Books, Actions, Nametags and much more | 1.8-1.14
If it stops working for some reason use the discussion section to report! Thank You!
~ qtChan



hO3u68J.png
Original Link: https://www.spigotmc.org/resources/...ctions-nametags-and-much-more-1-8-1-14.67706/
uCIWmna


-- TRANSLATING --
Translate for the PREMIUM resource
I WANT TO TRANSLATE

4QGniUs


1d2Ks9x




    • Create custom commands
    • Create custom menus
    • Create custom Anti-Flicker Scoreboards [PREMIUM]
    • Per World Scoreboards
    • Togglable Scoreboards Per Player
    • Create custom tablists
    • Custom player names in tablist (animated) [PREMIUM]
    • Create custom items
    • Create custom books [PREMIUM]
    • Command arguments [PREMIUM]
    • Cooldowns for commands
    • Cooldowns for menus
    • Cooldowns for items
    • Interval actions
    • Event Actions
    • Color Codes On Signs (&)
    • Color Codes In Anvils (&)
    • 7 plugin hooks [PREMIUM]
    • PlaceholderAPI support
    • MVdWPlaceholderAPI support
    • Vault support
    • ProtocolLib support
    • HeadDatabase support
    • Plugin Event Integrations [PREMIUM]
    • 47 Actions [PREMIUM]
    • 1.8x - 1.14x support
    • 27 Events [PREMIUM]
    • 13 Built-in Placeholders [PREMIUM]
    • Almost 100% customizable!
    • Frequently updated
    • 24/7 and fast support via Discord
    • Much more...
With all these features, you can create almost a full essentials plugin with /heal, /tp, /fly, /kill, /clear, /speed, /warp. Besides that, you can create a /calc command such as WorldEdit's one. Then you can also ditch a RandomTeleport plugin as you can generate a random number between two numbers and then, safely, teleport to that location. More info in our Discord.

KxMUbwP


PlaceholderAPI is a Soft-Dependency. Install it to use placeholders in the actions, item lores, item names, books, and all other texts.

MVdWPlaceholderAPI is a Soft-Dependency. Install it to use placeholders in the actions, item lores, item names, books, and all other texts.

Vault is a Soft-Dependency. Install it to use the [money], [permission], [group] and [price] action.

HeadDatabase is a Soft-Dependency. Install it to use custom heads from their plugin. Use the format hdb-<headID> as material name.

ProtocolLib is a Soft-Dependency. Install it to use the [language] action.

MineTopiaSDB is a Soft-Dependency. Install it to use their custom events.

ASkyBlock is a Soft-Dependency. Install it to use their custom events.

dZ8bOW3

/Command - Command Description - Permission

/additions - Main command - additions.command
/additions togglescoreboard - Toggle scoreboard - additions.command.togglescoreboard
/additions menus - List of registered menus - additions.command.menus
/additions books - List of registered books - additions.command.books
/additions commands - List of registered commands - additions.command.commands
/additions items - List of registered items - additions.command.items
/additions reload - Reload the plugin - additions.command.reload
/additions giveitem <item> [player] - Gives a custom item (to a player) - additions.command.giveitem
/additions givebook <book> [player] - Gives a custom book (to a player) - additions.command.givebook
/additions openmenu <menu> - Opens a custom menu - additions.command.openmenu

/customitem info <item> - Get all info of an item
/customitem create <name> - Create an item of current handitem
/customitem remove <item> - Remove an item
/customitem setamount <item> <amount> - Sets the amount of the item
/customitem setdisplayname <item> <name> - Sets the display name of an item
/customitem setslot <item> <slot> - Sets the slot of an item
/customitem setcooldown <item> <cooldown> - Sets the cooldown of an item
/customitem setcooldownmessage <item> <message> - Sets the cooldown message
/customitem setpermission <item> <permission> - Sets the permission of an item
/customitem setnopermission <item> <message> - Sets the noPermission message of an item
/customitem actions <item> - Get the list of actions of an item
/customitem addaction <item> <action> - Add an action to the item's action list
/customitem removeaction <item> <actionInteger> - Removed an action from the item's action list
/customitem lore <item> - Get the lore of an item
/customitem addlore <item> <lore> - Add a lore line to the item's lore
/customitem removelore <item> <loreInteger> - Remove a lore line from the item's lore
n1lONzz

It's not a complicated system. You simply put the event name (see event list) in the file, add a : behind it, then press enter, add 2 spaces, type actions: , press enter, and type right under actions: a line (-) and put the action in it. For more actions, just add more lines.

join:
description: Fired when the player joins the server
firstjoin:
description: Fired when the player joins the server for the first time
leave:
description: Fired when the player leaves the server
drop:
description: Fired when the player drops an item
placeholders:
- %dropped% : returns the dropped item name
fishing:
description: Fired when the player caught a fish
placeholders:
- %fished% : returns the caught fish/item name
kill:
description: Fired when the player kills another player
placeholders:
- %killed% : the name of the player who got killed
dead:
description: Fired when the player dies
shear:
description: Fired when the player shears an entity
itembreak:
description: Fired when the player breaks an item
placeholders:
- %item% : display name of the broken item
consume:
description: Fired when the player consumes an item (food)
placeholders:
- %consumed% : the display name of the consumed item
entitykill:
description: Fired when the player kills an entity (not a player)
placeholders:
- %killed% : killed entity type name

In the spoilers below are the events that are from another plugin.
If you don't want action to be performed for that event, just remove the event type (see underlined words in the event list) or set the actions of that event to []. An example is then:
Code (YAML):

join:
actions: []

There also is the possibility to set the death, join and leave message of players. If you want to remove it, just set it to ''.
The right way to use them are:
Code (YAML):

join:
joinMessage: '&a&l%player% joined the server'
actions: []
leave:
leaveMessage: '&c&l%player% left the server'
actions: []
dead:
deathMessage: '&c%player% is soon to be hosting his own funeral as a ghost. Please be there, he''d like that. &lR.I.P'
actions: []

wCnyxOS

Creating custom commands isn't hard with this easy system. It practically works the same as the events, but you do it in the commands.yml file, and instead of the event name, you type the command.
All actions can be used on either the events or the commands.
Code (YAML):

help: # would be '/help' ingame
actions:
- '[msg]&7---- &bHelp Menu &7----'
- '[msg]&b/helpop &7Get help from an operator'
- '[msg]&r'
- '[msg]&fpage 1/2'
help 1: # would be '/help 1' ingame
actions:
- '[msg]&7---- &bHelp Menu &7----'
- '[msg]&b/helpop &7Get help from an operator'
- '[msg]&b/help 2 &7Next page of the help menu
- '[msg]&r'
- '[msg]&fpage 1/2'
help 2: # would be '/help 3' ingame
actions:
- '[msg]&7---- &bHelp Menu &7----'
- '[msg]&b/server &7Select a server'
- '[msg]&b/help 1 &7Previous page of the help menu'
- '[msg]&r'
- '[msg]&fpage 2/2'


Commands can have placeholder arguments.
Placeholders for arguments are: {integer}, {double}, {boolean}, {string}, {player} and {}.
They all require exactly what's between the brackets {}.
But {} (empty brackets) is a long message with no limit or nothing. So you could use it to make it a broadcast command:
Code (Text):
broadcast {}:
actions:
- '[msg][everyone]&7[&bBC&7] &a{arg1}'
All placeholder arguments in the name can also be used in the actions.
If your command is 'test this is a {string}`, you have 4 arguments. The format is {arg<NUMBER>}. So {arg1} returns "this", {arg2} "is", {arg3} "a" and {arg4} returns the specified string.

The commands can also have permissions :). If you don't specify the permission, everyone will be able to perform the command. If you do specify the permission, the player needs it to perform it.
If the player doesn't have the permission, the noPermission message will be sent to the player. This can be specified per command. If you don't specify the noPermission message, the default message will be sent: "&cYou don't have permission to do this".
The correct usage of permissions and the noPermission message is:
Code (YAML):

rankup 3:
permission: yourperm.rankup.2
noPermission: '&cYou must be at least rank 2 to rankup to rank 3. You can buy ranks in our store.'
actions:
- '[title]&a&lRANKED UP\n&7You are now level 3!'
- '[msg]&aCongratulations! You are now rank 3.'
- '[console]pex user %player% add yourperm.rankup.2'

Additions+ also offers the usage of cooldowns in commands. You can add a cooldown time to the command. You can also add a cooldownMessage to the command. This message will be sent to the player when the command is on cooldown for that player. Use %time% in the cooldownMessage for the remaining time.
The correct usage of these features is:
Code (YAML):

mycommand:
cooldown: 1200 # 1200/20 = 60 seconds ( 1 minute )
cooldownMessage: '&cYou can only use this command once per minute. You have to wait for another %time%'
actions:
- '[msg]&aThis is a command with a cooldown'

k5byu0g

Creating custom menus isn't hard to do. The plugin will automatically generate a 'menus' folder when enabling it. In that folder, you create your custom menus. Each menu is separated in its own YAML file. The name of the menu is the file name without .yml.

You simply create a YML file with as name the menu name. You only use this name to open the menu in the /additions command or in actions.
Example: example.yml. You open this menu with /additions openmenu example.

You can literally set everything of an item in the new version. You can add enchantments, add item flags to hide the enchants, and all other things. Note that all messages support color codes and Placeholders.
Below are the non-item options you can set for the menu:
title:
Description: The title of the menu
Type: String
Required: true
command:
Description: The command to open the menu
Type: String
Required: true
size:
Description: Size of the menu. Must be either, 9,18, 27, 36, 45 or 54.
Type: Integer
Required: true
permission:
Description: The permissions needed to open the menu
Type: String
noPermission:
Description: The message that will be sent when a player doesn't have the specified permission to open the menu
Type: String
cooldown:
Description: The cooldown amount in ticks before the player can open the menu again. (1 second = 20 ticks)
Type: Long
cooldownMessage:
Description: The message that will be sent when a player is on cooldown for that menu. Use %time% for the remaining time
Type: String
openActions:
Description: Actions that will be performed when the player opens the menu
Type: String List
closeActions
Description: Actions that will be performed once the player closes the menu
Type: String List
If you set all of that, your file will look something like this:
Now you're ready to add the contents to the menu. You add all items under the content section. Then add the slot number (starting at 1, not 0) under it between brackets: '1'. Like this:
Code (Text):
content:
'1':
'2':
Then you set the item information. Below is a list of all options you can add to the item to customize it, which is literally everything possible.
material:
Description: The material type of the item. If you have the HeadDatabase plugin, you can set this item to a custom head using "hdb-<headID>". Replace <headID> with the ID of the head. You can also set a player head using "head-<player>". Replace <player> with the player's name (this also supports the placeholder %player%)
Type: Material Type
Required: True
data:
Description: The data of the item (for 1.8-1.12 only)
Type: Byte (Integer)
displayName:
Description: The display name (title) of the item
Type: String
Required: True
amount:
Description: The amount of the item
Type: Integer
durability:
Description: The durability of the item
Type: Short (Integer)
lore:
Description: The lore of the item
Type: String List
itemFlags:
Description: The item flags of the item. Click here for a list of item flags
Type: ItemFlag List
enchantments:
Description: The enchantments that should be applied to the item. To set the enchantment level use the format ENCHANTMENT:LEVEL (DURABILITY:3). Click here for a list of 1.12.2 enchantments.
Type: Enchantment List
unbreakable:
Description: Whether the item should be unbreakable or not
Type: Boolean
left_click_commands:
Description: A list of actions that will be performed when you left-click the item
Type: String List
right_click_commands:
Description: A list of actions that will be performed when you right-click the item
Type: String List
If you did all that, the file will look something like:
Oof. You now know how to create a menu :)

qyEzSmr.png

The custom items have the exact same possibilities as the items in the menu and work the exact same. Below is a list of all things you can change of the item.
Two example items are included by the plugin and will be put in the plugin folder once the plugin is running.

permission:
Description: The permissions needed to open the menu
Type: String
noPermission:
Description: The message that will be sent when a player doesn't have the specified permission to open the menu
Type: String
cooldown:
Description: The cooldown amount in ticks before the player can open the menu again. (1 second = 20 ticks)
Type: Long
cooldownMessage:
Description: The message that will be sent when a player is on cooldown for that menu. Use %time% for the remaining time
Type: String
actions:
Description: A list of actions that will be performed when clicking the item
Type: String List

material:
Description: The material type of the item. If you have the HeadDatabase plugin, you can set this item to a custom head using "hdb-<headID>". Replace <headID> with the ID of the head. You can also set a player head using "head-<player>". Replace <player> with the player's name (this also supports the placeholder %player%)
Type: Material Type
Required: True
data:
Description: The data of the item (for 1.8-1.12 only)
Type: Byte (Integer)
displayName:
Description: The display name (title) of the item
Type: String
Required: True
amount:
Description: The amount of the item
Type: Integer
durability:
Description: The durability of the item
Type: Short (Integer)
lore:
Description: The lore of the item
Type: String List
itemFlags:
Description: The item flags of the item. Click here for a list of item flags
Type: ItemFlag List
enchantments:
Description: The enchantments that should be applied to the item. To set the enchantment level use the format ENCHANTMENT:LEVEL (DURABILITY:3). Click here for a list of 1.12.2 enchantments.
Type: Enchantment List
unbreakable:
Description: Whether the item should be unbreakable or not
Type: Boolean
itemOptions:
Description: All custom options that should be applied to the item. Below is a list with all item options
Type: String List
slot:
Description: The slot the item will be put in if specified. If you don't specify this, it will just be added to the inventory. Slots start from 0
Type: Integer

The custom item's name is the sections name. Example:
Code (YAML):
diamond: # item name
material: DIAMOND
slot: 3 # actually slot 4
Item Options:
DISABLE_INVENTORY_MOVING:
Description: This disables the item from being moved around the inventory.
DISABLE_DROP
Description: This disables the item from being dropped.
DISABLE_BLOCK_BREAK
Description: This disables breaking blocks with the item in the hand.
DISABLE_BLOCK_PLACE:
Description: This disables the item from being placed. This is only necessary when the item is a block.
DISABLE_CONSUME:
Description: This disables the item from being consumed by the player. This is only necessary when the item is food.
DISABLE_PVP:
Description: This disables PvPing with the item in the hand. There will then no damage be given.
tAHhVxk.png

Follow this guide to turn your custom items into join items.
It's really easy to use, and you can ditch CustomJoinItems.

First, create your custom item in the customitems.yml file. Read the explanation above to know how. Make sure to specify the slot of the item. You also have to make sure that you add the 'DISABLE_INVENTORY_MOVING' and the 'DISABLE_DROPPING' itemOptions.

Most join items perform commands for eg a join menu. You can also create a join menu with Additions.
Just add the command/menu or whatever other action to the action list of the item and when they click it, it will all happen :)

Once you've done all that, you go to the config.yml. There you add the [citem] action to the action list of the join event. Do it like this:
Code (YAML):

join:
actions:
- '[citem]youritem'
- '[msg]&bWelcome to our server, %player%!'

Make sure to replace 'youritem' with the name of your custom item.

Well, that was all. Just reload the plugin, join and you will see the item in your inventory in the specified slot. You won't be able to move or drop it.

x7JAnp8

Just like everything else, custom books are really easy to create. Just like the menu system, you have one file per book located in the books folder.
The name of the book is the name of the file excluding .yml.

These are the things you can add to the file to customize your book:
title:
Description: The title of the book.
Type: String
author:
Description: The author of the book
Type: String
generation:
Description: The generation of the book. Could be either ORIGINAL, TATTERED, COPY_OF_ORIGINAL or COPY_OF_COPY
Type: Generation (String)
pages:
Description: A list of pages for the book
Type: String List
slot:
Description: The slot where the book should be added to
Type: Integer
displayName:
Description: The displayName of the book (overrides the title)
Type: String
lore:
Description: The lore of the book item (overrides the author and generation which are in the lore)
Type: String List

So if you add all that. Your file will look like this:
YyCib2d


FgIdbM2.png

If you have PlaceholderAPI installed, you can use their placeholders.
If you have not, you're lucky! We've implemented some custom placeholders as an alternative for the PlaceholderAPI ones.

If you have MVdWPlaceholderAPI installed, you can also use their placeholders.

Per-Event placeholders:
%dropped% returns the item type of the dropped item. For the drop event only.
%fished% returns the fish type of the caught fish. For the fishing event only.
%killed% returns the player name when using in the kill event. It returns the killed entity's type in the entitykill event.
%item% returns the item's displayName. For the itembreak event.
%consumed% returns the consumed item's displayName. For the consume event.

Other languages:

All-over placeholders:
%player% returns the player's name.
%uuid% returns the player's uuid.
%player_name% returns the player's name.
%player_gamemode% returns the player's gamemode.
%player_x% returns the player's x coord.
%player_y% returns the player's y coord.
%player_z% returns the player's z coord.
%player_world% returns the player's world name.
%player_uuid% returns the player's UUID.
%player_is_op% returns whether a player is opped or not.
%player_health% returns the player's health.

8XXG2NE.png

[command]:
aliases: [player]
description: This will perform a command as the player itself.
example: '[player]say hi'
[message]:
aliases: [msg]
description: This will send a message to the player. Supports color codes.
example: '[message]&aWelcome &l%player%'
[console]:
description: This will perform a command as the console.
example: '[console]give %player% stick 1'
[title]:
description: This will send a title to the player. Use \n to switch to the subtitle. Supports color codes.
example: '[title]&a&Welcome!\n&7%player%'
[actionbar]:
aliases: [action]
description: This will send an actionbar to a player. Supports color codes.
example: '[actionbar]&6Welcome to our server!'
[json]:
aliases: [jsonmessage], [jsonmsg]
description: This will send a json message to a player. Use a generator like this to create json messages. Do not include the ["", and ] part of the json. So start with the {, and end with the }.
example: '[json]{"text":"Text","color":"green","hoverEvent":{"action":"show_text","value":{"text":"","extra":[{"text":"More text"}]}}}'

[everyone]:
description: This will perform the action for all online players instead of the event player only.
example: '[msg][everyone]&a%player% joined the server!'

:
description: This will center the text of a message. This only works with the [message] action.
example: '[msg]&aThis is a centered message'
[language]:
description: This will only perform the action if the player has a certain Minecraft language/locale. You can find a list of Minecraft locales here. If the player does not have that locale, the action will be skipped for that player. This action works with[everyone]. Use [language=""] as base, then put the target locale between the double quotes.
example: '[msg][everyone][language="en_us"]&aYour language is English (United States)'
[delay]:
description: This will delay the action with the specified amount of ticks (1 sec = 20 ticks). Use [delay=""] as base, then put the delay time, in ticks, between the double quotes.
example: '[msg][delay="100"]&7This message is 5 seconds delayed.'
[connect]:
description: This will connect the player to another server. This can only be used on a bungeeCord server and the specified server must be connected to it. The names of the server are the same as the ones in the config.yml on your bungee host.
example: '[connect]pvp'
[money]:
description: This will deposit/withdraw money to/from a player's balance. Vault must be installed in order to use this.
example: '[money]10', '[money]-10', '[money]+10'
[menu]::
description: This will open a custom menu. Just add the menu name (without .yml) after it.
example: '[menu]example'
[close]:
description: This will close the player's inventory. Do not use this after you specified the [menu] action. The menu will not open then.
example: '[close]'
[permission]:
description: This checks if the player has the specified permission and discontinues the action if the player doesn't have it.
example: '[msg][permission="myperm"]&aYou have the specified permission'
[vgroup]:
description: This checks if the player is a member of the specified group. Vault is required in order to use this action. Also, a permission plugin is needed which should be supported by Vault.
example: '[msg][vgroup="donator"]&dYou are a donator'
[chance]:
description: This adds chances to the action. This should be a percentual amount between 0-100. If you set it to 50, there will be 50% chance for the action to be performed.
example: '[msg][chance=50]&aThere is 50% chance of getting this message'
[sound]:
description: This plays a sound for a player. Make sure to play sounds matching your server version.
example: '[sound]NOTE_PLING'
[citem]:
description: This gives a custom item to a player
example: '[citem]myFirstItem'
[book]:
description: This gives a custom book to a player
example: '[book]myBook'
[safelanding]:
description: This teleports a player to the highest location at their x,z coordinates.
example: '[safelanding]'
[kick]:
description: Kicks a player
example: '[kick]&c&lU got kicked suckaa'
[teleport]:
description: Teleports a player to the specified location
example:
- '[teleport]player'
- '[teleport]x y z'
- '[teleport]World x y z'
- '[teleport]x y z yaw pitch'
- '[teleport]World x y z pitch yaw'
[fly]:
description: Toggles/Sets the flying of a player
example:
- '[fly]true'
- '[fly]'
[allowfly]:
description: Toggles the flying allowance of a player
example:
- '[allowfly]true'
- '[allowfly]'
[food]:
description: Sets the foodbar of a player
example: '[food]20'
[health]:
description: Sets the health of a player
example: '[health]20'
[kill]:
description: Kills a player
example: '[kill]'
[clear]:
description: Clears a player's inventory
example: '[clear]'
[clearchat]:
description: Clears a player's chat
example: '[clearchat]'
[weather]:
description: Sets the weather (of a world). Weather types are: SUN, RAIN and STORM.
example:
- '[weather]SUN'
- '[weather]World STORM'
[playerweather]:
description: Sets the player's personal weather. Weather types are: SUN, RAIN and RESET.
example: '[playerweather]RESET'
[time]:
description: Sets the time (of a world). Time type could either be DAY, NIGHT or some specific integer.
example: '[time]300'
[playertime]:
description: Sets the player's personal time. Time type could either be DAY, NIGHT, RESET or some specific integer.
example: '[playertime]RESET'
[gamemode]:
description: Sets the gamemode of the player. Gamemode can either be SURVIVAL, ADVENTURE, CREATIVE or SPECTATOR.
example: '[gamemode]CREATIVE'
[flyspeed]:
description: Sets the flying speed of the player. This should be an integer between 0 and 1! Do not use ints greater than 1.
example: '[flyspeed]0.5'
[walkspeed]:
description: Sets the walking speed of the player. This should be an integer between 0 and 1! Do not use ints greater than 1.
example: '[walkspeed]0.4'
[speed]:
description: Sets the walking/flying speed of a player. Depends whether a player is flying or not. This should be an integer between 0 and 1! Do not use ints greater than 1.
example: '[speed]0.3'
[chat]:
description: Chats a message as the player.
example: '[chat]I just got a reward'

[target]:
description: This sets the action target to the specified player(s). The action will then not be performed for the 'main' player. If you want multiple players, split them by adding a , between the names/placeholders. No spaces. This especially can be used in combination with command arguments.
example: '[target=%player%,LukasIsTheName][msg]&aYou are a target'
[rng]:
description: This isn't a real action. This turns into a number you can specify. RNG stands for Random Number Generator. You can specify one or two numbers. And it will then pick a random number between them. If you only specify one, it will go from 0 to your specified number. The / on the end of the tag is required!
example: '[rng=10/]' (picks from 0-10)
example: '[rng=10,100/]' (picks from 10-100)
[math]:
description: This calculates everything between the opening and closing math tag. The opening tag is [math] and the closing tag is [/math]. So the math tags will be turned into the solution.
example: '[msg]Solution 1*3+7-4 = &a[math]1 * 3 + 7 - 4[/math]'
[price]:
description: This checks if the player has the specified amount of money. Requires Vault. This does not withdraw any money from the player's account!
example: '[msg][money=100]&7You got a minimum of $100'
JAOv2A3


Latest updates

  1. 2.2.4

    2.2.4
  2. 2.2.0

    2.2.0
  3. 2.2.0

    2.2.0

Latest reviews

thanks for the leak!
could you update to the latest version? 1.16 support was added
update please
can update?
Doesn't work.
Tried to PM you and post in discussion but without any answer
Good :D, ty for the leak

Similar resources

Additions+ | Custom Commands, Menus, Books, Actions, Nametags and much more | 1.8-1.15 Dekomori
5.00 star(s) 1 ratings
Downloads
291
Updated
★ Vanilla Additions ★ | 192+ Custom Additions | Emerald Items | Double Axes | Ender Bow BlackSpigot.com
Custom Items with Custom Textures and Custom Abilities to enchance the Vanilla Survival Experience!
3.13 star(s) 8 ratings
Downloads
1,047
Updated
BlackSpigot General Chat
Rules Help Users
    H @ hakaneren112: cmon mods, be fast. I uploaded XCord v1.57..
    Top