
ItemJoin
Get custom items on join.
- Загрузки
- 17K
- Подписчики
- 48
- Обновлён
- 29 марта 2026 г.
- Лицензия
- LGPL-3.0-only
Опубликован 13 декабря 2022 г.
Please see Troubleshooting to resolve your problem.
This plugin grants the ability to give highly custom items to players upon joining, respawning, world-switch, region-enter, region-exit, first-join, and first-world. This is a multi-purpose plugin for giving items to players on a hub server, minigame servers, or even competitive servers such as survival, factions, skyblock, and other alternative game settings. You can set up an infinite amount of items for any specific world(s) you define. Players can be given the item every time upon joining or limit them to a set amount so they do not have any duplicate items. There are so many possibilities and limitless features but only if you want that ability. If there is a feature you are looking for it is likely to have already been implemented.
This plugin can be used with Chest Commands, BossShop, DeluxeMenus, or even CustomGUI which will allow the creation of menus made of items which ItemJoin could have an item with a command bound to open these menus or to execute commands on a compass to warp players to specific locations. There are no specific restrictions for how ItemJoin can interact with other plugins, as long as the plugin of interest has commands to execute their objectives such as /menu, then ItemJoin can utilize that as an ItemCommand.

This plugin is unique for its high functionality and hyperactive developer, if there is a feature that is missing or a new bug in the latest update it will be resolved swiftly. Out of the very few similar category plugins that give items, this is currently the only plugin out there that gives the player an item of their choice in a specific world, so players do not carry items to a black-listed world. If the world is not defined under the custom item players will not be given that item in the unspecified world although, items will transfer worlds unless it has been restricted, clear on world-switch, or use a multi-inventory plugin. ItemJoin is always expanding and adding new quality-of-life features, other plugins are either out of date, have inactive developers, missing features, or limiting items to a specific world is broken! ItemJoin was built on the idea of resolving these problems, to become the ultimate custom items on join plugin!



