ItemJoin v5.1.0

Details

  • Filename
    ItemJoin.jar
  • Uploaded by
  • Uploaded
    Sep 9, 2020
  • Size
    488.20 KB
  • Downloads
    13,678
  • MD5
    86fb09ae64239265338c21f0b878d788

Supported Bukkit Versions

  • 1.16
  • 1.15
  • 1.14
  • 1.13
  • 1.12
  • 1.11
  • 1.10
  • 1.9
  • 1.8
  • 1.7.2

Changelog

ItemJoin v5.1.0-RELEASE
 
WARNING: If Upgrading: Please read the changes below for v5.0.7 as it contains major changes that affect this version.
 
Changelog
 
 
Added:
  • Water/Lava/Bukkit Support for the count-lock itemflag.
Fixed:
  • Conflicts with other plugins using BungeeCord.
  • Bug with cooldown message trying to send a null message if left blank.
  • Bug with Chances "Probability Items".
  • Menu bug if an item was defined as material AIR.
  • Crafting items result slot fix.
  • Bug with the Database/MySQL.
  • Bug with [close] argument on an item command dropping any crafting items.
  • Bug with /itemjoin get and /itemjoin remove commands not locating players that are specifically named numerical numbers.
  • Bug with CheckforUpdates not refreshing the cache.
  • Bug with duplicating crafting items.

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

WARNING: If Upgrading: Your items.yml and Lang.yml will regenerate as new versions have been released, please see the major changes below.
 
Changelog
 
 
Added:
  • Updated to Minecraft 1.16 for the Nether Update!
  • New Russian Localization.
    • Simply change the Language in your config.yml to Russian and the ru-lang.yml file will be generated.
  • New French Localization.
    • Simply change the Language in your config.yml to French and the fr-lang.yml file will be generated.
  • Hex Color support for Strings.
    • This can be done using &# followed by the hex color numerical values.
    • Example; [code]name: '&#184d47I am a hex color!'[/code]
  • New Lang.yml version 8.
    • NOTE: Your lang.yml will regenerate when installing this version of ItemJoin, the old lang.yml will be saved.
    • Major changes including the addition of redefining certain placeholders.
  • New items.yml version 7.
    • NOTE: Your items.yml will regenerate when installing this version of ItemJoin, the old items.yml will be saved.
    • Major changes were made to item configurations including item commands. Please see the changes below.
  • Triggers for the HeldItem-Slot in the config.yml.
    • Simply define the trigger(s) separated by a comma, these are the trigger names used for items such as JOIN, RESPAWN, WORLD-SWITCH
    • You will need to add this to the config.yml to properly use the triggers, by default it will be automatically set to ALL triggers enabled if undefined.
[code]Settings:</div> <div data-redactor="1">&nbsp; HeldItem-Slot: DISABLED</div> <div data-redactor="1">&nbsp; HeldItem-Triggers: JOIN</div> <div data-redactor="1">&nbsp; DataTags: true[/code]
 
  • Blacklist feature to the clear items in the config.yml.
    • How it works; {TYPE:VALUE}
    • There are three types; idslot, and name.
    • The value is the corresponding value for the types. Do not put any color codes for the value input for the name type, color codes are stripped and are not needed.
    • The Blacklist identifier requires an apostrophe at the beginning and end of the list of blacklisted items as shown in the example below. This is a limitation of the YML file, forgetting to do so will result in error codes.
    • In the example below BEDROCK items will not be removed, any item in slot zero will not be removed, and any item containing the name Blazefury will not be removed.
    • Example of Blacklisting;
