HomeJavaModsPreventBuild
PreventBuild
ModsJava

PreventBuild

by Redheris · on Modrinth

Which Minecraft do you have?

Every version of the game needs its own build. Pick yours, then download — the wrong build installs fine and then does nothing in the game. This mod is built for Fabric only.

⬇ Download for 1.21.9–1.21.11⬇ Download for 1.21.5–1.21.8⬇ Download for 1.21.4
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.
logo

PreventBuild

Adds control to prevent the player from performing certain actions that are set in configs. Configs, in turn, have a very flexible structure that allows you to build complex logical conditions describing what actions the mod should prevent.

Original purpose of creating this mod was enhancing experience of hand-building map-arts without using any printers and easy-place mode. But now it's more than just preventing placing and breaking: you can prevent any right- or left-click actions, just make sure there is a suitable condition.

This mod is just cancelling the player's actions, so it's fully client-side.

Known issues

Since the latest PreventBuild's versions, I've been working on other projects and didn't have enough time to maintain the mod. I have major rewriting in plans to improve the code and fix some stuff I'm unable to fix easily in the current state. Here are issues I know about:

How to use the mod

It's almost necessary to visit the Wiki to understand how to write a config, because there is no other way to write it except by hand.

There are a few files in config/preventbuild/:

Once you have created/updated your configs, you should update configs in the game using commands. Also configs are updating automatically when the player joins a world.

(For developers) Also you can find out how to create and register your own conditions that you will be able to use in the same config files.

Commands

Server restrictions of the conditions

Since I'm trying to keep gameplay fair and rules-friendly, I decided to give server owners the ability to restrict some conditions that they can consider as "cheating-like" actions.

For now, there's only a few of such restrictions. To use them, you need to add the following strings to the plugin message via the "preventbuild:restrictions" channel and send it to players on PlayerRegisterChannelEvent:

NoItemDamage - Disables all the "Item Damage" and "Item Durability" conditions

NoBlockState - Disables the "Block State" condition

NoAgeBlockState - Disables only the use of the "age" state in the "Block State" condition

ResetAll - Resets all restrictions

Example:

@EventHandler
public void onRegisterChannelJoin(PlayerRegisterChannelEvent event) {
	if (event.getChannel().equals("preventbuild:restrictions")) {
		Player player = event.getPlayer();
		ByteArrayDataOutput out = ByteStreams.newDataOutput();
		out.writeUTF("NoItemDamage NoAgeState");
		player.sendPluginMessage(this, event.getChannel(), out.toByteArray());
	}
}

Contacts

If you have some issues with the mod, any questions or just want to leave feedback, you are always welcome:

Note

Well, this is my first relatively serious mod and especially the first one for public use. Thanks for visiting :)

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more