⚙ Innovative Items - Create Custom Items and Abilities ⚙ [1.16-1.20] icon

⚙ Innovative Items - Create Custom Items and Abilities ⚙ [1.16-1.20] -----

A customizable plugin that allow people with zero java experience to make custom items and abilities




Summary

This update adds a new native condition called islooking. This condition is similar to isfacing but instead of taking cardinal directions can check if a player is looking up or down.
----------, Nov 26, 2023

Summary

This update adds a new native keyword called summon. This keyword allows you to summon an entity at the provided targeter. The five-second delay on plugin reload has also been removed.
----------, Aug 29, 2023

Summary

Fixed unbreaking enchantment support for custom durability
----------, Jul 4, 2023

Summary

This update adds a new native keyword called nearby. This keyword allows you to iterate over all nearby entities within a given radius around a given point. More information can be found in the plugin documentation.
----------, Jun 22, 2023

Summary

This update adds a new sub-UI that allows users to select what materials they want for custom items more easily.

The update also changes how data is stored in memory, so the order in which the items/abilities are registered has been preserved.
----------, Jun 11, 2023

Summary

This update adds a new command 'innovativeitems create <item name>'. This command uses the same 'innovativeitems.command' permission. This command opens a user interface in the game which will guide the user through custom item creation. The GUI uses the in-game chat to get user input, this is because I tried to stay away from solutions that while better looking, would require more dependencies for the plugin. Currently, the GUI is a work in progress and as further updates come out I will replace the chat input with more sub-GUIs.

The update also adds support for the '?block' targeter in the command keyword which will replace the targeter with the coordinates of the block in the format 'x y z'.

All of the following changes only apply to the free version of the plugin:
  • Removed the limit on custom items that can be created
  • Changed the limit on abilities that can be created to a hard cap of 15 excluding default abilities if enabled.
----------, May 26, 2023

Summary

This update fixes these four bugs from the previous version:
  • Fixes a bug in the 'isusingitem' condition that caused null pointers
  • Fixes a bug in the 'modifydurability' keyword that caused null pointers
  • Fixes arithmetic runtime errors in terms of durability calculations
  • Fixes a bug with the garbage collector that causes it to not correctly update items with the caveat of an unfortunate efficiency trade-off
----------, Mar 27, 2023

Summary

This update fixes a minor oversight with the previous update where I left in some debug messages.
----------, Mar 6, 2023

Summary

This update adds support for commands such as /fix and /repair for custom items and also disables repairing custom items in anvils. The update also improves the garbage collector so it will not override durability if the material of the item has not changed.
----------, Mar 4, 2023

Summary

This update is a quick hotfix for an issue with item durability and the mending enchantment.
----------, Feb 23, 2023

Summary

This update adds a new native condition to the plugin. The condition is called haslineofsight. The function can only be used on abilities that have the entity trigger available and you must provide it with the max distance on the x and z axis the entity must be from the player and it will return if the player has a proper line of sight. Also minor changes to projectile triggers that now support projectiles such as snowballs, exp bottles, ender pearls, etc.
----------, Feb 16, 2023

Summary

This update adds a new native keyword to the plugin. The keyword is called loop. You provide the function with the name of an ability that has compatible triggers (or disable strict in the config.yml) and the number of times to repeat execution and the ability will be executed that amount of times.
----------, Jan 1, 2023

Summary

This update adds a new native condition to the plugin. The condition is called chance. You provide the function with a floating point value in the range of 1-99. This number represents the percent chance that the condition will be evaluated as true.
----------, Dec 23, 2022

Summary

This update adds a new native keyword to the plugin. The keyword is called
setinvulnerable. It has the ability to temporarily make any entity invincible. It has two arguments, the first is the targeter of the entity you would like to act upon, valid targeters are either the ?player or ?entity targeters. The second argument is the amount of ticks you would like the entity to be invincible (20 ticks in a second).
----------, Oct 29, 2022

Summary

This update brings three new native functions, addscoreboardtag and removescoreboardtag, and hasscoreboard tag. The first two add and remove persistent scoreboard tags to the target entity respectively while the third is a condition that checks if the target entity has a scoreboard tag of the provided value already assigned to them.
----------, Sep 26, 2022

Summary

This update brings two new native keywords, setyaw and setpitch that manipulate any living entity's yaw and pitch. Another addition is the native condition iscoordinate which checks if an entity's x, y, or z value meets specific requirements.
----------, Aug 22, 2022

Summary

This update first removes the old randomability keyword syntax support and also removes the ItemDefender option to close inventories. For the free version of the plugin you are now allowed to create seven more abilities and two custom items for free.
----------, Aug 12, 2022

Summary