- Individual items can be defined with specific itemflags which give the item special utilization and modified values.
- Each item can be set with specific trigger events called triggers which will determine when the item will be given.
- Items can be specified with their own specific ItemCommands which can be executed as an instance console, player, server, message, and more available in the wiki.
- ItemCommands can be executed with certain actions if defined, multi-click, left/right-click, physical, and/or inventory click, which will allow the user to define different commands for each action.
- Executed commands can be charged an economical cost and put on a custom cooldown with custom sounds and particles.
- Set custom skull textures and skull owners to player head items.
- Supports custom features for player heads, tipped arrows, books, banners, fireworks, leather armor, map items, and more.
- Every item slot is supported, including armor slots and crafting slots.
- Restrict certain items to a player's ip-address, reducing the chances of item abuse.
- Give vanilla unmodified items as well as vanilla items that have the functionality of some defined features.
- Dynamically updates items when a placeholder is changed.
- Toggle blocking ALL item movement or ALL item pickups in specific worlds.
- Items can be limited to specific gamemodes.
- Specify custom item-usage cooldowns for items that have interaction events such as ender pearls or even food items.
- Items can be given a probability of players receiving an item, a random chance.
- General commands can be executed upon join, first-join, and world-switch.
- Custom enchants and unsafe levels.
- Toggle between clearing ALL or only ItemJoin items upon joining or world-switch.
- Toggle overwriting existing items in the player's inventories.
- Supports PlaceholderAPI, see the valid placeholders.
Commands
You can either use /ItemJoin or /IJ to execute a command.
itemjoin:
description: Shows the plugin information, specific version, and author including a redirect
to the help menu.
permission: itemjoin.use
aliases: [ij]
usage: |
/itemjoin
Example: /itemjoin
itemjoin help:
description: Displays a page of the available help menu showing the available commands.
permission: itemjoin.use
usage: |
/itemjoin help
Example: /itemjoin help
Example: /itemjoin help 2
Example: /itemjoin help 3
Example: /itemjoin help 4
Example: /itemjoin help 5
Example: /itemjoin help 6
Example: /itemjoin help 7
Example: /itemjoin help 8
Example: /itemjoin help 9
itemjoin reload:
description: Reloads all plugin configuration files and caches any new data.
permission: itemjoin.reload
usage: |
/itemjoin reload
Example: /itemjoin reload - Configuration(s) Reloaded!
itemjoin menu:
description: Opens a GUI Menu to allow the view, modification, and creation of all custom items.
permission: itemjoin.menu
usage: |
/itemjoin menu
Example: /itemjoin menu - The creator menu has been launched!
itemjoin info:
description: Displays any needed information for the item you are holding, such as material type
and in legacy versions the data value.
permission: itemjoin.use
usage: |
/itemjoin info
Example: /itemjoin info - The item type is WOODEN_SWORD.
itemjoin world:
description: Shows you what world you are in, useful for debugging purposes.
permission: itemjoin.use
usage: |
/itemjoin world
Example: /itemjoin world - You are in the world Pandora_the_end.
itemjoin list:
description: Shows you what items are defined and their respective enabled worlds.
permission: itemjoin.list
usage: |
/itemjoin list
Example: /itemjoin list - Current defines items are map-item, ultra-item.
itemjoin updates:
description: Checks for any available updates for the plugin.
permission: itemjoin.updates
usage: |
/itemjoin updates
Example: /itemjoin updates - You have requested to check for available plugin updates!
itemjoin upgrade:
description: Forces the plugin to update to the latest version if a new version is found,
a server restart will be required for changes to take effect.
permission: itemjoin.upgrade
usage: |
/itemjoin upgrade
Example: /itemjoin upgrade - You have requested to force update the plugin.
itemjoin permissions:
description: Displays a page of every permission node showing which permissions are
enabled/disabled for the player, including custom item nodes.
permission: itemjoin.permissions
usage: |
/itemjoin permissions
Example: /itemjoin permissions - You have the permissions itemjoin.reload.
Example: /itemjoin permissions 2 - You have the permissions ultra-item.
itemjoin get:
description: Gives the specified custom item and the amount you specified to the player's inventory.
permission: itemjoin.get, itemjoin.get.others
usage: |
/itemjoin get
Example: /itemjoin get Ultra - You have received the item [Ultra]!
Example: /itemjoin get Ultra 12 - You have received 12x of the item [Ultra]!
Example: /itemjoin get Ultra RockinChaos - You have given the item [Ultra] to RockinChaos!
Example: /itemjoin get Ultra RockinChaos 8 - You have given 8x of the item [Ultra] to RockinChaos!
itemjoin getOnline:
description: Gives the specified custom item and the amount to all online players.
permission: itemjoin.get.others
usage: |
/itemjoin getOnline
Example: /itemjoin getOnline Ultra - You have given the item [Ultra] to RockinChaos!
Example: /itemjoin getOnline Ultra 8 - You have given 8x of the item [Ultra] to RockinChaos!
itemjoin getall:
description: Gives all custom items to the specified player.
permission: itemjoin.get, itemjoin.get.others
usage: |
/itemjoin getall
Example: /itemjoin getall - You have received all of the ItemJoin items.
Example: /itemjoin getall RockinChaos - You have given RockinChaos all of the
ItemJoin items that are available.
itemjoin remove:
description: Removes the specified custom item and the amount you specified from the player's inventory.
permission: itemjoin.remove, itemjoin.remove.others
usage: |
/itemjoin remove
Example: /itemjoin remove Ultra - You have removed the item [Ultra]!
Example: /itemjoin remove Ultra 12 - You have removed 12x of the item [Ultra]!
Example: /itemjoin remove Ultra RockinChaos - You have removed the item [Ultra] to RockinChaos!
Example: /itemjoin remove Ultra RockinChaos 8 - You have removed 8x of the item [Ultra] to RockinChaos!
itemjoin removeOnline:
description: Removes the specified custom item and the amount from all online players.
permission: itemjoin.remove.others
usage: |
/itemjoin removeOnline
Example: /itemjoin removeOnline Ultra - You have removed the item [Ultra] from RockinChaos!
Example: /itemjoin removeOnline Ultra 8 - You have removed 8x of the item [Ultra] from RockinChaos!
itemjoin removeall:
description: Removes all custom items from the specified player.
permission: itemjoin.remove, itemjoin.remove.others
usage: |
/itemjoin removeall
Example: /itemjoin removeall - You have removed all of the ItemJoin items from your inventory.
Example: /itemjoin removeall RockinChaos - You have removed all of the ItemJoin items from RockinChaos.
itemjoin enable:
description: Enables the use of custom items for all players or specified players globally
or specified player and world.
permission: itemjoin.enable, itemjoin.enable.others
usage: |
/itemjoin enable
Example: /itemjoin enable - You have globally enabled custom items.
Example: /itemjoin enable RockinChaos - You have enabled custom items for RockinChaos!
Example: /itemjoin enable RockinChaos world_the_end - You have enabled custom items for RockinChaos
in the world world_the_end!
itemjoin disable:
description: Disables the use of custom items for all players or specified players globally
or specified player and world.
permission: itemjoin.disable, itemjoin.disable.others
usage: |
/itemjoin disable
Example: /itemjoin disable - You have globally disabled custom items.
Example: /itemjoin disable RockinChaos - You have disabled custom items for RockinChaos!
Example: /itemjoin disable RockinChaos world_the_end - You have disabled custom items for RockinChaos
in the world world_the_end!
itemjoin purge:
description: Purges ALL data or the specified data from the database file for ALL players
or the specified player.
permission: itemjoin.purge
usage: |
/itemjoin purge
Example: /itemjoin purge - You have purged ALL data from the database file!
Example: /itemjoin purge first-join - You have purged ALL first-join data from the database file!
Example: /itemjoin purge first-world - You have purged ALL first-world data from the database file!
Example: /itemjoin purge ip-limits - You have purged ALL IP-limit data from the database file!
Example: /itemjoin purge first-join RockinChaos - You have purged ALL first-join data of RockinChaos
from the database file!
Example: /itemjoin purge first-world RockinChaos - You have purged ALL first-world data of RockinChaos
from the database file!
Example: /itemjoin purge ip-limits RockinChaos - You have purged ALL ip-limit data of RockinChaos
from the database file!
Please note; permissions are case-sensitive, including the world names!
itemjoin.*:
description: Grants access to all aspects of the plugin, including every permission node.
default: false
children:
itemjoin.all: true
itemjoin.all:
description: Grants access to all aspects of the plugin, including every permission node.
default: false
children:
itemjoin.use: true
itemjoin.reload: true
itemjoin.menu: true
itemjoin.updates: true
itemjoin.upgrade: true
itemjoin.permissions: true
itemjoin.list: true
itemjoin.purge: true
itemjoin.get: true
itemjoin.get.others: true
itemjoin.remove: true
itemjoin.remove.others: true
itemjoin.enable: true
itemjoin.enable.others: true
itemjoin.disable: true
itemjoin.disable.others: true
itemjoin.bypass.inventorymodify: false
itemjoin.use:
description: Grants access to basic plugin commands.
default: true
itemjoin.menu:
description: Grants access to the menu command.
default: false
itemjoin.reload:
description: Grants access to the reload command.
default: false
itemjoin.updates:
description: Grants access to the updates command.
default: false
itemjoin.upgrade:
description: Grants access to the upgrade command.
default: false
itemjoin.permissions:
description: Grants access to the permissions command
default: true
itemjoin.list:
description: Grants access to the list command.
default: false
itemjoin.purge:
description: Grants access to the purge command.
default: false
itemjoin.get:
description: Grants access to the basic get commands.
default: false
itemjoin.get.others:
description: Grants access to all get commands that could affect other players.
default: false
itemjoin.remove:
description: Grants access to the basic remove commands.
default: false
itemjoin.remove.others:
description: Grants access to all remove commands that could affect other players.
default: false
itemjoin.enable:
description: Grants access to the basic enable command.
default: false
itemjoin.enable.others:
description: Grants access to all enabled commands that could affect other players individually.
default: false
itemjoin.disable:
description: Grants access to the basic disable command.
default: false
itemjoin.disable.others:
description: Grants access to all disable commands that could affect other players individually.
default: false
itemjoin.bypass.inventorymodify:
description: Players with this permission will bypass any item movement restrictions.
default: false
These are the permission(s) required for players who are not server administrators to receive the item(s).
itemjoin.<world>.<item>:
description: Gives permission to get a specific item in a specific world.
Replace the <item> argument with the name of the specified item and
the <world> argument with the name of the world to receive that item.
itemjoin.<world>.*:
description: Gives permission to get all items from the specified world.
Replace the <world> argument with the name of the world to receive that item.
If you want to have a custom permission node for each item, you can set up individual ones which will supersede the default node shown above. All you have to do is add the permission node to your item, in this case, we will call it itemjoin.specialty but it can technically be anything such as chicken.fingers. The permission you choose will need to be given to the player and added to the item in this format permission-node: 'itemjoin.specialty'. Lastly, custom permission nodes can be used interchangeably with the default permission nodes in the instance where you only want a few items to have custom permission nodes.
Example(s):
itemjoin.world_the_end.*
itemjoin.world_the_end.ultra-item
items:
example-item:
id: DIAMOND_SWORD
slot: 0
permission-node: 'itemjoin.specialty'
English Tutorial(s)
Italian Tutorial(s)



