⚙ 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 23, 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 premium version of the plugin the new custom crafting recipes feature has been added. You can read more about it here.
----------, 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.
----------, 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 (also supports hex color codes). 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 adds a new premium version only feature that allows server owners to use hex color codes in both abilities and items. An example for text the color black would be: &#000000text here

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.

Features
  • Hex color code support
----------, 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 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
  • Ability Cooldowns
  • Removed anonymous abilities from the default configurations generated by the plugin
----------, Sep 30, 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

Summery

In this update I added a new ability trigger along with one new native keyword. The ability trigger is called crouch and will trigger when the player sneaks/crouches in game. The keyword is called lunge and will propel the entity in the direction they are looking. You can read more about keywords and ability triggers here!

Features
  • New crouch ability trigger
  • New lunge keyword
----------, Sep 25, 2021

Summery

In this update I added one new native keyword and one new native condition. The keyword is called setequipmentslot and gives you the ability to set any armor slot or hand to any item of your choice (keep in mind it will delete any item currently in said slot). The condition is called isfacing and will only return true if the direction the entity is facing matches the provided direction you gave. You can read more about native keywords and conditions here.

Features
  • New setequipmentslot keyword
  • New isfacing condition
----------, Sep 24, 2021

Summery

In this update I added a few cool features to the developer api that allow third party developers more ease with working with the internals of the plugin. The first is I added a few methods to the InnovativeItemsAPI util class listed in the features section. The second is that I added a custom event that you can listen for with the normal bukkit event api that will fire every time an ability is about to be executed.

Features
  • New executeAbility api method
  • New getCustomItem api method
  • New getAbility api method
  • New AbilityExecuteEvent
----------, Sep 22, 2021

Summery

In this update I added one new native keyword called shootprojectile and is used to fire a projectile in the direction the executing player is facing. You can read more about the native keywords in the plugin here.

Features
  • New "shootprojectile" keyword
----------, Sep 21, 2021

Summery

In this update I implemented the new Item Defender System. I believe it would be quite redundant to explain it here since there is a wonderful explanation now on the plugin documentation. You can read it here.

Features
----------, Sep 9, 2021

Summery

In this update I added two new native conditions to the plugin. The first is called isblock and is used to check if a block at a given location is a specific material (using targeters). While the second condition is called isblockat and is also used to check if a block at a given location is a specific material but uses hard coded coordinates instead. You find a list of all native conditions here.

Features
  • New "isblock" condition
  • New "isblockat" condition
----------, Aug 30, 2021

Summery

In this update I added a couple of native keywords and functions and fixed a minor bug. The keyword is called explode and will allow you to make an explosion at the target location. The first condition is called isblocking and is used to check if the target entity is blocking with a shield. The second condition is called isgliding and is used to check if the target entity is gliding with an elytra. The final condition is called isentitytype and is used to check if the target entity is the specified type.

Features
  • New "explode" keyword
  • New "isblocking" condition
  • New "isgliding" condition
  • New "isentitytype" condition

Bug Fixes

In some of the newest updates, the right-click and left-click ability trigger would not work if looking at air. This bug has been fixed.
----------, Aug 23, 2021

Summery

This is a smaller update that adds a few safety features to prevent some notable runtime errors that were achievable in previous versions.

Features
  • Ability context compatibility detection
  • Ability execution methods will thrown an error if run on the main thread
----------, Aug 18, 2021

Summery

This update adds two new native keywords to the plugin. The first is called dropitem. The dropitem keyword drops a vanilla minecraft item at the specified location. The second keyword is called dropcustomitem. The dropcustomitem keyword drops an innovative custom item at the specified location. You can find a list of all native keywords here.

Features
  • New "dropitem" keyword
  • New "dropcustomitem" keyword
----------, Aug 17, 2021

Summery

This update adds one new native keyword to the plugin and changes the ability and randomability keywords handle compatible ability triggers. The new keyword is called sudo. This keyword has the ability to force a player to execute a given command.

Features
  • New "sudo" keyword
  • The ability and randomability keywords used to only accept abilities with the same trigger as the ability being executed, now it will check if the ability has a trigger that is compatible with the current one. Meaning if the current ability trigger had valid targeters of: ?player and ?block, but the ability you wanted to execute only had a valid targeter of ?player, this would now work.
----------, Aug 13, 2021

Summery

This update adds three new native keywords to the plugin and changes how function targeters are handled internally. The first is called teleport, it has the ability to teleport the specified entity to a location in any world. The second keyword is called teleportto and it can teleport the specified entity to the location of another event related location. The third and final keyword added is called time and it sets the in game time in the given world. You can read more about all of these keywords in the plugins keyword section of the documentation.