This update fixes a minor bug that stemmed from the previous update (version 6.4) that causes the interpreter to throw a runtime exception if a function does not have any arguments, this bug has been fixed. (I also noticed that I made a minor typo in previous update notices :oops:)
----------, Jul 29, 2022

Summery

This update brings a new built-in argument implementation to the developer API and a minor change to the randomability keyword. The new argument implementation is a var-arg. To server owners not using the developer API, this simply allows developers and myself to add functions to the plugin that have an unlimited amount of arguments that you can control. This change has been reflected in the new change to the randomability keyword. Now, when using the aforementioned keyword, you should not use semi-colons to separate each ability, instead, you should use commas just as you would for any other arguments, this change has been reflected in the documentation. The old method of using semi-colons is currently still supported to not break any of your abilities however this functionality is hereby deprecated and will be removed in the next few updates so I highly suggest going into your ability configuration files and changing them immediately so when this functionality is removed, your abilities do not break.
----------, Jul 25, 2022

Summery

This update brings a new native keyword to the plugin used to set the amount of ticks left until an entity starts to drown. This keyword is called gills and the first argument is the targeter, which can either be a player or entity targeter, while the second argument is an integer that represents the amount of ticks left until the entity starts to drown.
----------, Jul 17, 2022

Summery

This update brings a new native keyword to the plugin used to send a json message to a user, currently, this keyword only supports the hover text action however it does support every click action. Another change was a bug that prevented compatible abilities from being fired using the execute command, this bug has been fixed.
----------, Jul 2, 2022

Summery

This update changes the conditions used to detect if a player is wearing armor in the default config files due to the fact that the old conditions have been deprecated and removed.
----------, Jun 22, 2022

Summery

This update adds a new item field called update-item, this field defaults to true, and if manually set to false will prevent the garbage collector from updating that item specifically. This is especially useful if you intend for players to enchant or rename said items.
----------, Jun 7, 2022

Summery

This update adds a new item field that can be used on any item with durability. This allows you to change the maximum durability and allow for more or less usage of any given item with durability. This update also fixes a minor mistake in the previous update that many any attribute put under the all section count as five separate attributes, this has been fixed, so now 256 total attributes under any section is the limit.
----------, May 27, 2022

Summery

This update fixes a bug that has existed in the plugin for quite a while now. An item with attributes would have its durability reset every time the cache was invalidated, this bug is now fixed. Though this fixed required me to put a limit on the total amount of attributes on a single item. Any single item cannot have more than 256 attributes (keep in mind that every attribute put under the ALL equipment slot, is considered five separate attributes).
----------, May 1, 2022

Summery

This update adds two new native conditions to the plugin. The first is haspotioneffect which will check if an entity has the specified potion effect and if it has a high enough level. The second is called isburning and will check if the specified entity is on fire.
----------, Apr 30, 2022

Summery

This is a quick hotfix that prevents asynchronous item spawning.
----------, Apr 26, 2022

Summery

This update adds two new native functions to the plugin. The first is a keyword called modifydurability it can be used to add or set the durability of any item in a specified equipment slot. The second is ishealthpercentat which is used to check if the specified entity has a certain percentage amount of health. This update also removes all previously deprecated keywords and conditions from version 5.11.
----------, Apr 23, 2022

Summery

This update adds two new native ability triggers whose function is self-explanatory. They are called double-left-click and double-right-click respectively. The delay in between clicks must not be more than half a second for it to count.
----------, Apr 2, 2022

I am so frustrated that I made such a dumb mistake that I don't even want to write this. I just fixed a bug fix, feeling good.
----------, Mar 26, 2022

Summery

There was a bug in version 5.11 where you could not interact with items unless it was a shift-click. This bug has been patched.
----------, Mar 26, 2022

Summery

The first major part about this update is that it deprecated four widely used conditions that used to be used to check if a player was holding a specific item. These conditions will still work for the next few updates but have been removed from the documentation and will be removed from the plugin itself in the near future. The interpreter will warn you about deprecated usage if you set your debug level to the default level of two or higher. These conditions have been replaced with the isusingitem condition and the isusingcustomitem condition.

The second part of this update adds two new keywords for changing and setting player experience. Keep in mind that these keywords use individual experience points instead of levels. These keywords are called setexperience and addexperience respectively (to remove experience provide the addexperience keyword with a negative number). You can read more about the math behind experience in Minecraft here.

This update also brings a new condition to check player experience, the isexperienceat condition.

All of these new keywords and conditions have been added to the plugin's documentation.
----------, Mar 26, 2022

Summery

There was a bug in both versions 5.10 and 5.10.5 where usage of the setblockat keyword with a block targeter would throw a null pointer due to a mixup of importing the wrong class with the same name in my code.
----------, Mar 21, 2022

Summery

This update is a quick hotfix that will prevent null pointers when you enter an invalid color on some item options.
----------, Mar 21, 2022

