Skip to content

0.105

Compare
Choose a tag to compare
@garbagemule garbagemule released this 08 Nov 17:32
· 112 commits to master since this release

Minor breaking changes

MobArena 0.105 includes a rework of how arenas and classes are referenced, both internally in the plugin, but also in permissions, commands, etc. Instead of the ambiguous and arbitrary "config names", MobArena now uses "slugs", which just means a kebab-case version of a name. For example, the slug for an arena named "Castle of Doom" will be castle-of-doom, and the slug for the implicit "My Items" class is my-items. All commands that take arena or class names as arguments will tab complete slugs, so they should be fairly easy to figure out.

The goal of this change is to make the plugin more consistent about arena and class references in commands, permissions, etc., as well as to allow for multi-word names. Backwards compatibility has taken a backseat for the sake of maintainability and clarity, so certain adjustments may be necessary in some setups:

  • Permissions: All permissions for arenas and classes must be changed to the new slug-based permission keys. For example, the permission for the "My Items" class is now mobarena.classes.my-items.
  • Class signs: It may be necessary to recreate the signs for classes with multi-word names. The name on the sign should match the name in the config-file (or the slug). For example, My Items (or my-items) instead of Myitems.
  • Default classes: The per-arena setting default-class may need to be adjusted. The class name should match the name in the config-file (or the slug). For example, if the default class is "My Items", the value should be My Items (or my-items).
  • Custom integrations: Custom commands or integrations may need to be adjusted accordingly. If you're running a setup like that, you probably already know what you're doing and what you need to do. If not, hop on Discord.

Added

  • A new ready state is now available for arena sign templates. Signs are in this state when all players in the lobby have readied up, but the arena has not yet started due to a start delay timer. Check the wiki for details.
  • Arena signs now support dynamic list entry variables for 4 different player lists. As an example, <notready-1> results in the name of a player in the lobby who hasn't readied up yet. This is useful for visualizing who is holding up the lobby. Check the wiki for details.
  • Elytra are now supported chest pieces in class chests.
  • Boss names now support color codes.
  • New per-arena setting arena-warp-offset can be used to spread out players randomly by an offset from the arena warp. This should help prevent players taking suffocation damage.
  • New per-arena setting announcer-type determines where to display per-arena announcements such as wave spawns, auto start timers, boss abilities, and death messages. Options are title (default) or chat.
  • It is now possible to group rewards. For example, all(stick, bone) results a stick and a bone, while random(all(stick, bone), all(dirt, stone)) results in getting either a stick and a bone or a dirt block and a stone block.
  • The new nothing keyword can be used to not grant a reward. This can be used in a crude way to create "loot table"-style reward systems where there is a chance that something is reward, but it might also just be nothing.
  • Boss rewards also support the all() and random() functions as well as the nothing keyword.
  • New command /ma addreward <player> <thing> can be used to add a reward to an arena player's reward list. This can be useful for hooking into the rewards system from scripts or other plugins.
  • The /ma addarena and /ma autogenerate commands now supports multi-word arena names.

Changed

  • The Root Target ability now uses potion effects (slowness, slow falling, and negative jump boost) instead of repeated teleports. This should make for a smoother root experience.
  • Permissions for arenas and classes are now based on "slugs". It is now possible to configure permissions for arenas and classes with multi-word names (including "My Items"). Check the Permissions page on the wiki for details.
  • Commands that resolve arena and/or class names now consistently resolve and tab complete "slugs" instead of arbitrarily "squashed" names. This greatly improves support for multi-word names.
  • The class signs generated by the /ma autogenerate command now use class names from the config-file instead of arbitrarily "squashed" names.
  • Leaderboards now use arena and class names from the config-file instead of arbitrarily "prettified" names.
  • Using spectate-on-death: true no longer forces players out to their join location/exit warp before moving them to the spectator area. This should prevent "jumpy" behavior in multi-world setups.
  • Config-file errors imposed by incorrect usage of /ma setting no longer cause "internal errors". Instead, the errors are properly communicated in the command output similar to how the /ma reload command works.
  • Guardians and elder guardians no longer instantly retarget players when they break line of sight. This should make their behavior work a bit closer to vanilla.
  • (API) MobArenaHandler now returns class name slugs in the getPlayerClass() methods.

Fixed

  • Elytra and Netherite armor pieces now correctly auto-equip if specified in the generic armor node in classes in the config-file.
  • Players should now properly respawn at the spectator area rather than at world spawn on servers with plugins that override respawn locations.
  • Config-files with missing pet-items nodes no longer errors. A missing pet-items node in global-settings is treated as empty, i.e. no pet items will be registered.
  • The player-time-in-arena setting has been fixed.
  • The soft-restore setting has been fixed for blocks broken by players. Note that the functionality is still unreliable for non-trivial blocks.
  • Items in class chests are now cloned before they are made unbreakable and given to players. This fixes an issue where setting unbreakable-weapons: false had no effect on the items. Note that any affected items in existing class chests will need to be replaced.
  • (1.8) Potions no longer turn into water bottles.

Removed

  • The MagicSpells integration has been removed. This means that the extra magicspells.yml config-file (if it exists) no longer does anything and can be removed.