MobArena plugin for Minecraft
inv
syntax allows for referencing container indices in the config-file. This should help bridge the gap between class chests and various other parts of the config-file, such as rewards and upgrade waves./ma save-item
command can be used to save the currently held item to disk, which allows it to be used in various places in the config-file. This should help bridge the gap between the config-file and class chests for config-file centric setups.monster-teleporting
allows monsters to teleport inside the arena region. This should allow for stuff like /tp
commands and for Endermen to "do their thing".mobarena.admin.errors
for better error visibility. Players with this permission will get a message if an arena encounters an error. Currently, the only such error is the one resulting from Spigot's "max max health" setting throwing an exception when monster health is set "too high".monster-infight
is set to true
.obsidian-bomb
now correctly counts as monster damage. This means that the explosions only affect other mobs if the per-arena setting monster-infight
is set to true
.auto-ready: true
and a non-zero auto start timer. Note that the combination of auto-ready: true
and a default-class
now requires the use of a start-delay-timer
to prevent the arena from starting immediately when the first player joins.soft-restore: true
.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:
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).
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.
angry-bees
can be used to spawn angry bees.baby
prefix seen on other monster types (e.g. baby-zombie
).pet-name
property, which defaults to <display-name>'s pet
(the <player-name>
variable is also supported).auto-leave-on-end
can be used to automatically "kick" spectators when the current session ends.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.auto-ignite-fuse
makes the fuse time for auto-ignited TNT configurable. The unit is ticks and defaults to 80.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./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.baby
prefix are now forced into adulthood to prevent them from occasionally spawning as babies.nothing
in them no longer cause errors when earned/granted.kebab-case
names in the config-file.mobarena.admin.teleport
permission when they engage in a teleport that would have otherwise been blocked.formulas.yml
file. Check the wiki for details.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:
mobarena.classes.my-items
.My Items
(or my-items
) instead of Myitems
.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
).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.<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.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.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
.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.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.all()
and random()
functions as well as the nothing
keyword./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./ma addarena
and /ma autogenerate
commands now supports multi-word arena names./ma autogenerate
command now use class names from the config-file instead of arbitrarily "squashed" names.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./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.getPlayerClass()
methods.armor
node in classes in the config-file.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.player-time-in-arena
setting has been fixed.soft-restore
setting has been fixed for blocks broken by players. Note that the functionality is still unreliable for non-trivial blocks.unbreakable-weapons: false
had no effect on the items. Note that any affected items in existing class chests will need to be replaced.magicspells.yml
config-file (if it exists) no longer does anything and can be removed./ma kick
and /ma restore
now uses actual player names instead of display names.long_
or strong_
to the data portion of a potion item (e.g. potion:strong_instant_heal:1
will yield a Potion of Healing II). Check the wiki for details.pet-items
node in global-settings
now supports any living entity as a pet - even zombies! Pets will aggro hostile mobs that damage their owner, but only tameable pets (wolves, cats, etc.) will properly follow their owners around. This should also allow 1.14 servers to replace ocelot
with cat
in their pet-items
node to get cat pets working again.unbreakable-weapons
flag. All class items that have durability now have their unbreakable flag set to true unless the unbreakable-weapons
and/or unbreakable-armor
flags are set to false
.clear-wave-before-next
, and they are properly removed at arena end.flySpeed
player attribute when players join an arena. This should fix issues where a crash would result in players being "locked in the air" when trying to fly outside of the arena. It also introduces compatibility with plugins that use flight to augment player abilities.mobarena.admin.teleport
permission. This fixes a bug where the permission could override the cancellation of events that weren't related to MobArena.Thanks to:
/ma ready
now defaults to true.FIRE_PROTECTION
is the same as fire_protection
)./ma join
is the same as typing /MA JOIN
. This should help reduce the confusion with commands like /ma l
where the L can be confused with a 1 (one).next-wave-delay
.join-interrupt-timer
makes it possible to add a "delay" to the join and spec commands. If the player moves or takes damage during this delay, the command is interrupted. This should help prevent exploits on PvP servers./ma reload
./ma ready
(/ma rdy
for short) can be used as an alternative to the iron block for readying up.keep-exp
returns. If enabled, any experience collected during an arena session is added as a reward on death or when the final wave is reached.Thanks to: