Releases: NerdNu/BeastMaster
v2.18.0
- Add
sonic-boom-damage-scale
, which scales the damage inflicted by a warden's sonic boom. This necessitates updating toapi-version: 1.19
, i.e. require a 1.19 server. - Fix support mob spawning and add debug logging thereof. There were two bugs:
- Inherited properties were not considered in support mob calculations.
- Support mobs always would spawn as long as the
support-health
threshold was crossed, irrespective of whetherhealth-step
damage had been inflicted. Now both requirements are honoured.
2.17.1
2.17.0
New features:
- Add
glowing-percent
,invisible-percent
,burning-percent
,ignited-percent
andfuse-ticks
mob properties. - The
glowing
property is deprecated. It still works, but theglowing-percent
property takes precedence.
Improvements:
- Do range checking when setting numeric mob properties.
Other changes:
- Updated to
api-version
1.18 to supportburning-percent
property. - Compatibility with the latest LibsDisguises 10.0.27 API.
v2.16.0
- Add wildcard support to
wg()
andbiome()
predicates, e.g.wg("dungeon*")
orbiome("*ocean*")
. - Fix parsing of ZSL specs so that you can have more than 2 terms in expressions involving the
&
,|
and^
operators, e.g.biome("beach") | biome("ocean") | biome("river") | biome("plains")
.
v2.15.0
v2.14.0
Bug fixes and more enhancements to support NerdNu/DragonFight:
API changes:
- Expose some more common code in the Util class as API.
DropSet.chooseOneDrop()
now never returns null; can returnDrop.NOTHING
.- Add DropSet rename-copy constructor.
Features:
-
Add
slime-can-split
property to allow non-slitting slimes. -
Adjust hurt teleport to get mobs out from under roofs better.
-
Support
restricted
drops (item drops only), that can only precipitated by the player. By default, allitem
drops are restricted, but you can make individual item drops non-restricted to say that they will drop even if the player did not damage the mob. The relevant command syntax is:/beast-loot restricted loot-table-id drop-id true
Bug fixes:
- Fix bug in inheritance of
drops
property. - Configure mobs with the
DEFAULT
spawn reason, EnderDragon in particular. - Ensure that slimes spawned by split have a MobType.
- Prevent mobs from damaging their friends.
- Fix NPE checking friend groups on mobs.
- Play hurt sounds only after projectile immunity is considered.
- Adjust support mob spawn location.
- Fix
plugin.yml
asserting a database is required.
v2.13.0 - new features to support NerdNu/DragonFight
Updated dependencies:
- Bukkit API version 1.15
- LibsDisguises 10.0.0
Bug fixes:
- Fix some NPEs when applying Attributes that correspond to mob properties, e.g.
speed
,flying-speed
. - When spawning mobs, locations are now checked to see whether they are "passable", rather than just
AIR
(which leaves outCAVE_AIR
).
General technical changes:
- BeastMaster can now manage disguises for entities other than mobs (currently projectiles).
- The internal API for spawning mobs from a loot table is now more amenable to use by other plugins.
New mob property types:
- Tag Sets: Comma- or space-separated lists of strings are now stored as sorted sets with case-insensitive string comparison. See mob properties
tags
,groups
andfriend-groups
. - Sounds are input as
<type> [<range>] [<pitch>|random]
, e.g.BLOCK_ANVIL_FALL
,ENTITY_WITHER_DEATH 50.00 0.50
,ENTITY_BEE_HURT 20 random
. When omitted, the default range is 15 metres, and the default pitch (playback speed) israndom
, meaning it is selected randomly in the range 0.5 to 2.0.
Mob property user interface:
- Mob properties are now listed alphabetically by name in help messages for
/beast-mob set
. - Mob properties are now ordered differently in
/beast-mob info
with properties that define the appearance and sound of the mob early in the command output, and properties that define the mob's behaviour put towards the end of the output.
New mob properties:
-
There are new properties that affect mob behaviour:
anger-ticks
sets the duration of anger for bees and pigzombies, and makes wolves angry for an indeterminate period if the ticks are greater than zero. Enderman anger apparently can't be set through the Bukkit API, although I haven't experimented with setting the enderman's target yet.hurt-teleport-percent
is the percentage chance the mob will teleport away when hurt (playing theteleport-sound
). This prevents mobs from standing still when the player has the upper hand. Damage below three health points is ignored to allow the mobs to take small falls without teleporting.
-
New mob properties for sounds:
silent
prevents the mob from playing its default vanilla sounds - useful for disguised mobs that don't sound like their disguise.spawn-sound
is played when the mob spawns.death-sound
is played on mob death.projectile-launch-sound
is played when the mob launches a projectile.projectile-hurt-sound
is played when the mob is hurt by a projectile.melee-hurt-sound
is played for all non-projectile damage to the mob.teleport-sound
is played when the mob teleports.
-
There are new properties for projectiles launched by mobs:
projectile-mobs
replaces launched projectiles per a loot table ID or mob type ID. TheDEFAULT
drop causes the projectile to be not replaced.projectile-disguise
disguises a projectile.projectile-removed
, if true, removes projectiles launched by the mob on impact, rather than sticking around until despawned. This is useful for removing awkward-looking disguised projectiles.
-
There are new properties to configure mobs as immune to projectiles:
projectile-immunity-percent
is the percentage chance that a given projectile will bounce off the mob.projectile-immunity-sound
is the sound played when a projectile bounces off.
-
There are new properties to spawn support mobs when a mob has "low" health.
support-mobs
is the loot table or mob type ID of mobs to spawn.support-percent
is the percentage chance of spawning mobs each time health level conditions are satisfied. If unset, it is effectively a 100% chance.support-health
is how low the mob's health must be for it to start summoning mobs. If unset, it is taken to be the mob's maximum health.support-health-step
is how much the mob's health must decrease for new mobs to have a chance of spawning. If unset, any health decrease is an opportunity to spawn support mobs when the health is below the threshold.
-
Properties that are Tag Sets:
tags
is the set of scoreboard tags to be added to the mob when it spawns.groups
is the set of groups a mob type belongs to.friend-groups
is the set of groups that the mob type refuses to target.
v2.12.2 - Bug fixes and minor enhancements
Bug fixes:
- Prevent mob types being ancestors (parent, grandparent, etc) of themselves (infinite recursion hanging main thread).
- Fix drop location: it was dropping at the player's feet due to a reversed logic condition.
- Ensure that zones produce drops only from placeable blocks. Automatically suggest correct materials for those blocks, e.g.
CARROTS
instead ofCARROT
. - Gracefully handle failure to spawn mobs due to WorldGuard
deny-spawn
region flag. - Ignore case when parsing mob
entity-type
property. - Fix NPE in
destroyDisguise()
.
Enhancements:
- Sort when listing zone blocks and mob replacements.
- Sort drops by type then ID when listing loot tables.
- Show defined drops as green, undefined as red, implicitly defined (vanilla items) as yellow.
v2.12.1
v2.12.0
Enhancements:
- Allow vanilla materials as item IDs without prior definition.
- Vanilla material names are automatically treated as item IDs in loot tables and mob properties (e.g.
main-hand
), if not shadowed by a custom item (or loot table, if the context allows). - References to loot table and item IDs are converted to their canonical letter case.
- References to vanilla materials are automatically converted to upper case.
- Vanilla material names are automatically treated as item IDs in loot tables and mob properties (e.g.
- Improve help text wording and link to documentation.
- List valid drop types when omitted in
/beast-loot add-drop
. - List custom mobs in case-insensitive order.
- List default mobs with alternating colours.
- Use alternating colours when listing mob property names.
- Treat CAVE_AIR and WATER as unobstructed, like AIR, when considering where to drop items.
Bug fixes:
- Fix
baby-percent
property for zombie subtypes. - Correct logging message for mobs as drops.