[code]Clear-Items:</div> <div data-redactor="1">&nbsp; Type: ALL</div> <div data-redactor="1">&nbsp; Delay-Tick: 2</div> <div data-redactor="1">&nbsp; Join: true</div> <div data-redactor="1">&nbsp; World-Switch: true</div> <div data-redactor="1">&nbsp; Region-Enter: DISABLED</div> <div data-redactor="1">&nbsp; Options: PROTECT</div> <div data-redactor="1">&nbsp; Blacklist: '{id:BEDROCK}, {slot:0}, {name:Blazefury}'[/code]
  • Mobs Drop
    • You can now specify a list of mobs and their probability of dropping the custom item.
    • A probability of 1.0 is the max probability and is considered to be 100%.
    • Formatting is [code]ENTITY:PROBABILITY[/code]
    • The Entity expects an entity type input, obviously all entities will not work such as an ender pearl. The entity input should be a physical mob. List of entities here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
    • Recommendations (not required): Set triggers to DISABLED to prevent players from getting the items on join. Set the slot of ARBITRARY--there is no real reason for this but it can help with compatibility in the future.
[code]&nbsp; mobs-item:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; id: IRON_SWORD</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; slot: ARBITRARY</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; name: '&amp;cStolen Sword'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; lore:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - '&amp;7Pulled from the ashes of chaos.'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; mobs-drop:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'ZOMBIE:0.001'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'PIG:0.3'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; triggers: DISABLED</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; enabled-worlds: world, world_the_end[/code]
 
  • Blocks Drop
    • You can now specify a list of mobs and their probability of dropping the custom item.
    • A probability of 1.0 is the max probability and is considered to be 100%.
    • Formatting is [code]MATERIAL:PROBABILITY[/code]
    • The Material expects a block type input, obviously, all materials will not work such as a COOKED_STEAK. The block input should be a physical block. List of materials here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
    • Recommendations (not required): Set triggers to DISABLED to prevent players from getting the items on join. Set the slot of ARBITRARY--there is no real reason for this but it can help with compatibility in the future.
[code]&nbsp; blocks-item:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; id: DIAMOND_BLOCK</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; slot: ARBITRARY</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; name: '&amp;aSurprise!'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; mobs-drop:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'ZOMBIE:0.001'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'PIG:0.3'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; triggers: DISABLED</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; enabled-worlds: All[/code]
 
  • Custom Recipe.
    • You can now specify a recipe for a custom item.
    • To define a recipe, you must specify the shape with the ingredient characters, as well as the ingredients with their characters. The ingredients expect a single character followed by the material input. See the example item below.
    • Recipe shapes are quite diverse and can be defined in unique shapes as shown.
    • X Stands for Air, do NOT include X in the 'ingredients' below.
    • Examples of Recipe usages:
[code]&nbsp; &nbsp; recipe:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XGX'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'IDI'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XGX'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; recipe:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XG'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XD'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; recipe:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XGX'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'IDI'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; recipe:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'G'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'D'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'G'[/code]
[code]&nbsp; recipe-item:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; id: BEDROCK</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; slot: ARBITRARY</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; name: '&amp;6Essence'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; lore:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - '&amp;7Shhhh don''t tell anyone...'</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; recipe:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; # X Stands for Air, do NOT include X in the 'ingredients' below.</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XGX' # First row in the crafting table</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'IDI' # Second row in the crafting table</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'XGX' # Third row in the crafting table</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; ingredients:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; # Format: LETTER:ITEMID</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'G:GOLD_INGOT' # G Stands for Gold Ingot.</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'I:IRON_INGOT' # I Stands for Iron Ingot.</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; - 'D:DIAMOND' # D Stands for Diamond, you can use any letter here and the ITEMID can be numerical.</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; triggers: DISABLED[/code]
 
  • ClickEvent change_page for JSON Books.
    • Example; <change_page:2>
  • First-Life trigger.
    • Gives the player the item ONLY ONCE upon joining the server, however upon respawning the item will always be given.
  • Glowing itemflag.
    • Gives the item the "enchanted" glowing effect.
  • Stackable itemflag.
    • Allows items that are not stackable to be stacked up to x64.
    • This is done automatically on pickup, click-drag, and shift+click.
  • Selectable itemflag.
    • Any item with this itemflag will not be allowed to be selected.
    • If the item is selected the player has about a half-second to move past the item or it will automatically jump to the next available item in the direction the player was originally scrolling.
  • ItemCommand on-death.
    • This will allow any item with on-death commands defined found in the player's inventory to execute a set of commands.
    • Example;
