Skip to content

Releases: TheComputerGeek2/MagicSpells

MagicSpells-4.0-Beta-18

16 Jan 19:27
1996743

Choose a tag to compare

Note

4.0 Beta 18 has been tested on 1.21.10 and 1.21.11.

Breaking Changes:

  • The gametestaddmarker and gametestclearmarkers have been deprecated and no longer work because Mojang removed access to customise the feature.

Changes:

  • The ExternalCommandSpell option command-to-execute-later can now use the rest of the available placeholders.
  • The default value for ops-ignore-(reagents/cooldowns/cast-times) in general.yml has been changed to false.
  • Added namespaced-key to custom recipes as a more appropriate alias to namespace-key. Any namespace may now be used, while magicspells remains the default.
  • Custom recipe choices now support item and block tags. Tags can now be prefixed with # instead of just tag:.
  • Added Predicate support to ResistSpell, InvulnerabilitySpell and damage passive trigger's Damage Type list.
  • With can-cast-with-item: false, spells will remain disabled from casting with items, but the spell will now be bound to its cast item.
  • Most teleportations done by MagicSpells will now attempt to retain passengers if the teleportation origin and destination are done in the same world.
  • Spells and spell effect options no longer override the Entity Data configuration with their defaults (e.g. in SpawnEntitySpell, the gravity of Entity Data is overridden by the spell's gravity, whether set or left as default).
  • The armorstand spell effect options gravity and custom-name-visibility now support expressions.
  • The isnpc modifier condition now passes for all mannequin entities.
  • ConjureSpell's auto-equip now works with all items with the equippable item component.

Additions:

  • Added %a_uuid, %t_uuid, and %r_uuid placeholders.
  • Added new spell effects:
  • Added auto-discover (boolean) to custom recipes. Crafting recipes marked as true (default) will be discovered by any online player, like before.
  • Added potion custom recipe for brewing stands.
  • Added hasrecipe modifier condition.
  • Added .targeted.DiscoverRecipeSpell for discovering or un-discovering recipes.
  • Function expressions are now evaluated with EvalEx rather than exp4j. This adds multiple new functions to expressions, as well as boolean logic. Check out the full list here.
  • Added check-can-cast-with-item to BindSpell, which defaults to true. When false, the can-cast-with-item will no longer prevent binding.
  • Added fake-blocks boolean option (true by default) to .targeted.NovaSpell and nova spell effect.
  • The inventoryclick Passive trigger now has a section format with the following options:
  • Added minion option to MinionSpell which accepts an Entity Data configuration section. Due to conflicts, if minion is used, baby has to be configured within it, not the spell option.
  • New Entity Data options:
  • Added sculk-charge-rotation float option (defaulting to 0) to ParticleCloudSpell. Used for configuring the sculk_charge particle.
  • Added dragon-breath-power float option (defaulting to 1) to particles spell effect and ParticleCloudSpell. Used for configuring the dragon_breath particle.
  • Added a spell section with color Color and power float options to particles spell effect and ParticleCloudSpell. Used for configuring the effect and instant_effect particles.
  • Added color Color option to particles spell effect and ParticleCloudSpell. argb-color will now use color as a default value, so you can use it now when you don't need to modify the alpha channel of the color (opacity). It is mainly used for coloring the flash and tinted_leaves particles (which don't support opacity).
  • EffectLib changes:
    • Added dragonBreathPower float option for dragon_breath particle.
    • Added spellPower float option, which can be used alongside color to color effect and instant_effect particles.
    • Added trailDuration integer option, which can be used alongside color and a target for the trail particle.

