Skip to content

0.107

Compare
Choose a tag to compare
@garbagemule garbagemule released this 30 Jul 18:43
· 54 commits to master since this release

Stats and Placeholders and Tools, oh my!

It's safe to say that it's been a while since the last MobArena update, and while MobArena 0.107 does bring a flurry of bug fixes and a handful of exciting new features, it may seem a little underwhelming to some.

However, the main focus of this update is actually not so much about the plugin itself, but about the ancillary projects that have cropped up around it. It is my pleasure to introduce the first two official MobArena extensions:

  • MobArenaStats, a basic persistent stats collection plugin that runs alongside MobArena and uses its events to record various data points about each session and the players that participate in it. The plugin extends MobArena with a handful of commands to interact with the data, but its focus is mainly to just collect session stats in a database (SQLite, MySQL, or MariaDB) so that server owners can make their own leaderboards however they want.
  • MobArenaPlaceholders, a PlaceholderAPI expansion for MobArena. It adds placeholders for MobArena itself, but it also hooks into MobArenaStats, which makes it possible to make in-game leaderboards using third-party plugins dedicated to that kind of stuff. A big thanks to @Maroon28 for getting this project on its feet!

The projects live in the new MobArena organization on GitHub, and they are free, open source software, just like MobArena is. GitHub Releases and GitHub Actions are currently the only distribution channels, but that may change in the future (dedicated Spigot resource for Stats, PAPI eCloud publishing for Placeholders).

Note that both projects require MobArena 0.107 or later to work!

There is also a little bonus project, Mule's Tools, a place for web-based utilities that can aid in working with MobArena config-files. The only available tool right now is the Wave Analyzer, which helps visualize the wave progression of an arena (which waves will spawn at which wave number).

Goodbye 1.8 and 1.12

MobArena has a long history of maintaining backwards compatibility for older server versions for as long as possible. The strategy was to target older versions of the Bukkit API, which has had major breaking changes en masse since 1.9. As the API continues to evolve, additional breaking changes are inevitable, and this makes it increasingly difficult to maintain backwards compatibility, while also adding support for modern aspects of the game.

I believe everyone should have the opportunity to enjoy MobArena if they want to. However, the effort required to maintain support for 1.8 and 1.12 has become a significantly limiting factor in the further development of the plugin. That's why I have decided to drop support for versions prior to 1.13, and as a result, there are no builds for 1.8 and 1.12 this time around.

If anyone would like to continue to maintain versions of MobArena for 1.8 and/or 1.12, please feel free to hit me up on Discord, and I'll help you get started. I will leave the respective branches in the repo for a while, so anyone else can fork the project and pick up where I left off.


Added

  • New monster variant angry-bees can be used to spawn angry bees.
  • Husks, drowned, piglins, hoglins, and zoglins can now be spawned in their baby versions using the baby prefix seen on other monster types (e.g. baby-zombie).
  • Pet names are now per-class configurable via the optional pet-name property, which defaults to <display-name>'s pet (the <player-name> variable is also supported).
  • New per-arena setting auto-leave-on-end can be used to automatically "kick" spectators when the current session ends.
  • New per-arena setting clear-wave-leeway allows for tweaking the number of mobs allowed to be alive before the next wave spawns. The setting affects clear-wave-before-next, clear-wave-before-boss, and the final wave check, and it defaults to 0.
  • New per-arena setting auto-ignite-fuse makes the fuse time for auto-ignited TNT configurable. The unit is ticks and defaults to 80.
  • Added boss abilities disorient-all, fetch-all, pull-all, and throw-all. These abilities work like their target-specific and distance-based counterparts, but affect all players in the arena.
  • (API) MobArena's internal command handler now supports registering pre-instantiated subcommand instances. This should make it easier for extensions to avoid the Singleton anti-pattern for command dependencies.
  • (API) MobArena now fires MobArenaPreReloadEvent and MobArenaReloadEvent before and after, respectively, reloading its config-file. This should allow extensions and other plugins to better respond to configuration changes.

Changed

  • MobArena now targets the Minecraft 1.19 version of the Spigot API (but still works on 1.13-1.18). This should make it easier to tackle feature requests and bug reports related to modern Minecraft.
  • Monsters are no longer stripped of the weapons they spawn with naturally, only their armor. This should improve forwards compatibility with new weapon-reliant monsters.
  • The regex pattern for the player list command is now less greedy, so it will only match on /ma players, /ma playerlist, and /ma player-list. The previous pattern matched on anything that starts with player, which rendered the /ma player-stats command in MobArenaStats impossible to invoke.

Fixed

  • Pillagers and vindicators no longer spawn without their much-needed weapons.
  • Piglins, piglin brutes, and hoglins no longer zombify. This fixes a bug where the mobs would despawn due to the zombification process.
  • Zombies, husks, drowned, zombie villagers, piglins, hoglins, and zoglins without the baby prefix are now forced into adulthood to prevent them from occasionally spawning as babies.
  • Evokers are once again capable of spawning vexes on 1.18.1+.
  • Reward groups with nothing in them no longer cause errors when earned/granted.
  • The title-based announcer and the title-based boss health bar have been fixed to work with the breaking change to the Title API in Spigot 1.17.
  • Arena Signs now correctly update for arenas that don't have kebab-case names in the config-file.
  • Block explosion events cancelled by other plugins now remain cancelled unless MobArena specifically uncancels them for an arena.
  • Flaming arrows now ignite TNT blocks in the arena.
  • Players no longer take fall damage when they leave (or get removed from) an arena while falling.
  • Players no longer take damage from projectiles shot by pets of other players.
  • Normal shulker boxes are now properly removed from inventories of players using the My Items class.
  • Class pets are now correctly removed from the arena when their owner dies, rather than when they leave.
  • MobArena no longer nags players with the mobarena.admin.teleport permission when they engage in a teleport that would have otherwise been blocked.
  • MobArena now correctly sets the source property on auto-ignited TNT.