Releases: jamailun/UltimateSpellSystem
Releases · jamailun/UltimateSpellSystem
Release 2.6.0
New features
New bundled functions
rand_int(number, number) -> numberReturns a new number between the two parameters. Same asrand_numberbut returns, as the name subtly implies, an integer.block_below(entity) -> locationfind the first passable block below an entity.
New bundled animations
blocks.circle. Expects aduration, aradiusand atypesmaterial array. Will run multipleplay BLOCKat once. This is a great optimisation for large block animations.blocks.square. Same arguments as the "circle" animation.
Improvements
- The
SpellCastertrait will only be active if a player is in the same world as the NPC.
Fixes
- Fixed a risk of concurrency issue with animations.
- Fixed a bug with the
SpellCastertrait not following thespell-caster-traittick-rate configuration. CPU consumption is as such reduced.
Patch 2.5.2
API Features
- Added events to watch health events caused by spells:
EntityDamagedBySpellEventandEntityHealedBySpellEvent. - Added the
UltimateSpellsSystem.areAllies(Entity, Entity)to check if two bukkit entities are allied (will use all providers).
Fixes
- Fixed a bug on the
playersscope. - Fixed a console warning with
entitiesscope.
Release 2.5.1
Features
- In the configuration, it is now possible to disable event-cancellation on ATTACK step for a bound spell.
New functions
get_food(entity) -> number: get the food levelof a human entity.set_food(entity, number): set the food level of a human.
Fixes
- Fixed maths with vectors.
- More documentation for animations.
Release 2.5.0
New features
- Added animations system.
- It's a new type of
playstatement. Only 3 bundled animations for now, but as for every feature in the plugin the API is easy to use and allow for extensibility. - For now, the 3 animations are: "items explosion", "spiraling particles" and "circle particles".
- It's a new type of
- New syntax for the repeat-statement:
repeat [after <delay>] every <period> for <duration>(on top of the existingrepeat [after <delay>] <count> times every <period>). - Finally, the
breakandcontinuewill now exist of therepeatstatement:
Changes
- The configuration changed : the
spell-castertrait tick-rate can be adjusted.
Fixes
- The
continuestatement was not working as expected. It has been fixed. - An entity will always be "allied" with itself.
- Fixed an issue with the HIT callback.
Patch 2.4.1
New feature
- Added a
SpellCasterCitizens trait. - Added corresponding command (
/spellcaster <add|remove|list|cast>) and permission (uss.spellcaster).- All of this was previoulsy exposed in the example-plugin in the git repo.
Fixes
- Fixed a java bug which caused
effectsandparticlesarrays to not be read in Orb summon properties.
Miscelleanous
- Warning in console when a spell is compiled with unknown summon properties.
- The complete properties keys can be foud here..
- Can be toggled-off in configuration.
Release 2.4.0
New features
- Cooldown :
- It is now possible to add cooldowns on bind items.
- The cooldown can also be send to the material (like an enderpearl for example). It is configurable.
- The
/uss bindcommand has been completly reworked for easier use.
New properties
- For armor-stand :
small,marker,base_plate,visible,show_arms.
New functions
set_name(entity, string): change the nameplate of an entity.
Miscellaneous
- Configuration file structure has been changed. Check if after you upgrade.
- Configurable default clock value for custom entities.
Release 2.3.0
New features
- Added a
/uss statuscommand, to get the plugin status.
New functions
entity_has_effect(<entity>, <effect_type: string>, [min_level]) -> boolean: check if a specified entity has a potion-effect.set_aggro(<entity>, <target>): set the aggro of anMobto another entity.
Other new elements
- New cost: "permission". The player must have a specific permission to cast the spell.
- Added configuration to set if events should be cancelled on bind-spell cast / trigger-step.
Fixes
- Added the missing potion effects:
oozing,weaving,infested,wind_chargedandtrial_omen. - Fixed issues related to event cancellation.
- API: fixed issue with casing in providers.
Release 2.2.0
New features
- USS functions
- Before, to have a custom function, you needed to use the Java API to register it. It's not mandatory anymore. All USS scripts put into the
functions/folder will be a callable function in your spells. Check the related documentation for more details about the parameters and output syntax.
- Before, to have a custom function, you needed to use the Java API to register it. It's not mandatory anymore. All USS scripts put into the
- Allies system. When playing with friends, you don't want your summoned monsters to attack them.
- Created a provider (Java API) to register custom allies relationships. For example, if you have a homemade plugin to handle parties, you will be able to say if two entities are allied.
- For now, the only "allies" test is using the vanilla Teams systems : entities in the same team with disabled friendly-fire will be considered as allies. More allies-conditions will be added later.
New properties
can_damage_casterused by projectiles. Control if a projectile can damage its own caster.can_damage_allies: the same as before, but with the caster's allies.can_aggro_allies: the same as before, but for standard summons, not projectiles.- In a future version, those properties may change to clarify them.
New function
are_allies(Entity, Entity) -> Boolean: check if two spell entities are allies.
Change
- The
playersscope will now accept a bukkit entity if it has aplayerscorebard tag attached to it. Thus, NPC can now be included in this scope with spells. - (technical) The projectile damage was using NBTs. It's not the case anymore.
Miscellaneous
- API javadoc are published here.
Release 2.1.2
Changes
- The
all-aroundexpression now accepts the scope the be a string. As such, you can do branched-in scopes. - The scopes will also allow for scoreboard tags to act. It's mostyly useful with Citizens plugin.
- Example: if you tag a Citizens NPC with
monster, then themonstersscope will include it. - Thus, Citizens NPCs are not "players" anymore
- Example: if you tag a Citizens NPC with
New functions
get_health(Entity) -> Number: Get the current health of an entity.get_max_health(Entity) -> Number: Get the maximum health of an entity.heal(Entity, number) -> Number: Heal the entity by a certain amount. Returns the new health of the entity.loc_to_list(Location) -> Number[]: transform a location to a list containing the X, Y and Z coordinates.- Allows for easy extractions like:
%y = loc_to_list(position of %caster)[1];
- Allows for easy extractions like:
Fixes
- The
knockbackfunction allows for proper list of number as input vector.
Miscellaneous
- The
send Xevaluation will be proceeded synchronously. Don't worry, the execution will still be asynchronous. - The example plugin contains a proper conditional
spell castertrait. It will probably be integrated into the main plugin in a future date.
Release 2.1.1
API change
Exposed a way for external plugin to :
- Create a
SpellRuntimeinstance, - "compile" a USS statement or expression.
- With this, an external plugin can evaluate any USS string.