Fixes:

  • Fixed an issue with MagnetSpell where items could be picked up when they had data preventing normal pickup.
  • Fixed an issue with the Magic Items caching being unlimited, causing lag when accessed in some cases.
  • Fixed an issue with meta_altitude not considering the world's heightmap or, in some cases, non-passable blocks other than air.
  • Fixed Magic Item fake-glint not applying the enchantment_glint_override item component added in 1.20.x.
  • Fixed an issue with ResistSpell sending a warning with damage-types: true - despite the feature working.
  • Fixed a rounding issue with MultiSpell when using enable-custom-spell-cast-chance.
  • Fixed an issue with MinionSpell option mob-chances not properly accounting for the weighted probability total being > 100.
  • Fixed an issue with the path_to mob goal default speed being too slow.
  • Fixed an issue causing FireballSpell, ForcetossSpell, GeyserSpell, ThrowBlockSpell, and LightningSpell not to be detected by DamageEmpowerSpell.
  • EffectLib fixes:
    • Fixed color not coloring flash and tinted_leaves particles.
    • Fixed entity_effect particle behaving like a directional particle and ignoring particleCount.
    • Fixed material support for block_crumble and block_marker particle.

MagicSpells-4.0-Beta-17

04 Jun 03:30
4296ac9

Choose a tag to compare

Note

4.0 Beta 17 has been tested on 1.21.4 through 1.21.8.

Notes for developers:

As of #1024 BuffSpell#turnOff is no longer an abstract method, but it now calls BuffSpell#turnOff(LivingEntity) for all entities in a new BuffSpell#getActiveEntities method, so you don't have to call it yourself. When implementing Buff spells, please override BuffSpell#getActiveEntities, and if you implement BuffSpell#turnOff, call super.turnOff().

Breaking Changes:

  • The default value for the DrainlifeSpell options take-type & give-type has been changed from the deprecated health type to health_points. health and its related spell options damage-type and ignore-armor, which depend on Bukkit Damage Causes, should be replaced with the new drain-damage-type option.
  • Passive spells configured with helper-spell: true will now trigger for any player.
  • The ParticleCloudSpell option potion-effects now relies on the common Potion Effects List format, which causes a minor breaking change in the string variant of the format (<potion> <duration> <amplifier> <ambient> <particles> <icon>), where ambient now refers toggles hidden, and particles now toggles ambient.

Changes:

  • Removed character limitation (alphanumeric + _) on default values of the %arg placeholder in spell messages and string expressions.
  • Removed [3, 16] length limitation on player names in string expressions for the %playervar and %playerpapi placeholders.
  • Spell cooldown now supports function expressions.
  • RegrowSpell can now target bogged.
  • ShearSpell can now target all Shearable. Added vanilla-sheep-shearing boolean option for backwards compatibility, which defaults to false.
  • Some of our features have been deprecated, and better alternatives have been added. More information can be found on the linked pages:
  • MagicSpellsEntityDamageByEntityEvent now has its own HandlerList; this requires plugins to listen for it explicitly. This event should generally not be used. InvulnerabilitySpell, ResistSpell, fataldamage, givedamage, takedamage still listen to the event for legacy support.
  • Removed most usages of MagicSpellsEntityDamageByEntityEvent.
  • Lowered the default value of the buff-check-interval option in general.yml from 100 to 1.
  • The duration option of buff spells now supports variable replacement.
  • Non-players can now activate the equip and unequip passive triggers.
  • The invert and pass-power subspell cast arguments now support expressions.
  • Item Entity Data options, such as entity equipment and the item_display's item, now support string expressions and the vanilla item format.
  • Due to a Paper bug which causes maximum bow force not to be restrained in the [0, 1] interval, the default for the BowSpell option maximum-force has been changed from 1 to 0 so that it's not checked by default.
  • Spell effects may now be a list of configuration sections rather than being mapped to a name.
    effects:
      - position: target
        effect: lightning

Additions:

  • Added predefined spell tags:
    • magicspells:beneficial for spells configured with beneficial: true
    • magicspells:helper-spell for spells configured with helper-spell: true
  • The Legacy String Spell Filter now supports a new form of a String Spell Filter with logical expressions. Some options that only supported the Config Spell Filter now also support the new String filter (but not the legacy one):
    • General Spell Config | interrupt-filter
    • ImpactRecordSpell | filter
    • ListSpell | filter
  • Added meta variables:
    • meta_attack_cooldown - It gets the current cooldown for a player's attack, with 1.0 representing a fully charged attack.
    • meta_current_tick
    • meta_body_yaw
  • Added the respect-item-cooldowns option to general.yml, which defaults to false. When true, an item with a cooldown (white hotbar overlay) cannot be used to cast or cycle spells.
  • Spell shared-cooldown has been expanded with a Config format and Spell Filters.
  • Added usingitem modifier condition. Passes if the Magic Item in the ConditionArg is actively "used" or consumed.
  • Added the transform-entities option to LightningSpell. Defaults to true. When transform-entities: false, the lightning spawned by the spell will not transform entities (turn villagers into witches, pigs into zombified piglins, etc.).
  • Added support for the armorstand effect on the ProjectileSpell.
  • Added the input passive trigger.
  • Added the input modifier condition.
  • Added the trail section to the particles spell effect, for use with particle-name: trail.
  • Added the stop-on-success option to TargetedMultiSpell. Defaults to false. Stops subspell processing when a subspell successfully casts.
  • Added the real-time-duration option to buff spells. Defaults to false. When true, duration is tracked using real time, instead of ticks. As such, lag will not impact the duration of the buff spell.
  • Added options to Entity Data:
  • Added the pass-args subspell cast argument. With pass-args=true, arguments from the parent spell cast are used for the subspell cast, instead of the value of the args subspell cast argument.
  • Added the .targeted.GlowSpell as a replacement to the now deprecated .targeted.ext.GlowSpell.
  • Added options ParticleCloudSpell to configure particles:
    • dust_color_transition - color, to-color and size options under a dust-transition section
    • entity_effect - argb-color option
  • Added apply-physics to ReplaceSpell, a boolean option, defaulting to true.
  • Added wait-time (Integer, defaults to 0) to particlecloud spell effect. This overrides the default behaviour where the radius is ignored for 20 ticks and particles only spawn at the center of the cloud.
  • Added str-cant-cast-by-command to general.yml. This lets you configure the existing message sent by /ms cast self (/c) when the spell is configured with can-cast-by-command: false.
  • Spells with helper-spell: true now allow for any player to use their configured incantations.
  • Added biome tag support to the biome modifier condition.
  • Added the swinghand spell effect.

Fixes:

  • Fixed an issue where the ModifyCooldownSpell only worked if the spell was on cooldown.
  • Fixed an issue with the LightwalkSpell throwing errors while turning off and not removing light blocks in some cases.
  • Fixed an issue with the LilywalkSpell not working correctly.
  • Fixed an issue with Subspell's chance cast argument being in the range 0-1 instead of 0-100.
  • Fixed an issue with the ExternalCommandSpell's block-chat-output and store-chat-output options, which didn't correctly capture plugin chat message types. Those options unfortunately can no longer capture Vanilla command chat output.
  • Fixed an issue with the DisguiseSpell sending errors when Lib...
Read more

MagicSpells-4.0-Beta-16

13 Nov 16:58
47ecdbb

Choose a tag to compare

Note

  • 4.0 Beta 16 has been tested on 1.21, 1.21.1, 1.21.3, and 1.21.4.
  • All changes are already on the wiki.

Breaking Changes:

  • Magic Item comparison no longer uses a liberal method of attribute modifier checking. Attribute modifiers must now have the same identifier and be listed in the same order to match.
  • Removed the VolleySpell option knockback-strength. This option stopped functioning due to internal changes. The effect can be simulated by the new weapon Magic Item option.

Changes:

  • The patterns option for magic items now supports resource locations for patterns.
  • You can now list * as a wildcard in the ResistSpell options normal-damage-types and spell-damage-types.
  • DisguiseSpell now requires PacketEvents instead of ProtocolLib. See here for why.
  • The wearinginslot modifier condition's ConditionVar format has been changed to be <slot/slot groups>=<magic items>. <slot/slot groups> specifies a list of equipment slot groups, separated by ,. Old slot names still work, such as hat, helm, tunic, leg, pant, shoe, boot. Values can be optionally prefixed by ! to negate them. <magic items> specifies a list of magic items separated by |. Negated groups have priority, hence wearinginslot mainhand,feet,!armor=stick|paper would not match even if paper were to be in the feet slot.
  • Enchantments can now be specified using resource locations.
  • Removed unneeded libraries from the plugin jar.
  • Version dependent functionality will no longer preemptively fail on untested versions. Caution should still be exercised.
  • The hug-surface option of ParticleProjectileSpell will now follow block shapes more closely. In addition, the option will now respect the values of the ground-materials, disallowed-ground-materials, ignore-passable-blocks, and fluid-collision-mode options.

Attributes:

  • Attribute names can now be specified using resource locations.
  • Defining attribute modifier slots is no longer limited to Magic Items, but availabe to all spells with the attributes option, such as EntityEditSpell, MinionSpell, and SpawnEntitySpell.
  • The valid slot values have been extended to these values and * (main_hand, hand, and off_hand are still valid).
  • String-based attribute modifiers now support a fifth argument to define a resource location as an id.
  • Attribute modifiers now have a section-based format, with keys type, id, operation, amount, and slot.
attributes:
    - type: generic.movement_speed
      id: magicspells:fast_movement
      amount: 1
      operation: add_value
      slot: any

Entity Data:

  • Renamed a variety of entity data options. Old names will continue to work, but it is suggested to migrate to the new names.
    • Axolotl: type -> axolotl-variant.
    • Villager: type -> villager-profession.
    • Cat: type -> cat-variant.
    • Wolf: color -> collar-color.
    • Enderman: material -> carried_block.
    • Falling Block: material -> falling-block.
    • Fox: type -> fox-type.
    • Frog: type -> frog-variant.
    • Horse: color -> horse-color, style -> horse-style.
    • Llama: color -> llama-variant, material -> llama-decor.
    • Mooshroom: type -> mooshroom-type.
    • Parrot: type -> parrot-variant.
    • Rabbit: type -> rabbit-type.
    • Sheep: color -> sheep-color.
    • Shulker: color -> shulker-color.
    • Tropical Fish: color -> tropical-fish.body-color, pattern-color -> tropical-fish.pattern-color, type -> tropical-fish.pattern.
  • Added the villar-type option to entity data. Specifies a spawned villager's type.
  • Added the wolf-variant option to entity data. Specifies a spawned wolf's variant.
  • Expanded the collar-color (formerly color) option on entity data to cats.

Additions:

  • Added the fixedtime modifier condition. Checks if the time is fixed in the target location.
  • Added SprintSpell.
  • Added the message modifier action. Sends a rich text message specified in ActionVar to the caster.
  • Added the permanent option (Boolean, true by default) to EntityEditSpell. When permanent: false, attributes added by the spell no longer save with the entity. These attributes persist when the plugin unloads.
  • Added the force option (Boolean, false by default) to EntityEditSpell. When force: true, attribute types not normally present on an entity are forcefully registered, allowing normally incompatible modifiers to be applied. Any attributes added this way will use the attribute's default base value.
  • Added remove option (Boolean, false by default) to EntityEditSpell. When remove: true, the spell will instead always remove the configured attributes, based on their resource location identifier.
  • Added the markerarmorstands targeting element. When specified, armor stands with the marker attribute can be targeted. Aliases: markerstand, markerstands, and markerarmorstand.
  • Added VolleySpell options:
    • pierce-level (Integer, 0 by default) - Specifies how many entities the arrow can pierce through. It must be between 0 and 127.
    • weapon (Magic Item) - Specifies an item to consider as the weapon for the spawned arrows. Enchantments will generally function as normal, except for the piercing enchantment. Use the pierce-level option instead.
    • arrow-item (Magic Item) - Sets the pickup item for the arrows. Note that Volley arrows cannot normally be picked up, but this option is there for other plugins.
    • color (Color) - Spawned arrows emit particles matching the color.
    • potion-type (Potion Type) - Spawned arrows will apply the potion effect as if the arrow was created from a tipped arrow.
    • potion-effects (Potion Effect List) - Specifies additional custom effects to be applied on hit entities.
  • The defaults.yml file now supports all spell options, as well as properly supporting replacement.
  • Valid target lists now support entity type tags. For example: can-target: #undead, players

