Note that this commit makes breaking changes to the Arena interface and completely changes the responsibility of the InventoryManager. The join/leave process is replaced with an implementation of the Command Pattern, where every step of the process (e.g. teleport to lobby, change gamemode to survival, reset health, etc.) is realized as an implementation of the new Step interface, which has "run" and "undo" operations. The "run" operation takes a snapshot of a specific part of the player's state and then resets it. The "undo" operation restores the snapshot. Step groupings are arranged in two factory classes, PlayerJoinArena and PlayerSpecArena, which realize, respectively, the join and spectate processes. Each instance of ArenaImpl instantiates groupings for its own context, and a grouping is invoked as one unit when a player joins or spectates an arena, and rolled back when a player leaves. As a result of a more stringent process, some things are now a little different than before: - Setting spectate-on-death to true effectively results in /ma leave followed by /ma spec. This makes the player/arena state a little more predictable and well-defined. - Using exit warps will result in the player leaving to their entry point and then being teleported to the exit warp. This means the exit warp doesn't have any effect on the rest of the restoration process, as it effectively happens "post leave". This finally fixes #423. |
||
---|---|---|
.github | ||
docs | ||
lib | ||
src | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
pom.xml | ||
README.md |
MobArena

MobArena is an arena-style minigame for Spigot-based Minecraft servers
Getting Started
If you don't want to compile the plugin yourself, grab a release artifact from one of these two sites:
The wiki here on Github should have all the information you need to get started using the plugin.
Getting Help
If you run into problems or need help with something, feel free to hop on the MobArena Discord server or IRC channel to have a chat:
- Discord: Instant Invite
- IRC (#mobarena @ EsperNet): KiwiIRC Web Client
Remember, though, that these communication channels are idle chat, which means you likely won't get a response immediately. It could take anything from a couple of seconds to a day, but your message will be seen.
Contributing
Found a bug, got a suggestion, or want to dig into the code base? There are many ways to contribute to the project!
Get started here: Contributing