[code]&nbsp; example-item:</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; id: DIAMOND</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; slot: 0</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; commands:</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp;&nbsp; on-death:</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp;&nbsp; - 'message: &amp;eYou have died!'</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp;&nbsp; - 'console: say %player% has met their fate'[/code]
 
  • Item Attributes.
    • You can now define any available attributes on an item that accepts attributes such as a Diamond Sword.
    • This is set up by defining attributes followed by {ATTRIBUTE:VALUE}, you can define multiple attributes separated by a comma.
    • Example usage; [code]attributes: '{GENERIC_ATTACK_DAMAGE:15.2}, {GENERIC_ATTACK_SPEED:19.0}'[/code]
    • These attributes work on Minecraft versions as early as 1.8 to the latest 1.16.2. They do change names so its best to use the /itemjoin menu for this.
    • For current 1.16.2 attributes see; Spigot Link.
    • Legacy JavaDocs can be found here; CG Link.
  • Command to purge map-ids for images.
    • /itemjoin purge map-ids <image>
    • <image> is the exact name of the image to purge including the extension such as image0.gif
    • This is useful for resetting custom map items in the event they stop properly rendering due to another plugin.
  • Hyperverse Support.
    • Automagically enabled if Hyperverse is found on the server
  • SkinsRestorer Support.
    • Automagically enabled if SkinsRestorer is found on the server.
  • Maven/Gradle Repository - For Developers.
    • Add this to your pom.xml if you are compiling with Maven.
[code]&nbsp; &nbsp; &lt;!--CraftationGaming Repository--&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &lt;repository&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;id&gt;CraftationGaming&lt;/id&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;url&gt;https://raw.githubusercontent.com/RockinChaos/repository/maven-public/&lt;/url&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &lt;/repository&gt;</div> <div data-redactor="1">&nbsp;</div> <div data-redactor="1">&nbsp;&nbsp;&nbsp; &lt;!--ItemJoin API--&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &lt;dependency&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;groupId&gt;me.RockinChaos.itemjoin&lt;/groupId&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;artifactId&gt;ItemJoin&lt;/artifactId&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;version&gt;5.0.7-RELEASE&lt;/version&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;scope&gt;provided&lt;/scope&gt;</div> <div data-redactor="1">&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &lt;/dependency&gt;[/code]
 
Fixed:
  • Bug with dynamic book items breaking.
  • Bug with JSON book items breaking if no pages were defined.
  • Bug with crafting items clearing chests when stopping the server.
    • Occurred when players had a chest open at the time of server stop.
  • Bug with crafting items being put into chests if opened quickly enough.
  • Bug with MySQL not supporting UTF-8 symbols.
  • Bug with the protocol manager.
  • Bug with hex colors being reversed when defined for leather armor.
  • Bug with inventory-modify itemflag not blocking the pick-block action in survival/creative.
  • Bug with self-drops itemflag.
  • Bug with the self-drops itemflag when crafting items existed.
  • Bug with regions, items not being given and removed properly.
  • Bug with limit-modes, items not being given and removed properly.
  • Bug with switching worlds duplicating crafting items.
  • Bug with closing inventory with a prepared crafting item duplicating/
  • Bug with Obtain-Items-OP permissions.
  • Bug with item-store itemflag allowing placement into grindstones.
  • Bug with not being able to save items into the /ij menu if they were not in the Hotbar slot.
  • Bug with Chat Plugins putting color codes in front of text caught by the /itemjoin menu.
  • Bug with other players being able to chat for text input in the /itemjoin menu.
    • This would cause their input to save and the menu to appear on their screen instead of the original executing player.
  • Bug with Language Prefix.
    • If the prefix was removed, space would still remain in front of the message text.
  • Bug with commands-cost.
    • The item would fail to execute claiming lack of funds despite the player having enough money.
    • Issue occurred because Vault wasn't being properly initialized.
  • Bug with items-Spamming not properly functioning if no commands cooldown was defined.
    • The item-store itemflag now properly functions with barrels and foxes.
  • Issues with Map Items.
  • Other random bugs.
 
