AdditionsPlus | Custom Commands, Menus, Tablists, Scoreboards, Items & more | 1.8 - 1.19

 AdditionsPlus | Custom Commands, Menus, Tablists, Scoreboards, Items & more | 1.8 - 1.19 2.8.0

AdditionsPlus | Custom Commands, Menus, Tablists, Scoreboards, Items & more | 1.8 - 1.19
Native Minecraft Version:1.13Tested Minecraft Versions:
  • 1.8
  • 1.9
  • 1.10
  • 1.11
  • 1.12
  • 1.13
  • 1.14
  • 1.15
  • 1.16
  • 1.17
  • 1.18
  • 1.19
Source Code:https://github.com/lukasvdgaag/AdditionsPlus-APIContributors:GaagjesCraft Network Team (GCNT)Donation Link:https://paypal.me/gcntdev
[IMG]

Check this plugin out on MyGCNT!
Features (detailed description)
  • Custom Commands
    • Register commands
      • Registered commands show up while tab-completing.
      • Registered commands can also be executed from other plugins.
    • Command Arguments
    • Compatible with the console
    • Aliases {NEW}
    • Custom plugin names for tab-completion. {NEW}
    • Command suggestions when typing an invalid command. {NEW}
    • Permissions
    • No Permission message
    • Cooldowns
    • No Cooldown message
    • Actions
    • CUSTOM COMMAND GENERATOR [ONLINE]
  • Custom Menus
    • Custom menu title
    • Placeholders in menu title
    • Left-click actions for items
    • Right-click actions for items
    • Custom size
    • Custom open permission (message)
    • Custom open cooldown
    • Open actions
    • Close actions
    • Apply a command to the menu to open it in-game.
    • Register menu opening commands.
    • All items are configurable
    • Supports custom model data
    • Supports custom additions items using ci-ITEMNAME
    • Supports HeadDatabase/player heads
    • Supports ItemsAdder items
    • Enchantments
    • Each item can now have its own cooldown!
    • IN-GAME MENU CREATOR
    • CUSTOM MENU GENERATOR [ONLINE]
  • Scoreboards
    • Animated lines support! {NEW}
    • Supports (MVdW) PlaceholderAPI
    • Per World / General
    • Togglable per player
    • Anti-Flicker
    • Supports HEX and Gradient colors!
    • Up to 32 chars on 1.8-1.12
    • Unlimited characters on 1.13+!!
  • Nametags
    • Group-based
    • Animated
    • Permission-based
  • Create custom tablists
    • Per World
    • Supports (MVdW) PlaceholderAPI
  • Custom Player Names In Tab
    • Animated
    • Animations are in sync among all players with the same tag
    • Unlimited groups
    • Orders - Highest order gets to be the tag (0 is high)
    • Supports (MVdW) PlaceholderAPI
  • Create custom items
    • Cooldowns for items
    • Left-click actions
    • Right-click actions
    • Non-left-right-click actions
    • Everything of an item is configurable
    • Supports HeadDatabase/player heads
    • Supports custom model data
    • Supports ItemsAdder items
    • Enchantments
    • Item options for customizing your items even more, such as anti-moving, anti-drop, and more.
    • Colorable armor
    • Custom potions (effects, colors)
    • Supports custom skull models (base64) {NEW}
    • CUSTOM ITEM GENERATOR [ONLINE]
  • Create custom books
    • Book title
    • Book item name
    • Book item lore
    • Custom author
    • Custom generation (original, tattered, copy_of_copy, copy_of_original)
    • Inventory Slot (for giving the book)
    • Unlimited Pages
  • Interval actions
    • Random interval
    • Editable interval (in ticks)
    • Unlimited interval actions
  • Create custom signs
    • Supports color codes.
    • Supports PlaceholderAPI placeholders.
    • Per player placeholder support.
    • Actions when clicking the signs
  • Event Actions
    • 38 custom events
    • Perform actions when an event is being fired
    • Custom join message
    • Custom leave message
    • Custom Event API for Developers
    • CUSTOM EVENT GENERATOR [ONLINE]
  • Color Codes On Signs (&)
  • Color Codes In Anvils (&)
  • HEX Color support for all color-supported strings
    • Use the placeholder {c:#hex} (Example: {c:#42f5c5}text here)
  • Gradient Colors support for all color-supported strings on 1.13+:
    • Use the placeholder {#hex>}text{#hex<}.
  • Plugin hooks
    • PlaceholderAPI support
    • MVdWPlaceholderAPI support
    • Vault support
    • ProtocolLib support
    • HeadDatabase support
  • Plugin Event Integrations
  • Plugins Hooking Into Addititons+:
  • Developer API
  • 74 Actions
  • 1.8x - 1.19x support
  • 13 Built-in Placeholders
  • 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, /gamemode. Besides that, you can create a /calc command such as WorldEdit's one. You can also ditch that RandomTeleport plugin you have installed because you can generate a random number and teleport the players to that location safely.


[IMG]


The video above is uploaded by SoulStriker_.
Big thanks to him for showcasing the plugin.

[IMG]


AdditionsPlus does not have any hard dependencies. All plugins listed below are optional and bring extra features to the plugin.

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

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

Vaultis a Soft-Dependency. Install it to use the [money], [vaultgroup], [novaultgroup], and [price] action.

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

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

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

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

SkyWarsReloadedis a Soft-Dependency. Install it to use their custom events, and open their menus using the [menu] action.
Spoiler: SWR menu identifiers
ItemsAdder is a Soft-Dependency. Install it to use their items in the custom items and menus, and to use their sounds.


[IMG]

/Command - Command Description - Permission

/additions - Main command - additions.command
/additions togglescoreboard [player] - Toggle scoreboard - additions.command.togglescoreboard
/additions updatescoreboard [player] - Force update your scoreboard - additions.command.updatescoreboard
/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
/additions testaction <action> - Performs an action string as the sender. - additions.command.testaction

/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

The command below can be used to manage custom commands. Please note that if you have a command with more than one argument, you will have to put it between double quotes for the <name> arguments in the commands. For creating, removing, or getting all actions, you don't need to put it between quotes. The plugin will then recognize it as one argument.
Examples:
Custom command: hello
Permission command: /customcommand setpermission hello my.perm

Custom command: hello there everyone
Permission command: /customcommand setpermission "hello there everyone" my.perm

/customcommand create <name> - Create a new command
/customcommand addaction <name> <action> - Add an action to be executed when a player performs the command
/customcommand setnopermission <name> <message> - Set the message that will be displayed when the player doesn't have the required permission
/customcommand setcooldown <name> <cooldown in ticks> - Set the cooldown of the command
/customcommand setpermission <name> <perm> - Set the required permission for a command
/customcommand setregistered <name> <true/false> - Enable whether the command should be registered or not
/customcommand list - Get a list of all the commands
/customcommand removeaction <name> <number> - Remove an action. The actions can be found by using /customcommand actions <name>
/customcommand actions <name> - Get all actions from a command
/customcommand remove <name> - Remove a command
/customcommand setcooldownmessage <name> <message> - Set the message that will be displayed when the player udes the command more than once within the cooldown time.

/custommenu create <name> Create a new menu in-game.
/custommenu discard <name> Discard the menu you're currently are making. THIS CAN'T BE UNDONE!
/custommenu save This will export your current inventory, which you created, into a menu file. Reload the plugin to make it load.

Please note that if you stop the server or disable the plugin, all menus that players were making will be gone!
[IMG]

Below are all valid event identifiers. If you want to add any of these events to your server, you simply need to add it to your events.yml file. An example is:
Code (Text):
join: # this is the identifier[/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT]




actions: # the list of actions to perform when this event is fired

- '[msg]&aWelcome to the server, &b %player%&a!'











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

resourcepack-installed:

description: Fired when a server resource pack has successfully been installed.

resourcepack-failed:

description: Fired when a server resource pack has failed to download.

resourcepack-accepted:

description: Fired when a player accepted to install the resource packs.

resourcepack-declined:

description: Fired when a player declined to install the resource packs.

blockbreak:

description: Fired when a block got broken by a player. This is a special event because this event can be also be used for specific material types only (idea by @SoulStriker_). You do that by using blockbreak-MATERIAL_TYPE (blockbreak-STONE).

teleport:

description: Fired when a player teleports.

placeholders:

- %from_x% : previous X location.

- %from_y% : previous Y location.

- %from_z% : previous Z location.

- %from_world% : previous world name.

- %to_x% : new X location.

- %to_y% : new Y location.

- %to_z% : new Z location.

- %to_world% : new world name.

world-change:

description: Fired when a player switches worlds.

placeholders:

- %from_world% : previous world name.

- %to_world% : new world name.



In the spoilers below are the events that are from another plugin.

Spoiler: MinetopiaSDB

Spoiler: ASkyBlock

Spoiler: SkyWarsReloaded

Spoiler: ItemsAdder

By default, the events.yml only contains a few events. You can remove everything you want; everything is optional. All events above are valid event ids. Plugins have the ability to add their own events to AdditionsPlus.



Some events contain extra options that are optional to add. An example is the join event which allows you to change the joinMessage which will override the bukkit join message.

Code (Text):



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: []



[IMG]


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 (Text):



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 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 (Text):



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. Use %time% in the cooldownMessage for the remaining time.

The correct usage of these features is:

Code (Text):



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'



Version 2.0.0 allows you to add aliases to commands. Just add the aliases to the command configuration and it should work fine. This requires the command to be registered. This will happen automatically if you have set any aliases.

Code (Text):

msg:

aliases:

- tell

- whisper



It is required to add the option register: true to the command configuration in order to register it to bukkit. It will then pop-up in the tab complete, and other plugins can recognize it.



Spoiler: Result



[IMG]


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 into 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: false

register_open_command:

Description: Whether you want to register the open command to bukkit. The console will then be able to open it for a player as well with '/<command> [player]'.

Type: Boolean

Required: false

cancel_closing:

Description: If set to true, the player will not be able to close the menu and it can only be closed by using the [close] action.

Type: Boolean

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:

Spoiler: Example Menu

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 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:

Spoiler: Example Menu

Oof. You now know how to create a menu
:)




[IMG]


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 about 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 another click action is being performed than left- /right-click.

Type: String List

left_click_actions:

Description: A list of actions that will be performed when you left-click the item.

Type: String List

right_click_actions:

Description: A list of actions that will be performed when you right-click the item.

Type: String List



custom_model_data:

Description: Custom value that allows you to change the item icon through a texture pack.

Type: Number/String

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 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

skull_data:

Description: Additional base64-encoded skull data that will be applied to player heads. The material needs to be some kind of player skull for this to work.



The custom item's name is the sections name. Example:

Code (Text):

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.

[IMG]


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 learn 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 events.yml. There you add the [citem] action to the action list of the join event. Do it like this:

Code (Text):

join:

actions:

- '[citem]youritem'

- '[msg]&bWelcome to our server, %player%!'

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



Custom Books



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:

[IMG]




[IMG]


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:

Spoiler: Dutch

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.



[IMG]


Because the page is getting too long, we've moved the list of actions and their descriptions and usage to our own website.

Click here to view the list of actions (currently 63).



[IMG]

Latest updates

  1. N/A

    N/A

Similar resources

!Crates Reloaded! 4 Custom Crates! BlackSpigot.com
0.00 star(s) 0 ratings
Downloads
480
Updated
#Rekt - With Custom Homepage! K
5.00 star(s) 3 ratings
Downloads
575
Updated
BlackSpigot General Chat
Rules Help Users
    Foiapomba123 @ Foiapomba123: Ahh, sorry
    Top