UploadedAug 19, 2015
Supported Bukkit Versions
Requires 1.8.4 or later!
Note: MobArena is being rewritten!
That's right, the rewrite of MobArena has started, and it is coming along slowly, but surely. There is a lot of work to do, a lot of features to accommodate, and a lot of flexibility to weave in. The current codebase will remain as it is, and the rewrite exists in a separate, local/private repository until it is ripe for public consumption. In the meantime, anyone interested in testing new builds (when ready), feel free to drop your email to me in a private message on IRC - or if you're already on IRC, just let me know that you're interested :)
NOTE: YOUR PRE-0.96 ANNOUNCEMENTS-FILE WILL NOT WORK WITH THIS VERSION!
Use this tool to convert the contents of your announcements.properties into a valid announcements.yml document. If you have made no changes to announcements.properties, you can skip this step - announcements.yml will be automatically generated for you.
NOTE: THE SPAWNPOINT LABELS IN YOUR PRE-0.96 CONFIG-FILE WILL BE INCOMPATIBLE WITH SETUP MODE!
Use this tool to convert the spawnpoint- and container-labels in your config-file into valid labels that Setup Mode will recognize.
- MobArena goes Spigot. MobArena is now built against Spigot's fork of the Bukkit API, and is thus compatible with both Spigot's fork of Craftbukkit and Spigot itself. This specific version is built against 1.8.7, but should work on all builds from 1.8.4 and up.
- MobArena now requires Java 7! The monster type update (see next bullet) uses a feature of Java 7 that would be very tedious to implement in Java 6. According to MCStats data, the majority of servers with MobArena run Java 7, with a large minor portion running Java 8. No servers run Java 6, so this should affect no one.
- Added support for all monster types. As long as the monster type exists in the EntityType enum, it can be used in MobArena, but do note that this also includes non-mobs like Ender Pearls and Spider Eyes (don't try to use them - they won't work). Use the names found in the EntityType enum here. Previous names still work as they used to.
- Fixed the Spigot block explosion bug. Exploding Sheep, Obsidian Bombs, and various other explosions no longer damage the arena regions.
- Fixed incompatibilities with plugins that replace Player references with incomplete proxies, including CommandSigns. That is, CommandSigns can now be used to create join signs for MobArena.
- Root Target (boss ability) now locks players to the nearest non-air block below them, meaning players will no longer be rooted mid-air. This should alleviate some problems with anti-cheat plugins thinking MobArena players are flying/cheating while rooted.
- Fixed the Spigot health issue (for real this time). As it turns out, there was a missing statement in the previous fix, and there was also another spot in which the error was thrown (hurray for double-doh, and spaghetti code (this is why MobArena needs a rewrite)). Furthermore, the safeguard has been modified to make no assumptions about the Spigot settings, and will instead just use the current max health value and print a harmless (but useful) error in the console.
- Fixed a Spigot issue with skeletons/wolves. The Spigot team is at it again, this time with a strange targetting bug. Spigot erroneously chooses the target reason CLOSEST_PLAYER when skeletons target pet wolves. This makes no sense, and only happens in Spigot. The targetting checks have been rewritten to not rely on the target reasons being correct.
- Added support for potion effects on bosses. Boss waves now support an optional 'potions'-node with a comma-separated list of potion effects that will be added to the boss when it spawns. The Wiki has been updated to reflect the new feature.
- Fixed an issue with boss waves on Spigot. For whatever reason, the Spigot team decided to add a cap on the max health of monsters (if anyone knows why, please let me know, because I seriously have no clue), such that a plugin that tries to set health higher than what is in the Spigot config-file will crash. MobArena will now reduce all health values causing the crash to 2000 and print a warning. To set your max health cap higher, open your Spigot config-file and set the value of the max-node (settings.attribute.maxHealth) to something higher than 2048, e.g. 2147483647 (the maximum value of integers in Java, which is what Craftbukkit uses).
- Added support for bosses to drop items. This feature was implemented as a way to make progressive arenas a bit simpler to implement, so that bosses can be set to drop e.g. a stone button or a lever to open an otherwise locked iron door, which leads to a different section of the arena region.
- Fixed the long-standing config-file reset bug. MobArena should no longer reset your config-file if you make a boo-boo :)
- Fixed witch potions not affecting players.
- Fixed a bug where health-altering plugins would result in MobArena throwing errors when players leave.
- Fixed an issue where spawning bosses would result in an exception regarding health ranges.
- Fixed mobs spawning with random equipment. Apparently Bukkit has gone away from spawning "bare" mobs, so MobArena would occasionally spawn a zombie in full armor, for instance. This should no longer happen.
- Fixed auto-ignite-tnt not working with the protect-flag set to false.
- Fixed a dire bug with 'use-scoreboards: false' where a NullPointerException would be thrown when a player dies.
- The arena scoreboards now show dead players with gray text. This should make it easier to tell who's still alive.
- Added the option of showing both the arena and the lobby region at the same time while in Setup Mode via `show r` or `show regions`.
- Arena players with mounts can no longer dismount.
- Fixed horse mounts spawning as non-adults. However, simply because tiny horses are hilarious, there is still a small chance to get a small horse.
- Fixed an issue where splash potions of harming and poison would hurt other players with PVP disabled.
- Fixed an issue where the auto-start-timer would not get stopped as intended when the last player left the lobby before the timer ran out (similar to the previous start-delay-timer issue). The issue was harmless due to proper resetting when a player would join the arena afterwards. Nevertheless, there should no longer be any console spamming.
- Fixed an issue with "special" helmets (e.g. wool blocks and skulls) and unbreakable armor. The helmets will no longer reset (e.g. red wool becoming white wool) when the player wearing them takes damage.
- Fixed a bug where typing MobArena commands was possible while in Setup Mode. Commands from other plugins are still available, though.
- Fixed a bug with pressure plates causing a lot of (harmless) spam in Setup Mode.
- Fixed an issue with arena containers not restoring properly when items are removed with Shift-clicking. The current solution is a workaround to what appears to be a bug in Bukkit or Minecraft. Replacing all arena container items is recommended to avoid "ghost" items (which will cause the bug to persist until the items are replaced).
- Fixed an issue where the start-delay-timer would not get stopped as intended when the last player left the lobby before the timer ran out. The issue was harmless due to proper resetting when a player would join the arena afterwards. Nevertheless, there should no longer be any console spamming.
- Fixed an error thrown when a player picks a non-free class but no economy plugins are found.
- Death messages are now shown only to arena players to avoid spamming uninterested parties.
- (API) Added ArenaPlayerReadyEvent. This event is called when a player readies up (including when picking a class with auto-ready set to true), but before any ready-up-logic, i.e. the player has not yet been added to the set of players who are ready (because the event is cancellable) by the time the event arrives.
- Added new per-arena setting 'start-delay-timer': This timer starts when the first player joins the lobby of an arena, and the arena will not be able to start until the timer runs out. This is useful if you want to give players a bigger time window for joining (one player can't join and rush to the iron block until other players have had a chance to join). The timer works with or without the 'auto-start-timer' - if both are used, the 'start-delay-timer' will start the 'auto-start-timer' when it runs out, so it is possible to both force start an arena and still have a large time window for joining.
- Added new per-arena setting 'show-death-messages': If false, vanilla death messages will not be displayed when players die in MobArena. Defaults to true.
- Added new per-class option 'price': Using the standard economy syntax ($<amount>), classes can now have an associated price that will be paid on arena start. Two new announcement-file entries ('lobby-class-price' and 'lobby-class-too-expensive') have been added as well.
- Added new command 'setclassprice <class> $<price>' that allows setting the price of a class from the console or in-game.
- Added new command 'pickclass <class>' (or just 'class <class>' for short) to pick a class by command while in the lobby. This could be used to allow players to select classes through e.g. command-blocks or using command-activation mechanisms from other plugins. It uses the same semantics as the class signs with the only exception that class chests are only supported if they have been linked with the 'classchest' command. A new permission node 'mobarena.use.class' has been added as well - this permission defaults to true like all the other usage permissions.
- Added missing permission node for the notready command, which should now be available to everyone by default.
- Fixed the per-arena 'protect' setting. When set to false, block events now correctly bypass MobArena's protection logic, allowing an arena to be protected solely by other means, e.g. WorldGuard.
- Fixed arena container restoration, such that they now properly restore items with lore. Arena containers now support all items supported by Bukkit (uses same approach as class chests).
- Fixed the version checker so it now correctly checks all parts of the version strings. Dev builds should no longer claim that an update is available if this is not the case.
- Fixed an issue with the checkdata command that would cause it to error out without an argument.
- Fixed an error thrown by the wave parser on waves requiring, but missing, the 'monsters' node.
- Fixed an error thrown by the wave parser on upgrade waves with an empty or missing 'upgrades' node.
- Fixed optional per-wave 'spawnpoints'-node not working correctly since the setup revamp. The value must now be a semicolon-separated list of coords that match the given spawnpoint name. The config-converter tool has also been updated (v1.1) to correctly update these nodes as well.
- Fixed a bug where bosses in recurrent boss waves would only use abilities the first time they spawned.
- Fixed an issue where decimal values were stored with system-specific formatting locale, causing some coords in the config-file to be formatted incorrectly. Bugs manifested primarily as players being teleported to wrong locations (usually at y-coordinate 5).
- Fixed an issue with boss abilities where they would affect players who had already died/left the arena. The bug was due to the targetting code not getting fired when expected. MobArena now makes sure that targets of any monster are only those in the arena.
- Fixed the block destruction issue with Obsidian Bomb. This boss ability will no longer leave holes in arenas due to half-blocks or other semi-obstructive blocks like water. MobArena will try to find a block above the current block if it is not empty, but in case there are no available air blocks within 3 blocks of the original block, the ability will fail - use this as motivation to "hide" from this ability in e.g. waterfalls.
- Arrows and other entities such as experience orbs and dropped items are now all correctly removed at arena end.
- Updated version checker to comply with the Bukkit requirements. This is a pro forma update with no functional changes.
- Fixed a (new) bug with entry-fees. MobArena no longer errors out when a monetary entry-fee is used.
- Revamped the setup process! The setup process of typing in a bunch of hard-to-remember commands has been replaced by Setup Mode, which is invoked by typing '/ma setup <arena>'. Setup Mode gives you a special set of tools that, when used, will set the regions, warps and points of the arena. The Wiki has been updated to reflect the changes.
- Revamped announcements! Announcements can now be found in the announcements.yml file, rather than announcements.properties. The switch to YAML makes it much easier to auto-generate and auto-delete missing or obsolete announcement nodes. The new announcements setup supports color codes using the &-symbol!
- Added mounts for classes! Place a haybale in the player inventory to give them a horse mount. To configure the horse variant and to add barding, use this tool to calculate the correct item stack amount.
- Added new global announcements for arena end, and when the first player joins an arena. Both announcements are optional and can be activated by setting the per-arena settings 'global-end-announce' and 'global-join-announce' to true. The announcements are customizable in the announcement.yml file using the keys arena-end-global and arena-join-global.
- Added new per-arena setting 'isolated-chat'. If true, all chat messages sent by arena players will be seen only by other arena players in the same arena. This is useful if the arena players chat a lot, and the rest of the players on the server consider it spamming. Arena players will still be able to see chat messages from other players, however.
- Added new arena warp 'exit'. The warp is optional. If the warp is set for an arena, players will be teleported to the warp when they leave the arena. This is useful for region-based join-triggering and other situations that require or benefit from a known exit location. The warp can be set using the /ma setwarp exit command, just like with the arena, lobby and spectator warps. Note that this warp does not have to be in the arena world.
- Added per-class lobby permissions. These permissions will be given to players as soon as they pick a class. This is useful if using a special kind of lobby setup where certain permissions are required to e.g. purchase customizable items. Following the exact same permissions syntax as the normal class permissions, the lobby permissions can be set using the "lobby-permissions" node.
- Added support for minor economy values in entry fees and rewards. This means it is now possible to e.g. add rewards of $0.50 or $3.14 instead of just whole numbers like $1 and $3.
- Re-added optional per-class setting 'unbreakable-weapons'. If true, any player of the given class will have any held weapon auto-repaired whenever they deal damage. Defaults to true if not present.
- Added optional per-class setting 'unbreakable-armor'. If true, any player of the given class will have their armor slot items auto-repaired whenever they are damaged. Defaults to true if not present.
- Added missing monster type: babyzombievillager/babyzombievillagers. The Wiki has been updated.
- Added new command '/ma classchest <class>'. Using this command, it is now possible to link a chest to a class directly instead of having to place the chest in a pillar under the class sign. A class can have at most one chest linked, but the chest can be located in any world. This change does not affect current class chest setups.
- Added new command '/ma showlobbyregion (<arena>)'. This command works exactly like the showregion command, but shows, as you might expect, the lobby region frame instead of the arena region frame.
- Added new command '/ma setting <arena> <setting> <value>'. This command can be used to change arena settings, instead of having to edit the config-file! Upon changing a setting, the arena will be reloaded (and force-ended).
- Added support for separate-world leaderboards. This means it is now possible to collect all leaderboards in the same world, even if arenas exist in different worlds. No additional setup is required to get this to work; simply create the leaderboards in a different world.
- Added support for odd filenames, i.e. it is now okay if you rename your MobArena.jar to something else, even though there is no justified motivation to do so. Just because you can doesn't mean you should.
- Changed the way coords are stored in the config-file from integers to floating point numbers (with two decimal places) for coordinates x,y,z. This allows for higher precision with spawnpoints and warps set after this update. Coords set after this update will also include a world-"coordinate" (this is why the linked class chests, exit warps and leaderboards can be in any world).
- (API) Exposed the Commands interface. This means it is now possible to register custom commands in MobArena, or even replace pre-existing commands with new implementations! This could be useful if you want to try to implement e.g. a queue-system or a cooldown for the join command, but also if you want to extend MobArena with new commands.
- (API) Exposed the maximum and minimum player counts for Arena objects; useful for e.g. "status signs".
- (API) Added ArenaKillEvent. This event is called whenever a player kills an entity in the arena (monsters, players, or bosses). This event could be useful for kill counters or kill reward systems.
- (API) Added ArenaCompleteEvent. This event is called when an arena ends due to players reaching and finishing the final wave of an arena. The event contains a set of survivors. This could be useful for rewards systems that want to reward finishing an arena.
- (API) Added method wasLastPlayerStanding() to ArenaPlayerDeathEvent. This method returns true, if the dying player was the last living player in the arena. This could be useful for rewards systems or "survivor" ranking systems.
- Fixed all issues in the arena setup process. This means no more incorrect "must be inside region" messages, no more missing items from classes when punching signs, and no more overwriting of config-files.
- Fixed an item exploit with the spectate command.
- Fixed all item glitching issues using inventory craft slots and holding items on the cursor. Suck it, glitchers!
- Fixed some multiworld inventory issues.
- Fixed (harmless) exceptions thrown on shutdown.
- Fixed flint and steel not working in the arena region in edit mode.
- Fixed an issue with sign interaction being cancelled in the lobby.
- Fixed a bug with the expandlobbyregion command.
- Fixed a bug where lobby players and spectators could take damage.
- Fixed a bug where fireballs and explosions would set blocks on fire.
- Removed Spout features (i.e. class selection, it was broken anyway).
Make sure to check out the FAQ site before asking questions or posting bug reports.
If you have any questions not answered in the FAQ, make sure to hop on IRC. Remember that IRC is "idle chat" (sort of like Steam chat, Skype, etc.), so be patient; we don't stalk the channel 24/7.
As always, make a backup of your world(s) and your MobArena files before installing the new version, just in case.
- Does not work on builds prior to 1.8.4, because the BlockExplodeEvent in Spigot (and Spigot's fork of Craftbukkit) does not exist in these builds. If you get anything about "failing to register events", or if "signs and blocks don't work", consider updating your server, because that is likely the source of the problem. Note that I can't mark the build for 1.8.4 and up, because the latest available build here on DBO is 1.8.3.
Keep the bug reports coming on IRC, please :)