garbagemule / MobArena

MobArena plugin for Minecraft
GNU General Public License v3.0
199 stars 151 forks source link

Option in config to allow drop-in + re-join of players while the mob arena is running #664

Open 2tbc1887 opened 3 years ago

2tbc1887 commented 3 years ago

I would like to see the option to allows player drop-in while the arena is running, and maybe even re-join (which could be based on wave checkpoints e.g. every 10 waves)

garbagemule commented 3 years ago

Considering the plugin has existed and evolved over a decade with an underlying premise of a strict lock-in from start to finish (or death) with half the code base revolving around that invariant, calling this kind of suggestion a paradigm shift would be a huge understatement. I think it's fair to say that one sentence that doesn't even follow the feature request template is a bit on the lazy side :P

It would be great if you could describe in greater detail how this would work. What does it mean to drop in? How do you pick a class? What are the consequences in terms of stuff like formulas that are based on initial player count? What does it mean to have checkpoints and what are the consequences of re-joining?

JericNisperos commented 3 years ago

I think what they meant was to add a feature to join the next wave if they are spectating. This way, this will create a new gameplay that if you enabled the spectate-on-death feature, they will be able to respawn on next wave. But if you disabled it, they will automatically be teleported to lobby and need to spectate once again to join. So by adding an option on the config to enable or disable can-spectate-join-on-next-wave, this will create respawn feature on the game.

We all know mobarena takes time to finish and sometimes, it takes hours just to end a game. So if this feature will be possible, this can make a new huge Arena for players to join in anytime or by every wave just to finish the final boss.

Nesseley commented 3 years ago

We did have an discussion about something similar, which was a "downed" state, where the player was not yet down and could be picked back up by other players. Therefore I will add it in this feature request.

Tixiron commented 2 years ago

Obstacles that I know of and how to overcome them:

How it would work:

tadhunt commented 1 year ago

I've just added a PR which implements the most basic version of joining a running game possible. It doesn't attempt to be fair about late joining players getting rewards, or anything like that. It does seem to function correctly for what it is though.

While it doesn't implement all of the features described above, this PR could be a good starting point to iterate on.

If anyone is tracking this feature request, please give it some playtesting and feedback if you get a chance. You can find the plugin jar as an artifact in github workflow referenced in the PR.