Changelog - TheComputerGeek2/MagicSpells GitHub Wiki

Note

4.0 Beta 19 has been tested on 26.1.2 and 26.2.

Breaking Changes:

  • Removed /ms util download/update/saveskin and their permissions (magicspells.command.util.download/update/saveskin).
  • /ms magicitem syntax changed from <magicItem> [amount] [player] to <players> <magicItem> [amount] --drop-leftover.
  • The -p:<power> flag has changed on /ms cast commands to --power <power> or -p <power>.

Changes:

  • All commands now support MC entity selectors.
  • /ms reload [players] - now supports multiple entities.
  • /ms resetcd - now supports multiple living entities and offline players instead of just an online player.
  • /ms mana reset/add/set/updaterank - now supports multiple players.
  • /ms cast as/on - now supports a living entity selector instead of just a player.
  • /ms cast at - now supports the tilde (~) and caret (^) notation for coordinates, --power flag, as well as [spellArgs].
  • In mana.yml the options default-prefix, default-color-full, and default-color-empty (and rank's prefix, color-full, and color-empty) have been replaced in favour of default-bar-format (and rank's bar-format) as Formatted Text.
  • Added text-format to general.yml as a replacement for text-color.
  • The default parameter in the %arg:<index>:<default>% placeholder is now optional (evaluates into an empty string).
  • The item option in itemcooldown now supports Magic Item String.
  • Spell files (files named spell*.yml) can now recursively be stored in spell folders (named spells*), not just on the first level - applies to spell folders too.
  • TimeSpell can now target players when cast as a sub-spell.
  • Removed the default TimeSpell message for str-announce for convenience.

Additions:

  • Added disable-slots to armorstand spell effect. Boolean, defaulting to true.

  • New Entity Data options:

    • Entity:
      • no-physics, persistent, and invulnerable - Boolean
      • fire-ticks and freeze-ticks - Integer
      • visual-fire - true, false, or not_set.
      • pose - Pose
      • pose-fixed - Boolean,false by default
      • scoreboard-tags - Aside from a list of strings of tags to add, you can instead now use it as a configuration sections with a clear boolean flag, or with a add/remove list of tags to modify.
      • passengers - List of Entity Data
    • Living Entity:
      • can-pickup-items - Boolean
      • max-health - Double
    • Mob:
      • aware - Boolean
      • mob-goals:
    • AbstractSkeleton:
      • skeleton section:
        • should-burn-in-day - Boolean
    • Tameable:
      • tamed-owner - Boolean - sets the entity as tamed and the recipient as its owner (caster of the spell or target of a Buff).
    • armor_stand:
      • armor-stand section:
    • cat:
    • chicken:
    • copper_golem:
      • copper-golem section:
        • weathering-state - WeatheringCopperState
        • golem-state - Copper Golem State
        • oxidizing - May be unset, in which case oxidation happens naturally; waxed, in which case it is disabled; or a (Long type) number of ticks until the next weathering state.
    • command_minecart:
      • minecart section:
        • command - String
    • cow:
    • falling_block:
      • falling-block section:
        • cancel-drop and hurt-entities - Boolean
        • damage-per-block - Float
        • max-damage - Integer
    • Frictional:
      • friction-state - true, false, or not_set
    • goat:
      • goat section:
        • has-left-horn, has-right-horn, and screaming - Boolean
    • hoglin:
      • hoglin section:
        • immune-to-zombification and able-to-be-hunted - Boolean
    • mannequin:
      • mannequin section:
        • immovable - Boolean
        • In a skin-parts section, boolean options for cape, jacket, left-sleeve, right-sleeve, left-pants, right-pants, and hats.
        • description - Rich Text
        • main-hand - MainHand
        • profile section:
    • Minecart:
      • minecart section:
        • max-speed - Double
        • slow-when-empty - Boolean
        • display-block-offset - Integer
        • display-block - Block Data
    • pig:
    • piglin:
      • piglin section:
        • can-hunt - Boolean
        • dancing - Integer ticks
    • Piglin Abstract:
      • piglin section:
        • immune-to-zombification - Boolean
    • Raider:
      • raider section:
        • patrol-leader, can-join-raid, and celebrating - Boolean
    • salmon:
    • Sittable:
      • sitting - Boolean
    • shulker:
      • shulker section:
        • attach-face - Block Face - Only cartesian block faces are allowed (N, E, S, W, up, and down)
        • peek - Float (0.0 - 1.0)
    • vindicator:
      • vindicator section:
        • johnny - Boolean
    • zombie_nautilus:
    • zombie_villager:
  • Added .targeted.ApplyEntityDataSpell with entity Entity Data to apply to the targeted entity.

  • Added .targeted.EntityRemoveSpell, which removes non-player entity targets from the world without the death animation.

  • Added levitating and levitated modifier conditions.

  • Added key (Identifier) option to itemcooldown spell effect, referring to all items with the cooldown group with that key. This option takes precedence over item.

  • Added item-model (Identifier) to Magic Items (string and section) format.

  • Added ignore-cast-item-item-model to general.yml.

  • .instant.TimeSpell:

    • Added time as an alias to time-to-set.
    • Added add-time and set-player-time boolean toggles. Player time can be reset with time: 0.
  • .targeted.PasteSpell:

    • Added paste-structure-void (boolean, defaults to false) - Toggle whether structure_void within the schematic will be placed or ignored.

    • Added prevent-overwrite - May be a boolean or a (Predicate of Material, but exclusively block types) - When unspecified or empty, all blocks are overwritten like usual. When true, after filtering out paste-air & paste-structure-void, this option will prevent the paste from succeeding if a schematic block overrides any block in the world. When a Predicate, it only prevents overwriting of blocks that match the predicate. For example, you can allow the replacement of blocks that have the #replaceable tag (plants, liquids, water, etc. - but also light blocks). But you can easily prevent extra blocks with the predicate, like light, barrier, bedrock, etc.

      prevent-overwrite: "!#replaceable && (light && bedrock && barrier)"`
  • Added .instant.WeatherSpell:

    • rain and thunder - Boolean values, unset by default.
    • duration-clear, duration-weather, duration-thunder - Integer ticks. These options override the default randomised weather clocks caused by rain & thunder.
    • player-weather - Ignores all other options because it affects only the player weather. Can be clear, downfall or reset.
  • Added experience spell effect with integer options level and progress ([0, 100] interval), and a reset boolean option. The spell effect can fake the change in experience level and/or progress for the player target of the effect.

  • Added require-supported-item to EnchantSpell, a boolean option, defaulting to true. When disabled, this allows items which are normally not supported by an enchantment to be enchanted on the item. This will always pass for book.

  • Added options to ParticleCloudSpell for configuring the appearance of the trail particle. Under a trail section, you can now configure color (Color), duration (Integer), target-offset (Vector), and target-relative-offset (Vector).

  • Added options to configure the 26.2 geyser particles:

    • To the particles spell effect and the ParticleCloudSpell: Under a geyser section, you can use water-blocks (Integer) and burst-impulse (Float).
    • To the effectlib effects: geyserWaterBlocks (Integer) and geyserBurstImpulse (Float).

Fixes:

  • Fixed an issue with ImbueSpell failing to accept items without any item components.
  • Fixed an issue with LevitateSpell not toggling off active levitation when cast as a sub-spell.
  • Fixed issue #1070 where the meta_absorption meta variable did not update the max_absorption attribute introduced in 1.20.2 before setting absorption, causing the value to be clamped down to the existing max absorption, which is 0 by default.
  • Fixed an issue with meta_experience_points not accepting float values, but only integer values, while its acceptable value range is 0.0 to 1.0.
  • Fixed an issue with the switch expression function by EvalEx failing to compare numeric values properly.
  • The attributedefault modifier condition now properly checks against the default attributes of the target entity type, not the server's default attributes.
  • Fixed an issue with ParticleCloudSpell failing when the trail and vibration particles were used. trail now has new options to configure the particle appearance. The way vibration plays in the particle cloud makes less sense to be available in the spell, so the spell plays the default potion particles instead.
⚠️ **GitHub.com Fallback** ⚠️