Does ItemJoin have its own Custom API?
- Yes, ItemJoin does in fact allow other plugins to hook into it if needed. All API options are located under me.RockinChaos.itemjoin.api.ItemJoinAPI.
- You can see all available methods here; Available Methods.
- If you wish to see a method added feel free to submit a request on GitHub!
Does ItemJoin support placeholders?
- Yes, ItemJoin has few placeholders by default but you can hook ItemJoin with PlaceholderAPI for ultimate placeholders! Just set PlaceholderAPI to true in the config.yml
Does ItemJoin support multiple worlds?
- Yes, ItemJoin gives items to each specified world in the items.yml. Any server worlds not defined in the items.yml will not receive items. You can also have ItemJoin hook into Multiverse-Core & Multiverse-Inventories so you can have different items per world without clearing the player's inventory when they switch worlds. Just set Multiverse-core and Multiverse-Inventories to true in the config.yml.
Can I get items on first-join only?
- Yes, ItemJoin has extreme compatibility with the first join mode. All you have to do is simply add the first-join itemflag to each item in the items.yml to get that item on the first join only. You can make it so only a set of items are given on first-join and others are given every time, or simply just make it so all items on first-join. If you want to receive the item every time you join again, just simply remove the first-join itemflag from the item.
Can I limit items to specific players' ip-address?
- Yes, ItemJoin has extreme compatibility with ip limit mode. All you have to do is simply add the IP-limit itemflag to each item in the items.yml to limit those items to the specific player's ip. You can make it so only a set of items are given in an IP-limit and others are given regardless of the ip-address, or simply just make it so all items are in a limit. You can also specify the first-join itemflag to work alongside the IP-limit itemflag to limit the item's ip-address as well as give them upon first joining only.
Does ItemJoin have any dependencies?
- ItemJoin has ZERO required dependencies but there are some optional ones that can make your experience much better!
- You can learn more about these APIs / Hooks on the wiki page.
- Vault - You can hook into Vault to use your economy on ItemJoin's commands!
- PlaceholderAPI - You can use all of these placeholders on any part of ItemJoin! Whether it's commands, name, lore, skull-owner, book-lore, authors, etc! All parts of ItemJoin are hooked into PlaceholderAPI.
- Multiverse-Core - Only used for Multiverse-Inventories as ItemJoin already has multi-world support without this.
- MyWorlds - Allows easy multi-world support.
- Multiverse-Inventories - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management.
- xInventories - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management.
- PerWorldInventory - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management. I have recently seen this plugin start to pop up everywhere and it seems like an amazing alternative to Multiverse-Inventories.
- PerWorldPlugins - As it is not recommended since ItemJoin is disabled in any world that is not defined under world-list but, ItemJoin does support PerWorldPlugins if you happen to have it running on your server for some reason and ItemJoin will be disabled in worlds that are not allowed by PerWorldPlugins.
- AuthMe - Items will be given after the player types the login command and fully registers to AuthMe.
- WorldGuard - Items will be given after the player enters the specified region defined under each item, upon leaving the region the items will be revoked. This allows the creation of region-only items and can only be used in the specified regions unless defined otherwise.
- TokenEnchant - Items will now be able to be given specific TokenEnchantments when receiving them.
- BetterNick - If items for some reason end up breaking and you use this plugin, setting this to true could resolve issues with items not working properly. This allows ItemJoin to easily find your original player name and UUID if you are nicknamed using BetterNick.
- HeadDatabase - Items can now hook into HeadDatabase and fetch player heads from there using .
https://github.com/RockinChaos/ItemJoin/wiki
A massive thanks to those who have donated to help support the plugin's development. It is not the amount donated that matters, it is the fact that these supporters donated to support what they love. Even the smallest donation means so much because it grants the feeling that I have created something that is wanted. Every donation inspires and gives me the motivation to keep this plugin alive and thriving.
<Awesome Crafters>
TheRobLP => $168.04USD
momoservertw => $116.00USD
Terbin => $20.00USD
Siuan => $20.00USD
JackScurvy => $10.00USD
Malum => $10.00USD
MrPranklez => $10.00USD
Jaocb => $5.00USD
Kubson_19 => $5.00USD
Graatvis => $3.00USD
TheColdEmerald => $1.00USD
Vxrrxckter => $1.00USD
CloneMC => $0.55USD
Slimedog => $UNKUSD
piggalotgaming => $UNKUSD
XYBlue => $UNKUSD
Moemilords => $UNKUSD
Askarion => $UNKUSD
</Awesome Crafters>
★ Requested Changes ★
Please Pm me with feature requests as I will always look them over and get back to you.
Crossed Out requests mean that they have been completed.
no.1) ........

