ItemJoin icon

ItemJoin -----

Get custom items on join.



Christmas Reveal
[​IMG]

[​IMG]


Notes: I will be taking a short break after posting this update to spend time with family so the documentation will take a few days to update. Also, I know this update did not include the in-game GUI creator. The framework rewrite has taken up the majority of my time but this should allow future expansion in ItemJoins future. This new framework update was written because of the in-game GUI creator requirements, as ItemJoin lacked the capability of implementing it in the version two adaptation of ItemJoins framework.

Also, it seems like only a few people have bug tested this new release version of ItemJoin, so if anyone finds any bugs or issues please report it as soon as possible to the GitHub issues section.




Changelog

Added:
  • New Framework defined as ItemJoin v3.
    • This is huge and took so long to develop as it was created with the intention of having future expandability upon the new platform without hitting and major limitations in the plugin's code.
  • Support for the new WorldGuard API #186.
    • Updated to support new BlockVectors.
  • Support for the new WorldEdit API #186.
    • Updated to support new BlockVectors.
  • A new system for the item-store itemflag #190.
    • Item-Store now supports the Crafting Table.
  • New item-craftable itemflag #184.
    • This will block the usage of the specified ItemJoin item in a crafting recipe via the crafting table or the players own personal crafting menu. If an item using this itemflag is placed in either of those following locations the item will be automatically moved back to the first available slot of the player's inventory.
  • New item-repairable itemflag #184.
    • This will block the usage of the specified ItemJoin item in an anvil repair recipe.
    • If this itemflag is also used on a consumable recipe item such as a diamond the itemflag will still prevent the repair of an item.
  • Additional support for the item-store itemflag #183.
    • The item-store itemflag has the new addition blocking the storing of the specified ItemJoin item in droppers, dispensers, item-stands, llama chests, and donkey chests.
  • Command /itemjoin getOnline <item> #308398.
    • This will get the specified ItemJoin item for all players that are currently online.
  • Command /itemjoin getOnline <item> <amount> #308398.
    • This will get the specified amount of the ItemJoin item for all players that are currently online.
  • Command /itemjoin removeOnline <item> #308398.
    • This will remove the specified ItemJoin item from all players that are currently online.
  • Additional modifier <count> for the /itemjoin get <item> command(s) #188.
    • Example#1: /itemjoin get <item> <amount> - Gives the said amount of the item to the player, this bypasses the hasItem restriction.
    • Example#2: /itemjoin get <item> <player> <amount> - Gives the said amount of the item to the player, this bypasses the hasItem restriction.
  • New always-give itemflag #188.
    • This will always give the specified ItemJoin item when a player acts upon one of the defined triggers such as on join.
    • This itemflag also has a dual functionality, allowing the hasItem restriction bypass on the regular /itemjoin get <item> and /itemjoin get <item> <player> with no amount being specified.
  • New allow-modifications itemflag #308398.
    • Allows the item to still function as a normal ItemJoin item if the ENCHANTMENTS, BOOK PAGES, NAME, LORE, and item COUNT are modified by the player or a plugin.
  • New Prevent-InventoryModify global setting in the config.yml.
    • Prevents the movement of items in a players inventory.
    • If you have an old config.yml simply add this;
      Code (Text):
      Prevent-InventoryModify: false
  • New enabled-prevent-worlds global setting in the config.yml.
    • You can now specify ALL, GLOBAL, or specific worlds separated by commas for the prevent-settings to have effect in the specified world(s).
      If you have an old config.yml simply add this;
      Code (Text):
      enabled-prevent-worlds: ALL
  • Support for animated Material ID's, Data-Values, and Material Names.
    • If the animate itemflag is specified the item can now change its material to any specified material upon a delay interval.
    • An example item of glass panes changing colors;
    • Code (Text):
        filler-pane-item-example:
          id:
            1: '<delay:40>BLACK_STAINED_GLASS_PANE'
            2: '<delay:20>BLUE_STAINED_GLASS_PANE'
            3: '<delay:20>GREEN_STAINED_GLASS_PANE'
            4: '<delay:20>MAGENTA_STAINED_GLASS_PANE'
            5: '<delay:20>ORANGE_STAINED_GLASS_PANE'
            6: '<delay:20>RED_STAINED_GLASS_PANE'
          slot: Arbitrary, Arbitrary, Arbitrary, Arbitrary
          name: '&f'
          itemflags: inventory-modify, placement, animate
          triggers: join, world-change
          enabled-worlds: world, world_nether, world_the_end
  • .Hexacolor support for leather-color on dyed armor.
    • A usage example of the hexcolor string;
    • Code (Text):
          leather-color: f4d0ec
  • Support for animated skull-owners.
    • You can now animate between different skull-owners.
    • Code (Text):
        skull-item-example1:
          id: PLAYER_HEAD
          slot: 0
          skull-texture:
            1: '%player%'
            2: 'RockinChaos'
            3: 'Notch'
          itemflags: animate
          triggers: join, respawn, world-change
          enabled-worlds: world, world_nether, world_the_end
  • Support for animated skull-textures.
    • You can now animate between different skull-textures (including support for HeadDatabase, via hdb-ID)
    • Code (Text):
        skulldb-item-example:
          id: PLAYER_HEAD
          slot: 0
          name: '&fCyclone'
          skull-texture:
            1: '<delay:100>eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMGZlMzFlYWE4YThhZDhkZDhkN2FiOTZhODQyMzI5MDUzOWQzODdkODJkNDI2ODcwMWVjNjlkNDFhMWZjIn19fQ=='
            2: '<delay:100>eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYxZGZkZGE3MTAyMmJmYWQ3OWVhYmJmYTU2YTE1MTE2NDdiMjAyYWQxMTM2ZmY5N2UzMWEwNmRiYWMxMGVjYiJ9fX0='
            3: '<delay:100>eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGFmNjJkNjJkMGE5MzZmMDdmZGZjMWM2MDcyMTY4NzVjOTkzZTViZWViY2U5NTNlOWM4NzI0YTI1ZmNiYTBiYyJ9fX0='
          lore:
            - '&7This is a custom textured skull.'
            - '&7'
            - '&7You can create your own skull texture'
            - '&7and apply it to a skull item!'
          itemflags: inventory-modify, death-drops, self-drops, animate
          triggers: join, respawn, world-change
          enabled-worlds: world, world_nether, world_the_end
  • Support for dynamically updated skull-owners and skull-textures
    • In the event that a skin texture changes this will be useful.
    • An example item;
    • Code (Text):
        skull-item-example:
          id: PLAYER_HEAD
          slot: 0
          skull-owner: '%player%'
          itemflags: animate
          triggers: join, respawn, world-change
          enabled-worlds: world, world_nether, world_the_end
  • New ability to limit items to a specific gamemode.
    • If a limit-mode is set to a specific item, the player will only be given the items if they are in the defined gamemode upon an action defined by the triggers.
    • An example item that you can only get in SURVIVAL and ADVENTURE mode;
    • Code (Text):
        arrow-item-example1:
          id: ARROW
          slot: 0
          name: '&fArrow'
          count: 32
          limit-modes: SURVIVAL, ADVENTURE
          triggers: join, respawn, world-change
          enabled-worlds: world, world_nether, world_the_end
  • New GAMEMODE-SWITCH trigger.
    • This works well with the limit-modes identifier, however, it will work without it.
    • If the player switches to a gamemode that is not defined in the limit-mode this trigger will remove the item from the player's inventory.
    • If the player is missing an item that is defined by the limit-modes it will be given if they are switching to the correct gamemode.
    • An example item that you can only get in and if you switch to CREATVE mode;
    • Code (Text):
        arrow-item-example:
          id: ARROW
          slot: 0
          name: '&fArrow'
          limit-modes: CREATIVE
          triggers: JOIN, GAMEMODE-SWITCH
          enabled-worlds: world, world_nether, world_the_end
  • JSON Books now can support raw data inputs.
    • If you have raw JSON data you can now put that as a page line to appear, for example, this would be useful for clickable hover text as shown in the example below.
    • Simply add the "raw: " identifier and paste the raw JSON data, this can include the ["" or exclude it. Please note that this only works for each separate line on each book page.
    • Code (Text):
        book-item-example:
          id: WRITTEN_BOOK
          slot: 0
          name: '&c&nCreating a Book'
          author: '&bItemJoin'
          lore:
            - '&7'
            - '&7This magical book is given on join!'
          pages:
            1:
            - 'raw: ["",{"text":"I am a hidden text!","color":"yellow","clickEvent":{"action":"open_url","value":"https://www.spigotmc.org/resources/itemjoin.12661/"},"hoverEvent":{"action":"show_text","value":{"text":"","extra":[{"text":"Click to visit the spigot page.","color":"blue"}]}}}]'
  • Support for Crafting item slots.
    • Crafting item slots will now be defined as such; CRAFTING[0], CRAFTING[1], CRAFTING[2], CRAFTING[3], CRAFTING[4].
    • Crafting slot identifiers can also support C[#] or C(#) instead of CRAFTING[#], as shown in the available slots image depicting C[#].
    • Example items using crafting slots;
    • Code (Text):
        diamond-item:
          id: DIAMOND
          slot: CRAFTING[1]
          itemflags: death-drops, self-drops
          triggers: join
          enabled-worlds: world, world_nether, world_the_end
        iron-item:
          id: IRON_INGOT
          slot: CRAFTING[2]
          itemflags: death-drops, self-drops
          triggers: join
          enabled-worlds: world, world_nether, world_the_end
        gold-item:
          id: GOLD_INGOT
          slot: CRAFTING[3]
          itemflags: death-drops, self-drops
          triggers: join
          enabled-worlds: world, world_nether, world_the_end
        redstone-item:
          id: REDSTONE
          slot: CRAFTING[4]
          itemflags: death-drops, self-drops
          triggers: join
          enabled-worlds: world, world_nether, world_the_end
  • Updated available slots to support the crafting slots.
[​IMG]
Fixed:
  • Animated items no longer have the requirement of needing both the item name and lore to animate.
    • If an item name was defined to animate and the item lore was undefined or not set to animate it would cause issues including console errors.
  • ServerSwitch defined in an items command would not send you to the server.
    • With the current identifier 'server:' there is now a 'serverswitch:' identifier.
  • Disposable items not functioning correctly #180, #185.
  • Bug with the item-store itemflag not blocking items if they were a non-block item when being placed in the instance of an item-frame.
  • Bug with the /itemjoin info command not correctly listing the items Material name.
  • Minor bug with offline skull owners.
    • Now requests data from Mojang directly and obtains the players UUID to generate the texture plating.

Changed:
  • Removed the data-value identifier.
    • The data-value for legacy Minecraft will now be combined in the item's id via 'ID:VALUE'.


[​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.
----------, Dec 26, 2018
Resource Information
Author:
----------
Total Downloads: 123,049
First Release: Sep 27, 2015
Last Update: Nov 24, 2024
Category: ---------------
All-Time Rating:
268 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings