Skip to content

Releases: NerdNu/BeastMaster

v2.18.0

24 Jan 13:14
Compare
Choose a tag to compare
  • Add sonic-boom-damage-scale, which scales the damage inflicted by a warden's sonic boom. This necessitates updating to api-version: 1.19, i.e. require a 1.19 server.
  • Fix support mob spawning and add debug logging thereof. There were two bugs:
    1. Inherited properties were not considered in support mob calculations.
    2. Support mobs always would spawn as long as the support-health threshold was crossed, irrespective of whether health-step damage had been inflicted. Now both requirements are honoured.

2.17.1

28 Sep 16:32
Compare
Choose a tag to compare

Fixes a bug whereby an exception is thrown if the fuse-ticks property is not set for creepers that are ignited by ignited-percent.

2.17.0

28 Sep 15:31
Compare
Choose a tag to compare

New features:

  • Add glowing-percent, invisible-percent, burning-percent,ignited-percent and fuse-ticks mob properties.
  • The glowing property is deprecated. It still works, but the glowing-percent property takes precedence.

Improvements:

  • Do range checking when setting numeric mob properties.

Other changes:

  • Updated to api-version 1.18 to support burning-percent property.
  • Compatibility with the latest LibsDisguises 10.0.27 API.

v2.16.0

30 Mar 09:50
Compare
Choose a tag to compare
  • Add wildcard support to wg() and biome() predicates, e.g. wg("dungeon*") or biome("*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

26 Mar 14:38
Compare
Choose a tag to compare
  • Fix handling of disguises, particularly for mobs going through portals.
  • Implement wg("__global__") as equivalent to ! wg("*") in Zone Specification Language.

I'm finally getting around to documenting Zones. The wiki page is about 75% complete.

v2.14.0

03 May 11:11
Compare
Choose a tag to compare

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 return Drop.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, all item 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

17 Apr 15:17
Compare
Choose a tag to compare

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 out CAVE_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 and friend-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) is random, 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 the teleport-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. The DEFAULT 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

03 Apr 11:24
Compare
Choose a tag to compare

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 of CARROT.
  • 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

29 Feb 13:34
Compare
Choose a tag to compare
  • Fix missing depend (LibsDisguises).
  • Fix copy/paste error when referencing DisguiseManager.

v2.12.0

17 Feb 16:42
Compare
Choose a tag to compare

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.
  • 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.