mojira.dev
MC-2367

Players can place and remove arbitrary blocks in Adventure mode, breaking pre-1.4.2 maps

First, allow me to start by saying that I understand this is intended behavior. However, the behavior is not proper considering Adventure Mode's original behavior and its intended purpose. The changes made to Adventure mode break existing maps made prior to 1.4.2. You might call this an annoyance rather than a bug - see [MC-2302] for why I feel this is a valid issue to post here.

What I expected to happen was:
Players would not be able to place or remove blocks in a map if they were in Adventure mode.

What actually happened was:
Players in Adventure mode could place blocks freely, and remove them if they had the proper tools.

Steps to reproduce:
1. In Survival or Creative mode, get some blocks and their corresponding tools into your inventory.
2. Change your game mode to Adventure (/gamemode 2).
3. Observe that you can place blocks.
4. Observe that you can remove blocks, as long as you attempt to use the correct tool.

In its original inception, Adventure mode did not allow the player to place or remove any blocks whatsoever. This change contradicts Adventure mode's purpose on many maps, as "you may not place or remove any blocks" is a much more common rule in adventure maps than "you may place any block you have, and remove any block you can get the correct tool for". Many maps in 1.3.1 had this more common rule, and the changes in 1.4.2 break those maps by allowing players to cheat.

Some people may suggest the map maker must simply prevent players from acquiring tools and blocks, and the problem is solved. However, it is not simple to do this at all. Spiders, a common hostile mob, drop string, which may be used to craft wool which can then be used to cheat in parkour or escape the map's boundaries. Maps which allow the player to craft weapons must inadvertently also give them the power to create tools which can break the map. In fact, even swords can be used to break a variety of blocks. Thus, there is no way to escape having to put the "you may not place or remove any blocks" rule in such a map, and such a map is doomed to fail on larger SMP servers unless plugins which specifically prevent block removal/placement are used.

The ability to place blocks in Adventure mode also comes as an annoyance to players in some maps. I have seen a few videos where a player accidentally places a wool block they wanted to trade to a villager, and the block cannot be removed without acquiring shears or using commands.

While the new Adventure mode has its uses in maps which do not bear the "you may not place or remove any blocks" rule, the old Adventure mode supported its own massive share of maps (if anybody is willing to do a breakdown of the percentage of maps with this rule, feel free to post it in the comments). Furthermore, it supported modless multiplayer adventure maps, where a large amount of players can safely be allowed to play, whether or not they could be trusted not to cheat, because it literally prevented cheating. With these changes, such servers are broken and must get protection plugins to prevent cheating.

Thus, although I agree the new version of Adventure mode should not be removed, I earnestly feel the old version should be reinstated somehow. Whether it be as a new gamemode, or whether gamemode permissions can be made configurable, it would be a boon to map-makers and server owners alike whose maps go by one of the most common rules to be seen in Minecraft adventure maps.

Linked issues

Comments 46

This is why we got the command /gamerule. "doMobLoot" will stop mob loot and "mobGriefing" will stop creepers from exploding, so the player can't craft blocks.

This bug tracker is for reporting unintended behavior.

Turning off mobLoot isn't the right fix - what if your map wants players to be able to gather mob drops, e.g. for food? Furthermore, you can't even let the player have a sword, because that is considered the proper tool for many plants and cobwebs.

And this is not a feature request - the feature had already existed in the game, and its removal is an annoyance. See this discussion; while the changes to adventure mode were intended, I doubt breaking many maps was an intentional consequence.

For the record, the old adventure mode had existed for nearly three months in terms of snapshots, and had existed for the majority of players in the nearly four-month period between 1.3.1 and 1.4.2. This isn't just something they added in one snapshot and changed in the next - it has been around for an entire full release cycle, and has featured in many maps.

I can understand calling this a feature request if the old adventure mode wasn't even intended to be seen by the majority of players and was still heavily in development. But it was actually put out in a public release, and many players decided to use it for their maps. Thus, the changes made quite a few maps from these past four months cheatable - which is honestly not something I imagine Mojang intended.

I think they key question is whether the current behavior is intended or not. If it is, then you're making a feature request. If it's not, then it's a bug report. Only Mojang can answer that question.

Also, I wouldn't rely too heavily on features as they existed in snapshots. Even if the feature was unchanged for a moderately long time chronologically, it was still the snapshots. They are, by definition, subject to change.

36 more comments
Dakotah Intriglia

POSSIBLE SOLUTION: As a person designing minigames in minecraft, I absolutely hate that you can break glass and decorations in adventure mode. I am joined by many, but also can see why Mojang implemented adventure mode the way they did. If someone is building a redstone puzzle map for instance, buttons have to have the ability to be removed and placed, so breaking them should be allowed, which is how adventure mode is set up.

Unfortunately, any block that is a full block can not be placed and removed, so redstone blocks, and regular blocks can not be used in a redstone puzzle map like I described above.

A fix to this would be to completely be able to customize which blocks can be broken. In creative mode, nothing can be broken with a sword, so making every block impossible to break is completely possible to code.

If mojang added a few extra gamerules to alter the way the game processes breaking blocks, this would allow map makers to customize their user's experience with the map. For example:

/gamerule allowBreakingBlocks
/gamerule allowPlacingBlocks

For specific block types, mojang could do what they do with their whitelists and create a list or array for the game to implement from the save's folder. For instance:

/gamerule allowPlacingID 1
/gamerule denyPlacingID 1

This would be the topper on the cake to map makers who need more control for their minigames. With Bukkit, they have had these options for ages, which is why Bukkit minigames are becoming so popular. Please consider this Mojang.

-Djimusic

To Dakotah Intriglia:
Many of the people who commented on this issue here suggested the exact same solution as you did, myself included. Unfortunately, Mojang usually has a "we'll do it in our own sweet time" attitude.

A hopeful heads-up: https://twitter.com/jeb_/status/420942646950260736

Adventure mode screenshot, will make sense tomorrow: http://i.imgur.com/1Nu83qD.png ... The tag is CanDestroy:["minecraft:sand","minecraft:grass"]

With this addition, it sounds very plausible that the method of destroying blocks is being changed, which may bring a close to this bug. With this, map-makers can manually assign tools to break specific blocks for that individual tool. This would also mean you could have two pickaxes that can mine different blocks, but not the same blocks. Won't know if this is merely an addition or a widespread change to how adventure mode works, until the first snapshot arrives.

I'm hoping for a change, but there are some things I'm wondering: will block placement be unchanged? Will pre-1.8-but-post-1.4.2 mechanics be removed, meaning only NBT-edited items (and not crafted items) get these properties? I'm personally hoping some gamerules will be associated with the changes (allowing a choice between pre-1.4.2, post-1.4.2, and post-1.8 mechanics to some degree), but I'm excited even if that isn't the case. As you said, until the snapshot comes, there's no telling how exactly it will pan out.

Fixed as of 14w02a! Players in adventure modes cannot place OR break any blocks, unless a tool with specified NBT tags have been provided by the map maker. Source: https://mojang.com/2014/01/minecraft-snapshot-14w02a/

WolfieMario

(Unassigned)

Community Consensus

Minecraft 1.4.2, Minecraft 1.4.3, Minecraft 1.4.5, Minecraft 1.4.6, Snapshot 13w01a, ..., Minecraft 1.7, Minecraft 1.7.1, Minecraft 1.7.2, Minecraft 1.7.3, Minecraft 1.7.4

Minecraft 14w02a

Retrieved