Fixes:

  • Fixed an issue with the night condition incorrectly succeeding in dimensions with a fixed time.
  • Fixed an issue with entity data relating to the axis-angle format for display entity rotations.
  • Fixed an issue that caused the external::vanilla magic item serializer not to output the correct format.
  • Fixed an issue with the intermediate-effects and intermediate-hitboxes options of ParticleProjectileSpell and ProjectileSpell that caused intermediate positions to be calculated improperly.
  • Fixed an issue with the intermeditate-hitboxes option of ProjectileSpell that caused intermediate hits to continue to process after the projectile had stopped.
  • Fixed an issue with the wearinginslot modifier condition that caused the incorrect slots to be checked.
  • Fixed an issue with VolleySpell that allowed the spawned arrows to be picked up.
  • Fixed magic items being incorrectly split in the following passive listeners: anvil, craft, dropitem, enchant, equip, foodlevelchange, givedamage, grindstone, hitarrow, hotbardeselect, hotbarselect, leftclickitem, missarrow, pickupitem, playeranimate, prepareenchant, rightclickitem, smith, takedamage, and unequip.
  • Fixed an issue with the orbit spell effect position where the effect was being duplicated.
  • Fixed an issue with the color parameter of the effectlib spell effect not supporting specifying alpha (opacity) values.
  • Fixed an issue with the yaw and pitch options of the /ms cast at command being incorrectly labeled in help commands.
  • Fixed an issue with the duration of the dragondeath spell effect.

MagicSpells-4.0-Beta-15

12 Jun 20:47
28c30db

Choose a tag to compare

Version Support

This build only supports Paper server version 1.20.6.

Breaking Changes

  1. During the update to 1.20.5/6, the identifiers of several data types were renamed to match their vanilla counterparts. For example, the spell_mob and redstone particles were renamed to entity_effect and dust, respectively. In most cases spell options will still accept the legacy names; users are still advised to migrate away from them, however.
  2. The entity_effect particle now requires a color. For the particles, particlespersonal and particlecloud spell effects, this is done with the new argb-color option.

Bugfixes

  • Fixed an issue that prevented ListSpell and SublistSpell from listing temp-granted spells.
  • Fixed an issue that caused ListSpell and SublistSpell to list empty spell lists improperly in certain situations.
  • Fixed an issue that prevented SummonSpell from functioning without a caster when casting at an entity from a location.
  • Fixed an issue that prevented replacement and certain spell effect options from working when using the trail effect position in certain situations.
  • Fixed an issue that prevented ProjectileSpell from checking intermediate entity collisions properly.

Changes

  • ListSpell and SublistSpell now list spells in alphabetical order.
  • SummonSpell now checks can-target and target-modifiers, as well as applying variable-mods-target.

Additions

  • Added the argb-color option to the particles, particlespersonal and particlecloud effect types. Specifies an ARGB color to be used for the particle. Applicable to the entity_effect particle.
  • Added the body and body-drop-chance options to the equipment section of entity data. Applicable to mob entities.
  • Added the only-count-on-success option to LoopSpell. When true, an iteration of the loop only counts towards iterations if all of the subspells in spells succeed. Defaults to false.
  • Added the pitch and yaw angle options to spell effects, entity data, and OffsetLocationSpell. Specifies an angle for pitch and yaw, respectively. Optionally supports starting with a ~ to specify a relative angle. Both options default to ~.
  • Added the should-burn-in-day option to entity data. If false, the spawned mob will no longer burn in the day. Defaults to false.

MagicSpells-4.0-Beta-14

18 May 14:33
3d80d93

Choose a tag to compare

Supports only version 1.20.4.

Changelog

MagicSpells-4.0-Beta-13-patch-1

06 Nov 18:28
1507fdf

Choose a tag to compare

Bugfixes:

  • Fixed an issue where the height option of VelocitySpell was divided by 10.
  • Fixed an issue where the velocity option of VelocitySpell wasn't divided by 10.
  • Fixed an issue with ExplodeSpell that caused it to error out in specific circumstances.
  • Fixed an issue that prevented change-pitch option of ParticleProjectileSpell from functioning properly.
  • Fixed an issue that caused self-targeting to error out in specific circumstances.
  • Fixed an issue that prevented the cast-time spell option from functioning.
  • Fixed an issue that caused the duration option of the bossbar effect to not function properly.

Additions:

  • Added the projectile-horiz-offset, projectile-vert-offset, projectile-horiz-spread, and projectile-vert-spread options to HomingMissileSpell.
  • The remove option of CleanseSpell now supports removing totems spawned by TotemSpell, using the format totem:<totem spell name>.
  • The namespace-key option of the bossbar effect now supports replacement.

MagicSpells-4.0-Beta-13

19 Oct 18:30
d8c0381

Choose a tag to compare

This release includes many bugfixes, long awaited global variable replacement and many other additions!
Beta 13 supports 1.19.4 - 1.20.2.

Changelog

MagicSpells-4.0-Beta-12

10 Jul 09:17
7e23bad

Choose a tag to compare

Supports 1.19 only.

Minor changes and bugfixes

Changelog:

Added always modifier.
Added bow-items, ammo-items, disallowed-bow-items, disallowed-ammo-items for BowSpell.
Added strict-enchants and strict-enchant-level for MagicItems.
Added potion-effects list for PotionEffectSpell (Format: <PotionType> <Duration> <Strength> <Hidden> <Ambient> <Icon>).
Added icon parameter for PotionEffectSpell.
Subspells will check their target lists when casting at an entity.

MagicSpells-4.0-Beta-11

03 May 18:00
ba2ed2a

Choose a tag to compare

Supports 1.18.2 only.

Minor changes and bugfixes
Requires Java 17 and Paper or its forks to run

Changelog:

Added spell-on-entity-location for BowSpell.
Added spell-on-entity-location for BeamSpell.
Added spell-on-entity-location for ProjectileSpell.
Added RiptideSpell.
Added RiptidingCondition.
Added Anvil, Enchant, Grindstone and Smith passive triggers.
Added str-on-teach for spells.
Added LoopSpell, LoopActiveCondition and OwnedLoopActiveCondition.
Added force option for particles effect.
Added error-log-limit in general.yml
Added world.time and world.gametime data elements.

MagicSpells-4.0-Beta-10

22 Nov 11:32
951be38

Choose a tag to compare

Supports 1.17.1 only.
Minor changes and bugfixes
Requires Java 16 and Paper or its forks to run

Changelog:

Added support for dust_color_transition and vibration particles:

  • added to-color, which accepts a hex value
  • added arrival-time, which accepts an integer value
  • added vibration-offset, which accepts a vector value
  • added vibration-relative-offset, which accepts a vector value

Added pass-targeting for AreaEffectSpell and TargetedMultiSpell, which is true by default. It passes down the target list to its subspells when its set to true, means you dont have to make separate AOE subspells if you want them to target the caster and other entities.
Fixes for MenuSpell
BowSpell supports crossbows
Added effectlib-instance-limit to general.yml - its the limit for effectlib effect instances, default to 20000.
Added terminate-effectlib-instances to general.yml - whether it should terminate all effectlib effect instances when the effectlib-instance-limit is reached, otherwise it just wont play further effectlib effects. default set to true.
Added equip and unequip passive triggers.
Added partial block data support, currently works for NovaEffect, LookingAtBlock, InBlock, OnBlock, OverBlock, TestForBlock and UnderBlock modifiers.