Summery

This update adds two new native keywords to the plugin called setblock and setblockat. These two keywords allow you to change the material of the block at the provided location in the forms of constants or targeters respectively. The other change is support for banner patterns on shield items. More information about the shield changes can be found here.
----------, Mar 20, 2022

Summery

This update adds support for the entity targeter in the command keyword to reference data about other entities.
There are three cases:

  • You use the targeter and it is not even valid for the ability trigger, in that case it will act like normal text, nothing will happen
  • You use the targeter but the entity is not a player, in this case it will replace "?entity" with the entity's UUID
  • You use the targeter and the entity is a player, in that case it will replace "?entity" with the player's username
The next thing this update brings is the addition of the removeeffect keyword that will allow you to remove potion effects from entities.
----------, Mar 17, 2022

Summery

This update adds two new native ability triggers. The first is arrow-hit-entity this trigger fires when a bow is shot and the arrow lands on an entity. The second is arrow-hit-block this trigger fires when a bow is shot and the arrow lands on an block. You can use the entity and block targeters respectively on both triggers. Another change is the deprecation of the old mythicmobsskill keyword. The deprecation reminder has been changed from a log level of 1 to a level of 2 (warning instead of info). It has been removed from the wiki and will only work for versions below version 5 and will be removed in the near future.
----------, Mar 12, 2022

Summery

This update adds a new native condition called isinworld that checks if the player the executed ability revolves around is in a given world. It has one parameter that is the internal world name just like the teleport keyword. An example is provided on the plugin documentation.
----------, Mar 5, 2022

Summery

This update adds a new native ability trigger called right-click-entity that will be fired whenever a player right clicks an entity while wearing or holding a custom item with said ability (it has both the player and entity targeters). The update also changes the give item commands and keywords so now you cannot provide an amount greater than 999 or less than zero. And now if you try and give an item to a player but their inventory is full, the item will drop on the ground right next to them.
----------, Feb 26, 2022

Summery

This is also pretty small update that fixes an error with the iswearingcustomitem condition that did not properly check if the item worn by the entity was in fact a custom item and resulted in a null pointer exception.
----------, Feb 20, 2022

Summery

This is a pretty small update that fixes a small bug that occurred in version 5.5 (previous update) that threw an error in console and interfered with the functionality of the garbage collector when the inventory holder was an instance of a tile state.
----------, Feb 19, 2022

Summery

First and foremost, this update adds a new field that can be used on all equippable custom items called wearable . The wearable field defaults to true and can be explicitly set to false if you wish to restrict it's usage. There is more information on the plugin's documentation. Another change this update brings is that the garbage collector is now able to check the item on the player's cursor and fixed an issue where the garbage collector did not update items when picked up by a player.

Dev API

This update now makes the AbilityTrigger classes trigger method to be nullable. If the trigger method returns null the api will assume that you wish for the execution to be cancelled.
----------, Feb 18, 2022

Summery

This update adds a quick hotfix that addresses a minor bug with the previous version of the plugin (5.4) that interfered with the ability and randomability keywords.
----------, Feb 10, 2022

Summery

This update adds a new field to the main configuration file called
failed-item-place. By default all custom items are not able to be placed on the ground (if the custom item is a block). If a player tries to place an item, you now can customize the message sent to the player (will default to null). This update also brings a minor syntax change, in previous updates, the interpreter would ignore the character case of targeters, this is no longer true (for example "?Player" was a valid targeter, it is not anymore).

Dev API

This update now asserts that all api getter methods will never return null and adds jetbrains annotations to them. If you call these methods before the plugin is enabled it will now throw a runtime exception (specifically an IllegalStateException).
----------, Feb 9, 2022

Summery

This update adds two new item defender options to the main configuration file. This is explained in detail in the item defender section of the documentation. This update also adds minor bug fixes and refactoring in the backend.
----------, Feb 5, 2022

Summery

This update adds a few bug fixes to the plugin. The first is an issue where the new ability trigger system introduced in the previous update would not properly execute all abilities from the trigger if a previous item it was looking at failed the conditions to execute. The second bug is one that has existed for quite a while, this is an issue with the garbage collector where it would update items that did not have full durability (with no other reason to update).
----------, Jan 26, 2022

Summery

This update adds a new native dependent condition called isinregion. It can be used to detect if a given location is inside a WorldGuard region. Naturally, this condition depends on the WorldGuard plugin. You can read more about the condition on the plugins wiki/documentation.

Dev API

This update removes the deprecated class ExpectedValues and its inner class ExpectedPrimatives.
----------, Jan 21, 2022

Summery

This update refactored a large section of the plugin's internals but does not add any real features for most users. If you do not use the developer api, you can skip this update (it adds infrastructure that will allow for higher quality feature updates in the future). If you do use the developer api, this update is a must.

