garbagemule / MobArena

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

Force Gamemode #620

Open MooshroomStatus opened 4 years ago

MooshroomStatus commented 4 years ago

Force Gamemode

Short description I think forcing a gamemode would be excellent for certain arenas! (Mostly just survival/adventure). My example: I set up an arena that I wanted players to only be able to break certain blocks in. In order to accomplish this, I had to do a few steps: 1). Set up the arena 2). Disable protect in the config 3). Use worldguard to create a region 4). Flag the region with game-mode adventure 5). Give players a tool that only allows the breaking of specific blocks.

We should have a way to do X with Y. We should have a way to do this within the arena's config with some extra settings. force-gamemode: true/false gamemode: SURVIVAL/ADVENTURE

Implementation details This would affect players abilities to only break certain areas. See above for implementation. Currently, without worldguard, players can either break ALL blocks, or NO blocks. With worldguard and custom items, players can only break SPECIFIC blocks.

Additional info I understand if this may throw off some things such as the 'protect: true/false' setting. I came up with this on a whim while trying to be intuitive. But a suggestion is only what it is.

garbagemule commented 4 years ago

If the end goal is to make only certain areas or blocks destructible, isn't that what we should be tackling instead of gamemode settings? Isn't adventure mode very specific in terms of what it allows people to break? What if we want to disallow breaking something adventure mode allows us to break, or vice versa?

If it's already possible to do this with WorldGuard regions, I don't see why we would need this. It seems like a very minor inconvenience to get this running compared to the complexity of having to make configurable - and handle any edge cases of - something innate like the survival gamemode. At face value, there's no harm, but it does introduce extra configuration that can make the troubleshooting space a lot bigger, which makes support harder, and crowds an already fairly crowded list of settings.

From a perhaps slightly pessimistic perspective, I feel like this kind of configurability would do more harm than good, and if the end goal is already achievable, we can have the good without opening up for the harm. Is there something I'm missing?

MooshroomStatus commented 4 years ago

Adventure mode only makes it to where you can break specific blocks using an item that has the "CanBreak:" NBT tag, but otherwise, can't break anything else. That's the only thing it changes.

Example: If I'm in adventure mode, I can't break any blocks, not even something simple as grass. Say I get a pickaxe that has the "CanBreak: Cobblestone" NBT Tag, that means the ONLY block I can break now is cobblestone, as long as I'm holding that pickaxe. This pickaxe is easily acquired by using /give in command blocks, then placing the pickaxe into a class chest.

This was the only way I could think to do it. I personally don't have any other ideas on "how" to do it. Perhaps scrapping the specific-block idea, and making regions with /ma setup that allow for block breaking. These regions would be optional, but would override the "Protect: true/false" option. They would also be included in the "soft restore: true" blocks log.