garbagemule / MobArena

MobArena plugin for Minecraft
GNU General Public License v3.0
195 stars 150 forks source link

Deferred reward claiming if inventory is full #733

Open 2B4U opened 2 years ago

2B4U commented 2 years ago

Feature request

Short description

When a game end and player has full invo due to my-items being on. They dont get a reward from the waves complated.

Implementation details

Implement a /ma claim so they can empty there invo and claim there rewards from the waves after the game has ended

garbagemule commented 2 years ago

While I do understand the frustration that comes with missing out on rewards due to a full inventory, I honestly don't think there's a better general solution to the problem than player discipline. The second best general solution is to prevent the full inventory from being an issue all together. This is already possible using the require-empty-inv-join setting. If the "all or nothing" approach of the setting is a bit too coarse, we do have a feature request about introducing a configurable leeway in the amount of empty slots required in issue #624.

I don't think the proposed solution to the problem is unreasonable, but it's definitely a can of worms that I don't want to open if we can avoid it. MobArena grants rewards at a very specific step in the join/leave procedure, and it does so to prevent a bunch of issues with item loss and shared inventories. Allowing players to defer this step to any time after the entire procedure has completed pretty much means we're giving players an "extra inventory" that they can summon at will. That's not an insignificant behavior in the slightest, and it is highly exploitable. This is just one facet to consider, and we haven't even touched on the fact that MobArena rewards aren't necessarily items (they can be commands, permissions, etc.) and what that means for the whole thing, let alone how to persist the items, for how long, etc.

We're going to have to address these issues (and probably more) before we even begin to consider moving on with this kind of feature. I highly suggest looking into preventing the full inventory issue instead of trying to fix it after the fact.