Skip to content

MagicSpells-4.0-Beta-16

Latest
Compare
Choose a tag to compare
@TonytheMacaroni TonytheMacaroni released this 13 Nov 16:58
· 33 commits to main since this release
47ecdbb

Note

  • 4.0 Beta 16 has been tested on 1.21, 1.21.1, and 1.21.3.
  • 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.