Features
  • New "teleport" keyword
  • New "teleportto" keyword
  • New "time" keyword
  • Function targeters now are parsed in a far more normal and clean way (the old way was really bad and before the more advanced keyword api was implemented)
----------, Aug 11, 2021

Summery

This update adds three new native keywords to the plugin. The first is called switcheroo and can only be used on entity related ability triggers, it has the ability to swap the positions of the casted player and the trigger related entity. The second keyword is called actionbar and it sends an actionbar message to the specified entity. The third and final keyword added is called titlemessage and it sends a title message to the specified entity's screen. You can read more about all of these keywords in the plugins keyword section of the documentation.

Features
  • New "switcheroo" keyword
  • New "actionbar" keyword
  • New "titlemessage" keyword
----------, Aug 10, 2021

Summery

This update is pretty small and adds one minor thing while changing two things. The big feature this update is for the developer api, if a developer marks a keyword or condition class with the deprecated annotation, the interpreter will send a warning in console (debug level two) to inform the server admin/owner that the function is deprecated. On the smaller side, the garbage collector event logs now have a debug level of five, and the item placeable field is now false by default.

Features
  • Deprecation support for functions (API)
  • Garbage collector events now send their logs at a level of NOISE (level five)
  • The item placeable field is now false by default
----------, Aug 5, 2021

Summery

This update adds a fair amount of new features into the plugin. The first is now the plugin will generate default configuration files every time the plugin is reloaded so new creators can start using the plugin right away. If you have a good grasp on the plugin and wish to remove the default items, you can do so in the main config with the generate-default-configs field. The other features include one new keyword, two new conditions, and the none ability trigger.

Features
  • Default configuration files
  • New "velocity" keyword
  • New "isplayer" condition
  • New "issneaking" condition
  • New "none" ability trigger
  • (Developer API) Refactored the CustomItem interface, it is now an abstract class to prevent repetitive code
----------, Aug 1, 2021

Summery

This update is pretty small as it only adds a player argument to the innovativeitems execute command. This now means that the command can be executed from console to target a player. Or from a player to another player. If the command is called by a player and the player argument is omitted, it will use the player who executed the command as a fallback. If the player argument is omitted and the executor is console, the command will fail to execute.

Features
  • New player argument on the innovativeitem execute command
----------, Aug 1, 2021

Summery

This update adds the ability to create anonymous abilities, this is a complex feature that already has an in depth explanation here . This update also brings the execute command that gives admins the ability to execute abilities for players regardless of the ability trigger or item they are holding. Another command added in the update is the clean command that instructs the garbage collector to clean a players inventory.

Features
  • Anonymous Abilities
  • New "innovativeitems execute" command
  • New "innovativeitems clean" command
----------, Jul 31, 2021

Summery

In this update I added the "block-break" ability trigger, with this you can use the player and block targeter. I also made some changes to the API in this update by adding interfaces into the context api to allow more context classes to be built without interfering with premade keywords and conditions.

Features
  • New "block-break" ability trigger
  • Revised context classes/interfaces
----------, Jul 30, 2021

Summery

In this update I added six new native conditions to the plugin. You can read about all of the native conditions here.

Features
  • New ispermissionpresent condition
  • New isgamemode condition
  • New isholdingitem condition
  • New isholdingcustomitem condition
  • New iswearingitem condition
  • New iswearingcustomitem condition

Bug Fixes

In older versions, if a player was wearing armor that was not a custom item, and was holding an item in their hand with the timer trigger, the trigger would not fire, this issue is now fixed.
----------, Jul 30, 2021

Summery

In this update I added two new native conditions to the plugin. One of which is called "ishealthat", this condition checks if the targets health is within a certain bounds. The other is "istime", this condition compares the provided time of day, with the current time of day (in game). You can read about all of the native conditions here.

Features
  • New ishealthat condition
  • New istime condition

Bug Fixes

In older versions, if a developer was to specify a condition for the string data type, it would not be used at all. This update fixes that issue.
----------, Jul 29, 2021

Summery

In this update I made a lot of internal and external changes. The biggest thing I added was conditions. Conditions allow you to check a true or false statement before the keywords section is fired. I also added api support for conditions so now Java developers can not only make custom keywords, but also conditions. I also added a validity check on keyword and condition names the moment before they are adding into the cache. This will prevent unexpected errors from occured and add an extra layer of safety. I also fixed arguments being parsed incorrectly if an extra open parenthesis was added into a keyword. I also fixed a bug where the dev log levels of DEV and NOISE would not be shown in console. On to some api changes, the class known as KeywordContext is now known as FunctionContext. The class known as KeywordTargeter is now known as FunctionTargeter. The keyword call() method is now called the calling() method. The KeywordManager class is now known as the FunctionManager class.

