Skip to content

Releases: jamailun/UltimateSpellSystem

Release 2.6.0

17 Oct 17:01

Choose a tag to compare

New features

New bundled functions

  • rand_int(number, number) -> number Returns a new number between the two parameters. Same as rand_number but returns, as the name subtly implies, an integer.
  • block_below(entity) -> location find the first passable block below an entity.

New bundled animations

  • blocks.circle. Expects a duration, a radius and a types material array. Will run multiple play BLOCK at once. This is a great optimisation for large block animations.
  • blocks.square. Same arguments as the "circle" animation.

Improvements

  • The SpellCaster trait 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 SpellCaster trait not following the spell-caster-trait tick-rate configuration. CPU consumption is as such reduced.

Patch 2.5.2

07 Oct 06:18

Choose a tag to compare

API Features

  • Added events to watch health events caused by spells: EntityDamagedBySpellEvent and EntityHealedBySpellEvent.
  • Added the UltimateSpellsSystem.areAllies(Entity, Entity) to check if two bukkit entities are allied (will use all providers).

Fixes

  • Fixed a bug on the players scope.
  • Fixed a console warning with entities scope.

Release 2.5.1

22 Sep 20:38

Choose a tag to compare

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

28 Jun 06:24

Choose a tag to compare

New features

  • Added animations system.
    • It's a new type of play statement. 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".
  • New syntax for the repeat-statement: repeat [after <delay>] every <period> for <duration> (on top of the existing repeat [after <delay>] <count> times every <period>).
  • Finally, the break and continue will now exist of the repeat statement:

Changes

  • The configuration changed : the spell-caster trait tick-rate can be adjusted.

Fixes

  • The continue statement 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

17 May 13:01

Choose a tag to compare

New feature

  • Added a SpellCaster Citizens 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 effects and particles arrays 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

14 May 17:51

Choose a tag to compare

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 bind command 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

09 May 21:27

Choose a tag to compare

New features

  • Added a /uss status command, 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 an Mob to 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_charged and trial_omen.
  • Fixed issues related to event cancellation.
  • API: fixed issue with casing in providers.

Release 2.2.0

01 May 17:13

Choose a tag to compare

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.
  • 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_caster used 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 players scope will now accept a bukkit entity if it has a player scorebard 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

24 Apr 17:54

Choose a tag to compare

Changes

  • The all-around expression 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 the monsters scope will include it.
    • Thus, Citizens NPCs are not "players" anymore

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];

Fixes

  • The knockback function allows for proper list of number as input vector.

Miscellaneous

  • The send X evaluation will be proceeded synchronously. Don't worry, the execution will still be asynchronous.
  • The example plugin contains a proper conditional spell caster trait. It will probably be integrated into the main plugin in a future date.

Release 2.1.1

21 Apr 09:29

Choose a tag to compare

API change

Exposed a way for external plugin to :

  • Create a SpellRuntime instance,
  • "compile" a USS statement or expression.
    • With this, an external plugin can evaluate any USS string.