Ченджлог
6.1.7Релиз1.21.9, 1.21.10, 1.21.11 · 29 марта 2026 г.
Added:
- Support 1.21.11 (8858957)
- UUID String for skull owner (57fbb5d)
- You can now specify the UUID of the player skin as the skull-owner to be set for the item.
- translatable update messages (a427733)
- itemflag messages (b7cedd5)
- You can now specify messages that will be sent when an itemflag is triggered.
- Support has been added for the following itemflags; placement, inventory-modify, cancel-equip, not-hat, cancel-events, item-store, item-modifiable, item-craftable, item-repairable, ip-limit, death-drops, self-drops, and erase-drops.
- A message is defined by simply specifying the itemflag name
-messagee.g:self-drops-message: '&cYou cannot drop items!'
Fixed:
- Folia AuthMe support (19a14ea)
- item-repairable itemflag (c16b966)
- Shift+Clicking the item into a crafting table would occasionally result in the item not being returned to the player.
- death-keep for crafting items (a5e1ff7)
- Items were being incorrectly dropped when the gamerule keepInventory was true.
- If dying fast enough, it was also possible to have the items be dropped on death.
- incorrect cooldown for on_hold commands (a7876b7)
- item-store itemflag storing in pots (c736778)
- item-store will now properly block the storage of items in
FLOWER_POTandDECORATED_POT.
- item-store will now properly block the storage of items in
- folia delay ticks exception (c0b78bc)
- windowId on paperspigot (4f0728a)
- database failure when isClosed not supported (63590ef)
- Fixes a major bug that prevented data from being fetched from the database when the isClosed method wasn't implemented in the specific sql driver version.
- The fallback is to assume connections aren't closed to allow the statement to try executing. If it fails, the connection will then be assumed closed and tries to get the connection again.
- rendering menu pages that do not exist (cec60a0)
- updateInventory (9abb123)
- Fixes the updateInventory function in Legacy Minecraft Versions due to incorrectly not using the windowId.
- This fixes ghost items when viewing an open container.
- implement proper reflections caching (ed16760)
- Improves performance, especially on papers new on-the-fly remapping, which is not performant.
Changed:
- implement proper reflections caching (32820bd)
- Improves performance on server forks utilizing on-the-fly remapping.
- rewrite item animation handler (6ba7f8a)
- Fixes item animations still being ran when the animations were suppose to be closed.
- Fixes duplicate animation tasks when using
/ij removeand/ij getcausing animation flicker. - Fixes animation flicker when two players are viewing the same inventory.
- The item(s) will now animate based on the first viewing player.
- Fixes the accidental closing of animations when items are removed or lost. Items could exist in containers so we should continue trying to animate.
- support 1.21.4+ pick item handling (3da6ac7)
- improve handling crafting (e2194bc)
Removed
6.1.6Релиз1.20, 1.21, 1.21.10 · 9 ноября 2025 г.
Added:
- Support 1.21.9/1.21.10 (fa6e625)
- Support Crafters (a33395d)
- Custom Recipes will now be properly handled by crafters.
Fixed:
- toggle command overwriting items (631d3bd)
- Toggling an item will no longer overwrite items unless the item explicitly allow overwrite or global overwrite is enabled.
- toggle command tab completion (fe9e9b2)
- Fixes tab completion not functioning for toggle commands.
- cache isPaper and isFolia (e051413)
Changed:
- cache isPaper and isFolia (9da46a3)
6.1.5Релиз1.20, 1.21, 1.21.8 · 24 сентября 2025 г.
Added:
use-cooldown visual (61868a0)
- The use-cooldown is now visually shown on the custom item in server versions 1.21.3+.
Support 1.21.8 (aaa02bf)
Support 1.21.7 (abd6b80)
#getNodes API method (120cd19)
- Returns a list of all defined itemNodes.
Fixed:
multi-slot items (f61f21c)
- Fixes multi-slots being ignored, only the first slot was being given.
zero commands cost in menu (bef06ad)
delayed item commands on paper (04b3b67)
- Paper changed to region schedulers which was causing a noticeable delay when running item commands.
use-cooldown bugs (6e60579)
Was not well designed causing a cooldown to trigger for the wrong item or to trigger when it shouldn't have. Use cooldown is now triggered properly upon the respective action.
null paper edge case (8794941)
properties (01c436a)
- Fixes properties being cut off when saving. Fixes tag list errors on 1.20.5+.
vanilla-control itemflag (46f3161)
- Wasn't properly being identified as a custom item when a name and lore were not specified.
item-store trade errors (9062aa8)
- Was throwing errors on older server versions.
permissions detected as clickable links (a050e98)
region-enter duplicating items (7fe7d68)
dummy attributes (c3514cf)
Changed:
improve region handling performance (d9068d0)
- Will help avoid expensive calls when they're unnecessary.
bump commons-lang (7ca0e85)
improve API docs (12db9ed)
- Clarifies some functionality of the API functions
Remove:
- commons-lang (f0c6c7b)
6.1.4Релиз1.19, 1.20, 1.21.6 · 23 июня 2025 г.
Added:
- Support 1.21.6 (7cf4c15)
- model components (5d7162a)
- You can now specify model components for the 1.21.4+ resource packs.
- You can specify multiple values, example;
strings: 'chest_old, tutorial_sword' - Example of all available options;
model-components:
strings: 'chest_old'
colors: ORANGE
flags: 'true'
floats: '20.0'
Fixed:
- always-give itemflag (c04e592)
- The proper function of the always-give itemflag is to ALWAYS give the item upon performing a trigger or getting the item via commands, regardless of the player already having the item or not. This wasn't being respected and was not giving the item in the designated slot FIRST before adding it to the next available if the designated slot was occupied.
- incorrectly detecting empty slots (1d1d8e5)
- Fixes an issue with Paper where empty slots are no longer null, instead they are Material.AIR.
6.1.3Релиз1.19, 1.20, 1.21.5 · 29 мая 2025 г.
Added:
- support custom sounds (3af8c5f)
- Sounds from resource packs are now supported for commands-sounds and teleport-sound.
- Support 1.21.5 (00e7936)
Fixed:
- economy balance checking (3617208)
- Now only checks the players economy balance if the custom item is using a commands-cost. Fixes edge case errors with users not using economy while having a registered economy plugin in a disabled state.
- pale_oak_boat enum not present (0e0ceaa)
- Issue was with paper or related forks..
- item-store itemflag with villager trades (65fe312)
- Now properly prevents the trading of items with the item-store itemflag.
- Wait for MySQL connection (9c40ad6)
- Players were able to join the server before the MySQL connection was established, resulting in players getting items they had already received. When the server is starting up, it will now wait for the plugin to successfully establish MySQL connection. Fixes issues with first-join and ip-limit.
- interact offhand commands (0d1c6fa)
- Certain command executors like damage and swap-item were non-functional for the offhand slot when using the interact command action.
- ItemMeta is not PotionMeta (54d6cd1)
- 1.21.5 Paper Spigot deobfuscation (90230a1)
- SkinsRestorer proxy mode (a6b191c)
- Fixes the console spam regarding SkinsRestorer being in the unsupported proxy mode.
Changed:
- update deprecated (8d76a2a)
- Adds support for the new 1.21.5 methods.
- remove trim patterns enum (a5b1dc9)
- This isn't needed and was very convoluted. The trim pattern is literally just the NamespaceKey name + "_ARMOR_TRIM_SMITHING_TEMPLATE". Not defining static values allows us to dynamically support new patterns.
- French translation corrections (94af689)
- Corrected by wokonago on Discord.
6.1.2Релиз1.19, 1.20, 1.21.4 · 19 февраля 2025 г.
Added:
- 1.21.4 Support (1362df8)
- custom item models (c9ba735)
- model-data now supports model names in Minecraft 1.21.4+, versions below this will still take the numerical input.
- Example;
model-data: example:custom_sword
- saving NBT Properties (519a776)
- When saving an item via the in-game menu, NBT Properties will now be pulled. This is VERY helpful as it adds support for plugins like ItemsAdder, ExecutableItems, and other custom item plugins without having to utilize their API (manually adding support).
- nbt package nesting (c1aafc3)
- NBT Properties now support nesting, so you can implement keys inside a package.
- A package is defined by specifying it as a route, e.g package.key. Example with a key having no package and two keys with a package.
- Example;
properties: 'itemsadder.id:icon_next_orange, itemsadder.namespace:_ianternal'
- dyeing leather horse armor (1f13d52)
- Minecraft versions 1.14+ now supports dyeing leather horse armor. The functionality is identical to leather armor.
- FIRST-WORLD active-commands tigger (d0f0a85)
- Command(s) will be executed in every specified world upon entering the world.
Fixed:
- major paper spigot packet issue (7f5e34e)
- Was causing the selected hotbar item to become "latched" but only server-side, this was not visible on the client causing various bugs.
- NBT Properties Nesting/Listing (7e487b0)
- This... never functioned from day 1... just randomly noticed this wasn't working....
- chestsort indexoutofbounds (6b4e03d)
- Would occur when other plugins utilize the ChestSort API with an inventory lacking viewers. Now these calls will simply be ignored since they can't be handled anyways.
- folia item commands (6696fb2)
- dropping items running commands (3264876)
- If you dropped an item with an interact command while holding it, the command had a chance of being ran. Recent changes broke the old check method for drops resulting in the drops check being ran after the interact event already triggered.
- database pipeline (a61a596)
- Various fixes that should help improve database connectivity to prevent executions while the connection is refused.
- move-next loading legacy methods (c346e55)
- Was causing major lag when the first player joins the server as Spigot was force loading unsafe legacy methods as a result of #setData being called for the move-next itemflag. Furthermore this lag could result in the loss of the item being moved.
- improved %player_interact% accuracy (1581b21)
- The value wasn't being passed from events that directly include this variable. No need to calculate when we already have the player.
- database columns (ea8be06)
- Changed the larger varchar to text to force MySQL servers to use the max 60k length.
- table purging (a9f3f5e)
- Tables failed to purge if a player argument was missing.
- use-cooldown (6c8d3f0)
- Simply wasn't working with entities like ender pearls. It only was respecting fireworks and block placements.
- data saving to database (3cc56b3)
- Larger inventories were failing to save to the database due to the limited character size.
- crafting definition (735359a)
- old enum resolving (9ac611f)
- 1.21.3 contained a change to replace old enums with the registry, this resulted in no longer being able to resolve the old enum names. A change has been implemented to attempt to resolve the old names but it likely will stop working in the future.
- return items compression (465739e)
- Some MYSQL hosts couldn't handle the large Base64 string so it is now compressed to half its original size.
- return items (7288016)
- This simply wasn't working, items were being cleared after these items are returned instead of before.
- cancel-equip armor (1984055)
- hide-attributes itemflag (50fea47)
- Paper changed their ItemFlag functionality in 1.20.5 to be different than Spigot. This change made it impossible to hide default attribute values without setting dummy data.
- cross-platform experimental features (26a4cca)
- Experimental features added by Spigot are sometimes missing in other forks like Purpur.
Changed:
6.1.1Релиз1.20, 1.21, 1.21.3 · 24 ноября 2024 г.
Added:
- 1.21.2/1.21.3 Support (0953236)
- first-wild trigger (1ac6f2d)
- Gives the item once upon the player joining for the first time. It will also give the item to the player every time they respawn as long as they didn't respawn at a bed or anchor.
- respawn-point trigger (b073f20)
- Gives the player the item upon respawning as long as they respawned at a bed or anchor.
Fixed:
- memory usage (19500db)
- respawn trigger(s) (4d99408)
- deprecated compatibility (cd7e1a8)
- revealing ghost items (deeaec3)
- CarbonSpigot Support (38b34c7)
- Implements a fallback for when the #isEmpty method is missing from the Bukkit Inventory.
- Menu ConcurrentModificationException (2ba14c3)
- null item when animating (c5105b4)
- Sometimes animations would cause an item to return null.
- invisible menu items (f8edb6f)
- disabled regions (9f6364d)
- Metrics Logging (6e0b69e)
- Setting Metrics-Logging to false in the config.yml ended up doing nothing because the value wasn't being checked programmatically.
- menu saving (3e26789)
- Trying to save a modified or new custom item via /itemjoin menu would incorrectly fail when an item count or command cost was not specified.
- region messages (8e510a6)
- Region triggers for custom items were causing a lot of message spam for overwrite or inventory full failures in addition to debugging messages. This would happen every time the player moved which was not intended.
- Active-Commands first-join (1475481)
- The first-join trigger/executor was being ignored for Active-Commands defined in the config.yml. Proper function is now restored, first-join will only execute once per-world.
- slot clearing blacklist (d86298f)
- Defining custom slots to be blacklisted from clearing as in; HELMET, CHESPLATE, LEGGINGS, BOOTS, and OFFHAND would be ignored.
- SkinsRestorer API (3eee1f8)
- When SkinsRestorer is in proxy mode or stuck loading it throws errors when initializing.
Changed:
6.1.0Релиз1.19, 1.20, 1.21.1 · 4 сентября 2024 г.
Added:
- 1.21 & 1.21.1 Support.
- Folia Support.
- Folia is a new fork of PaperSpigot that adds regionized multithreading to the server.
- no-clear itemflag
- Prevents the player from using any plugins /clear commands to remove the custom item.
- Executing /clear will now clear all items excluding any custom items with the no-clear itemflag.
%state%placeholder for toggle command messages.- erase-drops itemflag
- This itemflag entirely removes the item from the player when they try to drop it or on-death.
- Unlike the self-drops counterpart, the item is not given back.
- Polish Language translation.
- Thanks @Coreli0!
- selectable-delay
- You can modify your selectable itemflag individually for each item by specifying
selectable-delay: 1on your item to increase the amount of time the user is allowed to have the item selected before they are forced to unselect it. - By default, the selectable itemflag no longer has a delay, you can add this delay to increase the amount of time the user can select the item. For each numerical value (1..., 2..., 3...) adds 10 ticks, so 1 is half a second, 2 is a full second, 4 is two seconds, etc.
- You can modify your selectable itemflag individually for each item by specifying
- disabled-regions
- This was added as a replacement for region-priority, the idea of this is to allow the specification of enabled-regions while having the ability to disable specific regions inside the enabled-regions. There are other use cases for this but it was the main reason for being added.
- This prevents region-enter and region-access items from being given in those regions, (region-access will have them auto-removed).
- This also allows region-leave and region-egress items to be given in those regions (works best if they are a sub-region inside an enabled-region)
- on-join item command
- You can now add on-join item commands to custom items.
- This will only trigger if the player already has the custom item while joining the server, not after getting the item.
- This respects and waits for AuthMe authorization.
- item command permissions
- Every command action can have its own permission or set of permissions required to execute the command. In the example below I use interact, but this can be anything like interact-right, interact-left, inventory, inventory-creative, etc.
- You can use a
!symbol in front of the permission to invert the condition, making the permission strictly not required to execute the command. If they have that permission and it's not set to false then they will not be allowed to execute the command. - Example;
interact:
- 'console: eco give %player% 5000'
interact-permission:
- '!itemjoin.group.owner'
- 'itemjoin.group.newbies'
interact-fail-message: '%prefix% &cfailed to execute the interact-right commands.'
- Inverted permission-node on custom items.
- You can now use the
!symbol to invert the permission requirement from permission-node on custom items. - Example;
permission-node: '!fish.cakes'- players without this permission will be given the item.
- You can now use the
- Entity selectors can now be used in plugin commands.
- Example;
/itemjoin get item_1 @a[team=afk]
- Example;
commands-costcan now accept placeholders and double values.- Example;
commands-cost: '%player_deaths%'- increases the cost to execute a command each time the player dies. - Example;
commands-cost: 1.5- will charge exactly $1.5 from the economy balance.
- Example;
Fixed:
- AuthMe authentication.
- AuthMe authentication was bypassed when any region trigger was defined.
- stackable itemflag duplication.
- self-drop itemflag
- With an open GUI menu from any plugin you could drop the item from your inventory via your cursor.
- placement itemflag
- Containers can now be opened when the placement itemflag is present.
- Previously the itemflag would prevent containers like chests from being opened.
- item conditions
- If a placeholder had a colon inside it, the conditions would fail to parse.
- AutoCraft bug
- Inventories smaller than 4 slots would cause the AutoCraftEvent to break, for example a furnace.
- Data loading
- Added a short delay to allow items to properly generate before finalizing the data.
- fireworks use-cooldown
- The use-cooldown would fail to function with fireworks if the player was actively flying with an Elytra.
- region triggers debugging
- Disabled "player has item" debug messages for region triggers as they are not necessary and are quite spammy.
/ij getfail count- Using
/ij get,getAll, orgetOnlinewith a non-ItemJoin item occupying the custom item slot would incorrectly say the player has all items. - Now the number of failed items to be given will be displayed if the custom item slot is occupied.
- Using
- accidental removing of vanilla recipes.
- Furnace, stone cutter, and enchant recipes were accidentally being removed on
/ij reloadresulting in them being non-functional. - The way recipes are removed has been changed to only remove ItemJoin recipes.
- Furnace, stone cutter, and enchant recipes were accidentally being removed on
- crafting items death-keep and death-drops
- Crafting items were not being returned despite having the
death-keepitemflag defined. - Crafting items were not being cleared if
death-dropswas defined.
- Crafting items were not being returned despite having the
- death-keep breaking item animations.
- death-keep online check.
- death-keep itemflag with multi-slots
- Multi-Slots were not being properly restored, instead they were being stacked.
- AuthMe authentication
- If a user hasn't logged in but hovered over a slot that previously had an ItemJoin item, the Item Commands could be triggered.
- AuthMe does not remove items from the player inventory, they simply are made invisible (ghosts).
- Illegal characters in chat.
- Only occurred with alternative versions of Spigot, like PaperSpigot.
- The issue typically was with using chat colors in item commands.
/ij getenabled-worlds checks.- The get commands were not checking to see if the player was in an enabled world for the item.
Clear-Itemsregion clearing.- Items were constantly being cleared and restored instead of only doing so once.
- The original functionality of Region-Enter clearing has been restored.
/ij dump(paste api)- Servers would crash in some geo-blocked locations.
- count-lock bug with projectiles.
- 1.20.5/1.20.6 broke the built-in API for blocking item consumption so a custom method has been added to replace this.
inventory-creativecommands.- A bug would occur when shift+clicking "Destroy Items" in creative mode while having an item defined with
inventory-creativecommands. - Clicking "Destroy Item" would cause any item in the player inventory with
inventory-creativedefined to execute.
- A bug would occur when shift+clicking "Destroy Items" in creative mode while having an item defined with
- Check for updates bug.
- Major version jumps would not be handled properly causing the updater to get confused.
- Purge commands.
- Trying to purge an entire data-set (not specifying a player) would result in a "command not found" error.
- ChestSort API double-clicking bug.
- Would cause custom items to duplicate when sorting.
- Concurrent Exceptions.
- Permission pages.
- Would list duplicates.
- Many many miscellaneous legacy Minecraft bugs.
Changed:
- selectable itemflag.
- Removed delay and added other special cases like click-dropping items and giveTo triggers.
- In
/ij menuthe CustomModelData definition will now show a preview of the model data. - Rewrote timers to function better.
Комментарии
Загружаем…