Changed:
  • ItemCommands (Command Actions) has been rewritten.
    • This means any prior command actions such as multi-click will no longer function.
    • Please see the list below for proper command actions;
    • Interact - Actions performed with the player's inventory closed, usually with the item in their hand.
    • Inventory - Actions performed with the player's inventory open, usually clicking the item with their cursor.
    • The Commands:
    • interact - Executes the commands when the player is left or right-clicking a block or the air with the item in their hand.
    • interact-air - Executes the commands when the player is left or right-clicking the air with the item in their hand.
    • interact-block - Executes the commands when the player is left or right-clicking a block with the item in their hand.
    • interact-left - Executes the commands when the player is left-clicking a block or the air with the item in their hand.
    • interact-air-left - Executes the commands when the player is left-clicking the air with the item in their hand.
    • interact-block-left - Executes the commands when the player is left-clicking a block with the item in their hand.
    • interact-right - Executes the commands when the player is right-clicking a block or the air with the item in their hand.
    • interact-air-right - Executes the commands when the player is right-clicking the air with the item in their hand.
    • interact-block-right - Executes the commands when the player is right-clicking a block with the item in their hand.
    • inventory - Executes the command when the player is middle-mouse, left, right, shift-left, shift-right clicking the item in their inventory.
    • inventory-middle - Executes the command when the player is middle-mouse clicking the item in their inventory.
    • inventory-creative - Executes the command when the player is in creative mode and clicks the item in their inventory, any click action will trigger this event.
    • inventory-left - Executes the command when the player is left-clicking the item in their inventory.
    • inventory-right - Executes the command when the player is right-clicking the item in their inventory.
    • inventory-shift-left - Executes the command when the player is shift-left clicking the item in their inventory.
    • inventory-shift-right - Executes the command when the player is shift-right clicking the item in their inventory.
    • inventory-swap-cursor - Executes the command when the player is swapping the item on their cursor with the item in their inventory.
    • on-receive - Executes the commands when the player receives the item for every x second(s) for every x number of times.
      • Every x second(s) is defined by setting the wait value as the commands-cooldown.
      • The every x number of times is defined by adding commands-receive to the item and setting a numerical value.
    • on-hold - Executes the commands every x second(s) while the player is holding the item.
      • Every x second(s) is defined by setting the wait value as the commands-cooldown.
    • on-equip - Executes the commands when equipping the item into an armor slot.
    • un-equip - Executes the commands when unequipping the item from an armor slot.
    • on-death - Executes the command when the player holding the item in their inventory dies.
    • physical - Executes the command if a player steps on a pressure plate, hits a mob, opens a chest, or any other physical actions with that item in the player's hand.
  • Commands-Cooldown is now stored in the database.db.
    • If players exit the server or the server restarts the cooldown duration will still remain the same.
  • The Options for clear items now support PROTECT_OP and PROTECT_CREATIVE.
    • This prevents op and/or creative mode players from having their items cleared.
  • Removed the Bypass section for clear-items, this is no longer needed.
  • Removed Log-Coloration from the config.yml.
    • This is no longer needed as ItemJoin now uses the server logger to send messages which are no longer sent with color codes.
  • Defining an item with 100 percent probability now sends a console error.
  • Book and Quill will now be auto-closed if it has the cancel-events itemflag defined.
  • Completely rewrote the class which handles GIF images on map items, they now properly render with the correct speed/delay.
  • Rewrote a lot of core code.
    • Massive optimizations, performance increase.
    • Added commenting to every single plugin method.
    • Added commenting to every class file with the new license format.
  • Database tables now start with the prefix ij_.
    • Helps make them unique and easy to identify.
  • The Licensing is now properly being attached to the jar file and now has a new license [GNU Lesser General Public License v3.0] instead of the previous restrictive custom license.
  • Updated TokenEnchant dependency to support the latest version.
  • Updated BetterNick dependency to support both old and new API revisions.
  • Updated WorldGuard and WorldEdit dependency to support Legacy and Current API revisions.
  • Updated issues templates, readme, and other git files.
 
Removed:
  • Commands-Type as it is no longer needed.
    • Please see the Changes section.
 
 
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.