Recent Changes

Dec 31, 2018
Recent Changes
  • [​IMG]


    [​IMG]
    [​IMG]


    Changelog

    Added:
    • Map items now support GIF images (Animated).
    • Support for the new Vault API (1.13).
    • ReAdded the ItemJoinAPI.
      • It magically disappeared in the v5.0.0, whoops!
    • Once again, updated support for WorldGuards API revisions... #192
      • Stop removing methods and simply deprecate them, please and thanks!
    Fixed:
    • Issues with Vault balance and new Economy plugins.
    • Errors with book items when they have no pages defined.
    • Ip-limit / first-join bug in debugging mode.
      • If the item was already given on first-join it would send a debug message as well as an actual message to the player saying it failed to give the item.
    • OPCommands-Permissions in the config.yml.
      • Was accidentally using the Items-Permissions in the config.yml instead of OPCommands.
    • An issue where, if enabled-worlds were not defined for an item it would default to disabled.
      • Now it correctly defaults to all worlds being enabled.
    • An issue where, if triggers were not defined for an item it would default to disabled.
      • Now it correctly defaults to on JOIN being the default trigger.
    • An issue where you were unable to specify multiple map items, each having a different rendered image.
    • An issue with commands where if two executors were defined at the same time both would execute upon committing an action that was defined under one of the two executors.
    • An issue with YAMLGenerator breaking the items.yml upon loading for the first time.
    • An issue with Crafting Slot items not playing friendly with GUI plugins, this would create ghost items.

    Changed:
    • Rewrote map image functionality to resolve issues with images not appearing.
    • Compressed image files so the ItemJoin.jar file is a smaller size.



    [​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.
  • Loading...
  • Loading...