DevLog - Historical

Applied By RockinChaos: Sep 23, 2019 at 1:56 AM


These are the recent changes in the latest versions of the snapshots.
If you are interested in testing the latest snapshot and giving some feedback, test it here; Jenkins Server
Looking to provide feedback, send me the info on Github or Join Our Discord Server.

Please note; The information below is constantly changing so with each new snapshot released will mean additional information will appear here. So if you don't see something you wanted to be added it means I have not completed it yet, which does not mean it will not be added when the official release is ready.

I would like to apologize for this update taking so long. The snapshot branch has been getting some-what frequent updates but I wanted to make sure that everything was as fleshed out as possible and bug-free before I pushed out such a massive update. Hopefully, the introduction of the new GUI Menu will make up for the delay!


  • Officially updated to Minecraft 1.14.
    • No notable changes, everything functioned as intended when compiled on 1.13 and ran on 1.14.
    • Excluding the book pages issue which has been fixed.
  • New command /itemjoin menu
    • The alternative command is /itemjoin creator
    • Allows the modification of existing items, creation of new items, and saving of existing items in your inventory, all through an in-game GUI Menu.
    • You now save existing items by dragging and dropping them into the GUI Menu's friendly little hopper.
    • Saving items now correctly saves; book pages, author, title, generation, skull-owners, skull-textures, banner patterns, charge colors, firework meta, leather meta, name, lore, count, durability, and more!
  • An amount specified that can be removed from a player inventory for all remove commands.
    • /itemjoin removeOnline <item> <qty>
    • /itemjoin remove <item> <qty>
    • /itemjoin remove <item> <player> <qty>
  • Item WarmUp delay before command execution #210.
    • You can specify the warmup delay per item in seconds, leaving it undefined will result in no warmup delay.
    • Usage (five-second delay);
    • Code (Text):
      commands-warmup: 5
    • This also comes with additional changes to the lang.yml file adding three new messages under the General section.
    • Code (Text):
        itemWarmingUp: '&aThe item [%item%&a] is warming up . . .'
        itemWarming: '&aCommencing [%item%&a] execution in &2%timeleft%&a seconds.'
        itemWarmingHalted: '&cCommence of &4[&c%item%&4] &cexecution cancelled!'
  • New option commands-particle #213.
    • This will be used to either spawn a simple particle defined by the user using the following instance.
    • Code (Text):
      commands-particle: PARTICLE:LIFETIME
    • Example (Heart effect which is alive for 3 seconds);
    • Code (Text):
      commands-particle: HEART:3
    • Or you can spawn custom particles or launch projectiles defined under ItemJoin's EffectAPI. These effects will be added as requested, but currently, support only a firework projectile option as shown.
    • Code (Text):
    • Example (Firework, start color black, end color red, burst pattern, detonation after 3 seconds);
    • Code (Text):
      commands-particle: FIREWORK:BLACK:RED:BURST:3
  • The variable %player_interact% has been readded.
    • This was formerly known as %hitplayer%.
    • This variable will be replaced by the player's name which was either right-clicked or left-clicked by the player wielding the item.
    • Added for the intention of being used with ItemCommands.
    • Example of use; /duel %player_interact% - which will execute the duel command specifying the player that was right-clicked. Also great for trading plugins.
  • Custom TabCompleter #228.
  • New itemflag vanilla-control
    • Allows the item to be given as a vanilla item although, commands, itemflags, and other ItemJoin features will still continue to function.
    • There will be no DataTags or ItemJoin item identifiers on the item, so the item can be given by another plugin (created by another plugin and given) and ItemJoin will still see it as an ItemJoin item.
    • The downside is that if players have access to color codes and lore modification plugins they can rename a regular item to an ItemJoin item and it will function as such. Use with caution.
  • New itemflag item-modifiable
    • This will prevent the specified item from being modified via an ANVIL or ENCHANTING.
  • New itemflag give-next
    • This will function similar to the Arbitrary slot idea, any item with a dedicated number slot from 0 to 35 with this itemflag will function as normal if the dedicated slot is empty. However, if it is full, it will give the item in the next available slot AFTER the preceding dedicated slot. The Arbitrary would simply give the item to the first available slot rather than the slot after the dedicated slot.
  • New itemflag drop-full
    • This simply gives the item the ability to drop itself onto the ground when attempting to give the item to the player. The item will drop if the player's inventory is full. This functionality works with any slot type including custom and arbitrary slots.
  • New command identifier swap-item
    • You can now change the item in your hand to another existing ItemJoin item. This will replace the existing item in your hand to another custom item, however, it will ignore the defined slot and place it in the exact slot the previous item existed in.
    • Example;
    • Code (Text):
      swap-item: ultra-item
  • Region-Enter clearing all items or only custom items #217.
    • Defining the Option RETURN under clear-items in the config.yml will allow the items cleared by region-enter to return when exiting the region.
    • You can either define ALL regions or specific regions separated by commas.
    • Code (Text):
        Region-Enter: true
    • Code (Text):
        Region-Enter: region1, region2
    • Code (Text):
        Options: RETURN
    • Code (Text):
        Options: PROTECT, RETURN
    • Make sure that your clear-items reflect the changes below;
    • Code (Text):
        Type: ITEMJOIN
        Delay-Tick: 2
        Join: DISABLED
        World-Switch: DISABLED
        Region-Enter: DISABLED
        Options: PROTECT
        Bypass: OP
  • New Traditional Chinese and Simplified Chinese language files thanks to momoservertw for translating!
    • There are three options with these, you can set the Language located in the config.yml to either Simplified Chinese, Traditional Chinese or Just define Chinese which will automatically use the Traditional Chinese file.
    • Code (Text):
      Language: 'Chinese'
    • Code (Text):
      Language: 'Traditional Chinese'
    • Code (Text):
      Language: 'Simplified Chinese'
  • New Spanish language file thanks to ThatOverPowered for translating!
    • You can now set the Language option from English to Spanish as shown to generate the es-lang.yml
    • Code (Text):
      Language: 'Spanish'
  • Issues with skulls and custom databases, big resultant in major lag.
  • Subregions now properly work in all WorldGuard versions.
  • An issue with dropping items in creative mode using your cursor would reset the item's slot to the (first available slot), having this with the inventory-modify itemflag would lock the items position instead of placing it back to its default #208.
  • Bug with book items in Minecraft 1.14+ which caused an *invalid book tag* instead of the defined book pages.
  • Bug with offhand items occasionally not being given.
  • An issue with cancel-events not canceling all events properly #225.
  • A bug that would cause a slight delay when giving items through respawning, world-switch, limit-switch, and join despite the items-Delay being set to zero and having clear-items disabled #229.
  • Issues with skull items and the dynamic/animated itemflag bugging out resulting in a server crash.
  • Bug with skull items causing the plugin to break upon respawning on Minecraft 1.14+.
  • An issue with clear items not working properly.
  • An issue with disposable items not working properly, the order has been changed.
  • An issue with global prevents actions not functioning properly.
  • An issue with the itemjoin.bypass.inventorymodify permission node not working.
  • Map items completely breaking in legacy versions of Minecraft.
    • Typo with one of the reflections... whoops!
  • Added back the RANDOM commands-sequence.
    • Accidentally forgot to write it when developing v5.0.0 whoopsie!
  • Massively rewrote the crafting slot items.
    • All bugs pertaining to crafting slots should be fixed, however, using the RELOAD command may cause items to fall out of crafting slots during the reload period (will not be affected after reload).

  • Pending commands now cancel upon player death, world-switch, and respawn #212.
  • ItemJoin now supports subregions and treats them as a respective subregion. Allowing the ability to give items in both the main region and any items once entering the subregion.
  • Now using a different method to fetch skull skins. Hopefully, this will be more accurate without having to ping the Mojang API.
  • When removing a disposable item, the held-item will be considered first then if it is not the correct item it will cycle from the first slot to the last slot of the inventory 0 ==> 35.
  • Since it seems like nobody uses Java 7 according to the bStats data... I have officially switched to now compile ItemJoin against Java 8!
  • Build numbers will now be displayed with each plugin version #232.
  • Listeners are now registered differently.
    • If a listener is deemed to not be needed as an item does not utilize its properties it will now simply never be loaded unless a config value is changed to make it needed.
    • This vastly decreases high timings in unutilized classes.
  • Legacy Material Data is now better supported.
    • Resolved issues with incorrect material's being set.
    • Resolved issues with error messages appearing.
    • A warning message will still display upon server start asking you to switch to the new 1.13+ material data.
  • softDepends are now hooked into automatically, thus no longer requiring users to set it to true in the config.yml.
    • Since the toggle options in the config.yml are no longer needed, they have been removed.
    • You will still see the depends that ItemJoin successfully hooks into upon plugin startup in the console window in terms "Utility Options" separated by commas.
  • Removed the command /itemjoin save
    • The GUI Creator now replaces this function.

[​IMG] [​IMG]

Please see the documentation page if you need any help with these new updates!
If you have any ideas or requests that you would like to see in ItemJoin's future please submit a feature request.