00b59ed7c4
Introduces two new settings for controlling how far away from or close to a spawnpoint players must be in order for the spawnpoint to be valid when spawning monsters. This is a pretty big one. In ancient times, MobArena had no limit on how close players had to be to spawnpoints for them to be valid. The result was mobs spawning too far away from the players, frozen in place until their target approached them or until another player attacked them. This was clearly undesirable, so the 15-block max distance was introduced to solve this problem. And it worked, hurray! In the meantime, it also imposed a really cumbersome limitation on all arena designs, since aesthetically (or strategically) placed spawnpoints were seldom sufficient, and server owners have been needing to litter their arena floors with spawnpoints to avoid warnings and to get their expected monster behavior. Modern versions of Minecraft no longer exhibit that "frozen in place" behavior the hardcoded max distance set out to solve, and server owners have been asking for configurability on this front for years. With this commit, that distance is now per-arena configurable. The change has no real impact on the performance of the plugin. It's worth noting that we don't modify the pathfinding attribute `generic.followRange`. We might want to revisit this in a future commit, but since it can _definitely_ affect performance, we should have some actual servers run a test build with it before jumping on that wagon. Having many spawnpoints might still be preferable to some, but it comes with another problem of players standing right on top of a spawnpoint when a monster spawns. To combat this, an additional setting to control the _minimum_ distance that _all_ players must be from the spawnpoint for it to be valid is introduced as well. This means it is possible to have lots of spawnpoints for a less predictable session, but without the risk of being instantly attacked when a new wave spawns. This change has a theoretical performance impact on the plugin, because it's a lot more brute force without the early returns of the old algorithm. However, if the setting is left at 0, the old algorithm is used. The only real downside to these changes is that it's more code and more settings to maintain. It doesn't improve on the clusterfuck that is the arena settings in the config-file - we're just making things worse. I do think it's worth having, though, since the bigger revamps on the drawing board are at best months away, and at worst, they'll never happen. When or if the time comes, it's probably better to rethink certain aspects of the plugin instead of trying to convert everything gracefully. Closes #412 |
||
---|---|---|
.github | ||
gradle/wrapper | ||
scripts | ||
src | ||
.gitignore | ||
build.gradle.kts | ||
changelog.md | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle.kts |
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 to have a chat: Instant Invite
Remember, though, that this communication channel is 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