Dev API

This update adds a new gigantic section of the developer api that is used to dynamically register new ability triggers, just as you would with keywords and conditions. You can read more about the new api in the tutorial on the plugins wiki, right here.
----------, Jan 14, 2022

Summery

This update adds fixes a major bug that deletes all items that are not custom items via a mistake I made when I previously refactored the garbage collector system.

Features
  • Bug fix
----------, Jan 3, 2022

Edit: THIS BUILD IS UNSTABLE

Summery


This update adds new syntax for cooldown messages that allow them to be customizable. You can find all the info about the new syntax here. This update also completely revamps the Item Defender system. The system now prevents the usage of custom items in almost every crafting situation to prevent human error. This comes with the disadvantage that the system can now only be modified via the usage of the developer api, the old options in the main configuration file are of this update, completely ignored.

Dev API

This update now adds a static method to the InnovativeItemsAPI class to get the instance of the ItemDefender. The ItemDefender class was completely recoded and now has the getBlacklistedInventories() instance method to get a mutable set of all the types of inventories the defender prevents custom items to be interacted with. Also the deprecated getContext() method in the FunctionContext class has been fully removed.

Features
----------, Dec 27, 2021

Summery

This update adds a new native condition to the plugin called isfalling. The condition takes in either a player targeter or an entity targeter and will be true if the entity is falling in the air.

Dev API

Added a new built-in implementation of the ExpectedArugments interface in the form of ExpectedNum. Deprecated the FunctionContext.getContext() method and replaced it with FunctionContext.getRawArguments().

Features
  • Added new isfalling condition
  • Added ExpectedEnum api class
----------, Dec 25, 2021

Summery

This update has some developer api changes

Dev API

The update also renamed the ExpectedValues class to ExpectedPrimitive to clarify the purpose of the class. The ExpectedValues class has not been removed yet (though it has been deprecated) and it will be removed in the near future. Deprecated api methods in the InnovativeItemsAPI class have also been removed.
----------, Dec 18, 2021

Summery

This update adds 1.18 support to the plugin and also removed deprecated api methods and replaced them with newer versions.

Features
  • 1.18 support
  • Updated main developer api util class
----------, Dec 9, 2021

Summery

In this update I added the new soulbound field to custom items that allow you to write custom items that are kept on death.

Features
----------, Nov 27, 2021

Summery

In this update I added an optional field to abilities with cooldowns to allow you to make players aware that the ability is on cooldown and how much time is left. More information is on the example section of the cooldowns page.

Features
----------, Nov 17, 2021

Summery

In this update I have added support so now you can execute mythicmob skills as a player instead of being limited to mobs only. I also did some internal code cleanup but that probably doesn't mean much to you guys.

Features
  • More MythicMob support
----------, Oct 27, 2021

Summery

In this update I added support for the mythicmobs plugin by adding a new native keyword called mythicmobsskill. This keyword allows you to let another entity to execute a mythicmobs skill (players cannot execute mythicmobs skills). You can find a list of all native keywords here.

Features
  • Added mythicmobsskill keyword
----------, Oct 23, 2021

Summery

In this update I added plugin dependent function support to the plugins developer api. This will allow myself and other developers using our api to make more complex functions in the future. If you do not use the developer api, this update does not anything of major use to the plugin.

Features
----------, Oct 16, 2021

Summery

In this update I added the strict field in the main plugin config.yml. The strict field defaults to true when no field is provided. When using the plugin, you may want to execute abilities that do not share a common ability context, now in previous versions, this simply was not possible and you would be given a warning in console, this is no longer the case. If the strict field is set to false, it will replace any missing fields will fallback values to make sure the ability can execute smoothly, this being said, it may result in unintended interactions and is unsafe, so it is highly suggested to keep the strict field as true if possible.

Features
  • The strict field in the main config.yml
----------, Oct 7, 2021

Summery

In this update I added new ability cooldowns. You can read about them in more detail here.

Features
----------, Sep 30, 2021

Summery

It has come to my attention that there were anonymous abilities in the default configuration files of the free version of the plugin. This was a mistake on my part and I apologize. This issue has been resolved.

Bug Fixes
  • Removed anonymous abilities from default configuration section
----------, Sep 28, 2021

Summery

This update contains a major performance update. While I was reviewing my code I found quite the mistake that made conditions always fire twice making them very inefficient, this update fixes that issue while also preparing for the next update.

Bug Fixes
  • Fixed conditions firing twice
----------, Sep 27, 2021

Resource Information
Author:
----------
Total Downloads: 11,440
First Release: Sep 25, 2021
Last Update: Nov 26, 2023
Category: ---------------
All-Time Rating:
10 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings