|
|
5.4.0
|
|
|
=====
|
|
|
|
|
|
Highlights
|
|
|
----------
|
|
|
### Version support
|
|
|
Added support for 1.20.2
|
|
|
|
|
|
### Damage
|
|
|
- Added support for multi-type damage
|
|
|
- Added DamageTags, allowing you to specify any number of arbitrary tags on any damage mechanics using tags=THIS,THAT e.g. `- damage{amount=5;tags=FIRE}`
|
|
|
- Added `damageTag` condition, checks if the damage that triggered the skill has the given tag
|
|
|
- Changed element damage attribute to just apply a damage tag
|
|
|
|
|
|
### Projectile Upgrades
|
|
|
- Projectile Tick-Interpolation
|
|
|
- Added DISPLAY and TEXT bullet types
|
|
|
- Item Display Bullet Type: Add "tx", "ty" and "tz" (t from translation) to offset the visual position of the bullet, also "translation"("pos", "offset") to set all the values at the same time in the x,y,z format
|
|
|
- Added `bulletBrightness`, and `bulletBrightnessBlock` + `bulletBrightnessSky` for some reason to Display bullets
|
|
|
- Added `bulletBillboard` to Display bullets
|
|
|
- Added `bulletForwardOffset` to mob bullets
|
|
|
- Added `bulletCullingDistance` option to display and text bullets
|
|
|
|
|
|
### Stat System
|
|
|
- Added the [Stat System](/Stats)
|
|
|
|
|
|
### Holograms
|
|
|
- Added our own hologram system
|
|
|
- All hologram-related features no longer require a 3rd party hologram plugin
|
|
|
- Made it so mob names can be multi-line using nameplates feature on 1.19.4+ using `\n` for newlines
|
|
|
|
|
|
### Spawners
|
|
|
- Major spawners rewrite - see spawners section
|
|
|
|
|
|
General
|
|
|
-------
|
|
|
- Added `/mm test mechanic [line]` command to test executing a skill line
|
|
|
- Allow CustomModelData in `packinfo.yml`
|
|
|
- Upgraded the item editor with a bunch of new buttons
|
|
|
|
|
|
Mobs
|
|
|
----
|
|
|
- Added support for mobs having players as parents
|
|
|
|
|
|
Added new mobs types:
|
|
|
- `BLOCK_DISPLAY`
|
|
|
- `CAMEL`
|
|
|
- `CHEST_BOAT`
|
|
|
- `ITEM_DISPLAY`
|
|
|
- `SNIFFER`
|
|
|
- `TEXT_DISPLAY`
|
|
|
|
|
|
### AI
|
|
|
- Added `radius` option to `LookAtPlayers` goal
|
|
|
- Added `attackReachModifier` option to MeleeAttackGoal (defaults to 4)
|
|
|
|
|
|
Mechanics
|
|
|
----------
|
|
|
|
|
|
### NEW: Cancel
|
|
|
- Cancels the current skill tree
|
|
|
|
|
|
```yml
|
|
|
SomeSkill:
|
|
|
Skills:
|
|
|
- message{m="hello"} @server
|
|
|
- cancel ?isMonster #cancels the rest of the skill from executing
|
|
|
- message{m="bye"} @server
|
|
|
```
|
|
|
|
|
|
### NEW: Hit
|
|
|
- Simulates a physical hit from the caster using their damage attribute, held weapon, etc
|
|
|
- Same options as `baseDamage` mechanic
|
|
|
- Takes melee stats into account (regular skill damage won't unless configured to specifically)
|
|
|
|
|
|
### NEW: SetTransformation
|
|
|
- Transforms the target display entity
|
|
|
```yml
|
|
|
- transformation{action=set;transformation=translation;value=0,0,1} @self
|
|
|
|
|
|
- transformation{action=set;transformation=right_rotation;value=0,0,0,1} @self ~onwhatever
|
|
|
```
|
|
|
Action valuees: SET, ADD, MULTIPLY, DIVIDE
|
|
|
Transformation values: TRANSLATION, SCALE, RIGHT_ROTATION, LEFT_ROTATION
|
|
|
|
|
|
### NEW: ClearExperienceLevels
|
|
|
|
|
|
### NEW: pushBlock
|
|
|
- Pushes the targeted block in the given direction. Follows the same rules as pistons.
|
|
|
- Direction can be either cardinal direction or a location targeter. If given a targeter, the block will be pushed once towards that location
|
|
|
- Mechanic also supports `onPush` and `onFail` skills which will fire at the block's location
|
|
|
|
|
|
Mechanic follows piston rules and will push other connected slime blocks as well, but only if they're adjacent or in front of the block - it cannot push connected blocks _behind_ the pushed block.
|
|
|
|
|
|
### NEW: `setProjectileDirection`
|
|
|
- Changes calling projectile's direction to the given target
|
|
|
|
|
|
### NEW: `setProjectileBulletModel`
|
|
|
- Added `setProjectileBulletModel{model=X}` mechanic, can be called by a projectile to change the bullet's item's model ID (only works with DISPLAY bullets)
|
|
|
|
|
|
### NEW: `StatAura`
|
|
|
- Applies a stat modifier to the target as an aura.
|
|
|
|
|
|
Example:
|
|
|
```
|
|
|
- stataura{stat=PARRY_CHANCE;type=ADDITIVE;value=0.5;duration=200} @self ~onDamaged
|
|
|
```
|
|
|
- would increase the caster's parry chance stat by 50% for 10 seconds when damaged
|
|
|
|
|
|
### ArrowVolley
|
|
|
- Add "pickup"/"canPickup" attribute, defaults to true
|
|
|
|
|
|
### Damage Mechanics
|
|
|
- Added `powerAffectsDamage`, `ignoreShield`, `ignoreEffects`, `ignoreResistance`, `damagesHelmet`, and `noAnger` boolean options to damaging mechanics
|
|
|
|
|
|
### Particle Effects
|
|
|
- Added new particles: DRIPPING_CHERRY_LEAVES, FALLING_CHERRY_LEAVES, LANDING_CHERRY_LEAVES
|
|
|
- Added `startSideOffset` placeholder support to particle effect mechanic
|
|
|
|
|
|
### Projectile Mechanics (Projectile, Missile, etc)
|
|
|
- Added `tickInterpolation` option (defaults to 0)
|
|
|
- Changed mob bullet's Y offset option to bulletYOffset
|
|
|
|
|
|
Setting tickInterpolation will interpolate that many points between each tick in a projectile and execute the onTick and onHit skills on those points as well, doing multiple 'ticks' in a single tick.
|
|
|
|
|
|
This can be used to fill in the gaps with super-fast projectiles and also prevent entities from being skipped over by insanely fast projectiles.
|
|
|
|
|
|
- Added `interactable=true`, `onInteractSkill` to projectiles (requires 1.19.4+), used to allow the player to hit the projectile similar to a ghast fireball.
|
|
|
|
|
|
### Missile
|
|
|
- Added `hugSurface` and `bounce` options to missile mechanic (and all other related options similar to the Projectile mechanic)
|
|
|
|
|
|
### Lunge
|
|
|
- Added `oldMath/old/o` attribute to determine if it should use the old wonky math (default: false)
|
|
|
|
|
|
### Orbital
|
|
|
- Added `hugSurface` to orbitals
|
|
|
|
|
|
### PotionClear
|
|
|
- Added `type`/`types` attribute to `potionClear` mechanic
|
|
|
|
|
|
### Switch
|
|
|
- Allow to run MetaSkills & Code Refactor
|
|
|
|
|
|
### Rally
|
|
|
- Rewrote Rally mechanic. Added `conditions` option to rally, and all attributes are now optional.
|
|
|
|
|
|
### Volley
|
|
|
- Add "pickup"/"canPickup" attribute, defaults to true
|
|
|
|
|
|
Conditions
|
|
|
----------
|
|
|
|
|
|
### NEW: DamageTag
|
|
|
|
|
|
Added damageTag condition, checks if the damage that triggered the skill has the given tag
|
|
|
|
|
|
`- damageTag{tag=FIRE}`
|
|
|
|
|
|
### NEW: directionalVelocity
|
|
|
|
|
|
- Added `directionalVelocity` condition, which checks if the target has a velocity matching the given parameters.
|
|
|
- Added side, forward and vertical aliases to DirectionalVelocityCondition
|
|
|
|
|
|
Options:
|
|
|
|
|
|
| Option | Description | Default |
|
|
|
|--------|-------------|---------|
|
|
|
| x | The X velocity (a range) | null (not checked) |
|
|
|
| absx | Use the absolute value of the X velocity | false |
|
|
|
| y | The Y velocity (a range) | null (not checked) |
|
|
|
| absy | Use the absolute value of the Y velocity | false |
|
|
|
| z | The Z velocity (a range) | null (not checked) |
|
|
|
| absz | Use the absolute value of the Z velocity | true if relative=true, otherwise false |
|
|
|
| relative | If true, X is calculated as forward/backward and Z is side-to-side | false |
|
|
|
|
|
|
If the X, Y, or Z velocity is not specified, that component of the velocity is not checked. The 'absx', 'absy', and 'absz' options determine whether the absolute value of the corresponding velocity is used in the check. If 'relative' is true, the velocities are considered relative to the entity's orientation.
|
|
|
|
|
|
### NEW: MaterialOnCooldown
|
|
|
`materialIsOnCooldown` condition, aliases `materialCooldown`, `matCooldown`
|
|
|
arguments `material` / `mat` / `m`, defaults to enderpearl
|
|
|
|
|
|
true if material type is on cooldown for the player, false otherwise
|
|
|
|
|
|
### NEW: SpawnReason
|
|
|
|
|
|
Audiences
|
|
|
---------
|
|
|
- Added TRACKED audience, which are the players that are rendering the caster on their client
|
|
|
|
|
|
Placeholders
|
|
|
------------
|
|
|
|
|
|
### General
|
|
|
- Added `<caster.stat.STAT_NAME>` placeholders
|
|
|
- Added `<target.block.data>` - returns the block data of a block
|
|
|
- Added `<target.item.type>` placeholder
|
|
|
- Added placeholder support for variable name in all variable mechanics
|
|
|
|
|
|
### NEW: Custom Placeholders
|
|
|
|
|
|
Added custom placeholders file to make it easier to configure static/reusable and even conditional values.
|
|
|
|
|
|
Each pack can now have a `placeholders.yml` in the base pack directory that contains any number of placeholders.
|
|
|
|
|
|
These can be static or you can define conditional placeholders - the first one that evaluates true will be chosen, or the Default if they're all false.
|
|
|
|
|
|
An example placeholders.yml might look like this:
|
|
|
```
|
|
|
TestPlaceholder: 'some value'
|
|
|
TestConditionalPlaceholder:
|
|
|
Day:
|
|
|
Conditions:
|
|
|
- day
|
|
|
Value: day
|
|
|
Night:
|
|
|
Conditions:
|
|
|
- night
|
|
|
Value: night
|
|
|
Default: idk
|
|
|
|
|
|
Added ability to define random placeholders that will just choose a random line from a list in the `placeholders.yml` file
|
|
|
```
|
|
|
TestRandomPlaceholder:
|
|
|
- red
|
|
|
- green
|
|
|
- blue
|
|
|
```
|
|
|
|
|
|
Spawners
|
|
|
--------
|
|
|
- Rewrote spawner saving/loading
|
|
|
- Rewrote spawner positioning algorithm
|
|
|
- Added SpawnConditions to spawners that target the position it's trying to spawn a mob
|
|
|
- Regular conditions continue to function as "Activation Conditions" e.g. does the spawner even try
|
|
|
- Added tab completion to a lot of the spawner commands
|
|
|
- Fixed various spawner related bugs
|
|
|
- Made some API changes for 5.5, which will add a GUI editor for spawners
|
|
|
|
|
|
Bugs / Other
|
|
|
------------
|
|
|
- Added placeholder support to a bunch of new things
|
|
|
- Updated some of the default configuration files to be more up to date
|
|
|
- Refactor some skill tree stuff
|
|
|
- Merge ExtendedDamageMetadata into DamageMetadata
|
|
|
- Fixed NoSuchMethodError in CrouchingCondition
|
|
|
- Fixed spawner config field for spawn conditions to actually be SpawnConditions
|
|
|
- Fixed loading error on 1.16
|
|
|
- Fixed remove attribute on SetLeashHolder mechanic
|
|
|
- Fixed @targetlocation targeting block location instead of actual location when hitting maxDistance for players
|
|
|
- Fixed projectiles with no hitboxes being broken
|
|
|
- Fixed default values for PlayersInRingTargeter
|
|
|
- Fixed ClassNotFoundException on mohist
|
|
|
- Fixed `preventImmunity` option to DamageMechanics
|
|
|
- Fixed/removed vehicle alias from the mount targeter
|
|
|
- Fixed spawner addcondition command not saving conditions after a restart
|
|
|
- Fixed issues with removing spawner conditions
|
|
|
- Fixed `<target.block.type>` placeholder ||maybe||
|
|
|
- Fixed sudoskill to use the new centralized player profiles for consistency
|
|
|
- Fixed ConcurrentModificationException with spawners saving during shutdown
|
|
|
- Fixed NPE when loading mob type with no display name
|
|
|
- Fixed case where `Despawn: false` mobs from a spawner would despawn anyway
|
|
|
- Fixed blockmask with variables again
|
|
|
- Fixed PhatLoots support not taking looting enchants into account
|
|
|
- Fixed ConcurrentModificationException with spawners when plugin is shutting down
|
|
|
- Fixed various issues with threat tables
|
|
|
- Fixed several saving issues when cloning a spawner
|
|
|
- Fixed looting issue with phatloot support
|
|
|
- Fixed various bugs with holograms and packet bullet culling
|
|
|
- Fixed custom nameplates not appearing for new players that join the server
|
|
|
- Fixed projectile velocity with text bullets
|
|
|
- Fixes to prevent spawner saving corruption
|
|
|
- Fix radius option on speak mechanic
|
|
|
- Fixed crashes involving mob bullets and orbitals
|
|
|
- Fixed an issue with DisplayTransformationMechanic
|
|
|
- Fixed `DisplayOptions.Block` for block_display entities
|
|
|
- Fixed non-string Crucible NBT placeholders not returning their value
|
|
|
- Fixed NPE in PlaceholderStringImpl
|
|
|
- Fixed Multi-Templates to be read on the correct order (Left to Right)
|
|
|
- Fixed onAttack and onDamaged executing with power=0 instead of power=1
|
|
|
- Fixed bugs with arrow bullets
|
|
|
- Fixed offset option not working on speech bubbles
|
|
|
- Fixed SetRotation just completely borked
|
|
|
- Fixed DamageModifiers and HealthBars being broken on recent versions
|
|
|
- Fixed Display bullet orientation on 1.20+
|
|
|
- Fixed inconsistencies with ProjectileVelocity mechanic when relative=true
|
|
|
- Fixed `config.yml` not generating on new servers
|
|
|
- Fixed and tested variable saving for all the different scopes
|
|
|
- Fixed variable duration not calculating expiration time properly
|
|
|
- Fixed bullets and several other errors on the orbital mechanic closes #1310
|
|
|
- Fixed fov condition's rotation attribute not working closes #1298
|
|
|
- Fixed tadpoles closes #1304
|
|
|
- Fixed some errors with damage calculation closes #1295
|
|
|
- Fixed NPE when using an mmoitem in a holding condition closes #1291
|
|
|
- Fixed various issues with DamageModifiers
|
|
|
- Fixed NPE in PotionClear mechanic
|
|
|
- Fixed weird inconsistency with zombified piglin vanilla overrides
|
|
|
- Fixed intersection error with projectile bouncing
|
|
|
- Fixed itemSpray items being able to be picked up by hoppers
|
|
|
- Fixed @FloorOfTargets meta-targeter not working with location targets
|
|
|
- Fixed NPE in Rally mechanic
|
|
|
- Fixed `KillMessagePrefix: ''` not disabling the kill message prefix
|
|
|
- Fixed the "-p" flag for the killall command
|
|
|
- Fixed NPE in listactive command
|
|
|
- Fixed NearbyAudience checking for targets that might be in different worlds
|
|
|
- Fixed `CAST` condition action executing multiple times
|
|
|
- Fixed `zombified_piglin` not recognized as a valid mob type closes #1319
|
|
|
- Fixed SwitchMechanic not working for some conditions
|
|
|
- Fixed HasOffhandCondition to check for other living targets instead of only players
|
|
|
- Fixed EjectPassengerMechanic being called async
|
|
|
- Fixed particles to use nearby audience by default instead of world, reducing RX
|
|
|
- Fixed `relative` option in VelocityMechanic. Now acts similar to projectileVelocity.
|
|
|
- Fixed KillCommand not removing non-living mythicmobs
|
|
|
- Fixed raytrace mechanics running async from auras |
|
|
\ No newline at end of file |