Features

Bug Fixes

In previous versions with the new log changes, the DEV and NOISE log level would fail to be shown in console, this is now fixed. Another bug is that if an open parenthesis character was used, the keyword would be parsed incorrectly, an error now prevents this from happening and if you would like to use the open parenthesis character, you can use the escape character (\) feature.
----------, Jul 28, 2021

Summery

When writing configuration for the plugin you may run into a small issue. Let's say that you want to use the message keyword to send a message to a player, but you want to add proper punctuation because you’re not a monkey. Because of that, you find yourself adding commas to the message text, but there is an issue, the interpreter tells you that you provided invalid arguments. This is because when a comma is placed in a keyword’s arguments, the interpreter thinks it means you want to add a new argument, but in this case, you just want to add a normal comma. This is where the new escape character comes in. By placing a backslash (\) before the comma you are telling the interpreter that you want the comma to act as a normal character and to “escape” all of its special functionality. If you wrote the keyword:

- ‘message(?player, Hello, my name is Bob.)’

It would throw an error, but if you wrote it like this:

- ‘message(?player, Hello\, my name is Bob.)’

It would work perfectly fine and when the message is parsed the backslash is removed so the final message sent to the player would be:

Hello, my name is Bob.

Features
  • Added the escape character to all keywords for commas
  • Added to the randomability keyword for semicolons
----------, Jul 26, 2021

Summery

This update adds a bit more functionality to debug levels. The update adds two new debug levels, DEV and NOISE. DEV level are logs that are only useful to Java developers using the provided api and NOISE logs are just extra information that would normally be useless. Because of the two new debug levels, the maximum debug level has been changed from three to five. Read more about debug levels here.

Features
  • DEV debug level
  • NOISE debug level
  • Debug level range now 0-5
----------, Jul 26, 2021

Summery

This update adds extra support for developers using our api because this update restructured our internal class structure for the inheritance of all expected keyword arguments. Making a new implementation is as easy as implementing the ExpectedArgument interface and provided an instance of the implementing class inside a keywords constructor.

Features
  • New internal argument support
  • The API class "ExpectedManualSophisticated" was renamed to "ExpectedManual" and the old "ExpectedManual" class is now known as "ExpectedArgument"
----------, Jul 25, 2021

Summery

This update adds two new native keywords to the plugin. The "removehelditem" keyword, and the "gamemode" keyword. You can read more about the keywords on the wiki page. This update also adds a small change to the keyword api with new support for conditions that must be met for parsing to complete for primitive types.

Features
  • New removehelditem keyword
  • New gamemode keyword
  • New conditions support (keyword api)
----------, Jul 25, 2021

Summery

This update adds three new native keywords to the plugin. The "playsound" keyword, the "giveitem" keyword, and the "givecustomitem" keyword. You can read more about the keywords on the wiki page.

Features
  • New playsound keyword
  • New giveitem keyword
  • New givecustomitem keyword
----------, Jul 24, 2021

Summery

This update is pretty big, but for most server owners, these changes have no effect on you whatsoever. This update brings major keyword api changes that allow code to be far less repetitive and cleaner at scale. This is because most code written for keywords was repetitive and building the load method was copy and paste work. This will no longer be an issue as I have removed said method and replaced it with a far more in depth constructor.

Features

As most if not all of these changes are api changes, I feel as though it would be unnecessary to post them all on this page. Please read the updated developer api wiki and if you have any questions please join the support discord and ask me there!
----------, Jul 23, 2021

Summery

This is quite a small update so I will make this quick. In this update I added new log methods for developers using the Innovative Items API.

Features
----------, Jul 19, 2021

Summery

In this update I made a few changes to improve the plugin overall. The first thing I did was add support for custom banners and custom fireworks . The second thing I did was add the placeable field , this allows you to prevent players from placing custom items that are blocks. After that I added an update checker, if enabled, this will notify you when the plugin is first enabled if a new version is available for download. I also found a mistake I made in the first version that is now fixed. Also, please keep in mind that this is quite the large update and most updates in the future will not be of this size.

Features

Bug Fixes

In both this and the first version of the plugin, you were able to omit the amount argument in the item get command, it would set "1" as the default. I forgot to add this to the item give command as well. That is now fixed...
----------, Jul 18, 2021

Resource Information
Author:
----------
Total Downloads: 119
First Release: Jul 18, 2021
Last Update: Nov 26, 2023
Category: ---------------
All-Time Rating:
9 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings