1.21 & 1.21.1 Support, New Features, Bugfixes
ItemJoin-v6.1.0-RELEASE
Notice: This release contains a major change to item permissions. If you define a custom permission-node for an item, this will be required in order to get the item, ignoring any permission settings in the config.yml. It is now expected that by setting a custom permission-node you actually want to have permissions be required for that item.
Changelog
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: 1
on 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-cost
can 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 get
fail count- Using
/ij get
,getAll
, orgetOnline
with 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 reload
resulting 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-keep
itemflag defined. - Crafting items were not being cleared if
death-drops
was 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 get
enabled-worlds checks.- The get commands were not checking to see if the player was in an enabled world for the item.
Clear-Items
region 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-creative
commands.- A bug would occur when shift+clicking "Destroy Items" in creative mode while having an item defined with
inventory-creative
commands. - Clicking "Destroy Item" would cause any item in the player inventory with
inventory-creative
defined 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 menu
the CustomModelData definition will now show a preview of the model data. - Rewrote timers to function better.