DenyBlocks

DenyBlocks

308k Downloads

Donation

I've created all my mods in my free time ⏳ for you all gratuitously with love 💖.
If you enjoy 😁 this mod and want to give something in reward 💰:
You can support 🤝me either on Patreon, Paypal or Flattr.

Attention:
If you're updating from Version 1.1.0 to the 1.1.5 (or higher) you should backup your DenyBlocks configs and delete the original configs afterwards. I needed to make several changes to have a better granularity for denied objects. Sorry for that in advance.

Brief

This mod gives you as admin of a server the ability to deny certain blocks/items of certain mods in certain dimensions for placement, interaction and/or attack.

Usage

It's mainly used to have multiple themed dimensions or only one with several denied items. It's up to you what you finally use this mod for.

  • You can use this mod within a server without needing it as player. (Server side)
  • You can use this mod as single player, too. (Client side)

I for example had medieval themed mods and tech related mods but didn't wanted to have them together in one dimension, therefor I developed this mod to have two strict separated worlds.

ModID: To figure out the ID of a mod use my mod ShowPlugins or open the JAR file with an application like 7-zip and extract the file "mcmod.info", open this file with an editor like Notepad++ and you will see the modid.

Block/-ItemID: To figure out the ID of a block/item use the ingame command show. See the sub commands.

Features

  • Deny blocks and items (objects) based on their names and/or their mod origin
    • for example: deny all objects from mod xyz in dimension abc
    • or: deny item xyz from mod abc in all dimension
    • or: deny eveything in every dimension
    • or: deny block xyz from mod abc in dimension 123 and 987
  • Placeholder to match every dimension/mod/object are possible
  • Wildcards for objects are possible
  • Commands to add/remove/clear denied objects
  • Permission for each command possible
  • Customizable language configuration
  • A bypass option to have still full control over the denied blocks as admin [since 1.1.5]
  • Customizable if you want to deny the object for placement, interaction or attack [since 1.1.5]
  • Deny messages can be turned on/off [since 1.1.5]

Config

The config file is located in: config/denyblocks/configGeneral.cfg

  • commandName
    • If you want to redefine another command name for the mod do it with this value.
  • commandNameAliases
    • If you want to define an alias name for the command do it with this value.
  • denyBlocksAndItems (until 1.1.0)
  • denyPlacement [since 1.1.5]
  • denyInteraction [since 1.1.5]
    • The list of objects, which can't be interact with. (such as benches, chests, etc.)
    • see syntax/examples
  • denyAttack [since 1.1.5]
    • The list of objects, which can't be used to attack with. (such as swords, axes, etc.)
    • see syntax/examples

Syntax / Examples

The syntax is the following:

  • dimension:mod:block:type [until 1.1.0]
  • dimension:mod:item:type [until 1.1.0]
  • dimension:mod:block:type (placement) (interaction) (attack) [since 1.1.5]
  • dimension:mod:item:type (placement) (interaction) (attack) [since 1.1.5]

Every position can use an 'x', which means it can be everything. An 'x' for dimension would mean 'every dimension'.

The block/item node is able to use wildcards. Put an asterix (*) at the beginning and/or the end to filter a block/item ending, starting or containing your filter.

[until 1.1.0] 

  1. Example: -1:minecraft
    • Result: In the nether it isn't allowed to place any minecraft related blocks.
  2. Example: 0:minecraft:dirt:0
    • Result: In the overworld it isn't allowed to place minecraft dirt but any other kind of dirt like podzol.
  3. Example: 6:appliedenergistics2:inscriber
    • Result: In the dimension 6 it isn't allowed to place the inscriber of AE2.
  4. Example: 1:x
    • Result: In the end it isn't allowed to place any block.
  5. Example: x:minecraft:iron_sword
    • Result: In every dimension it isn't allowed to use the minecraft iron sword.
  6. Example: x:x:*seed*
    • Result: Every kind of seed is denied everywhere.
  7. Example: 0:x:*_hoe
    • Result: Deny in dimension '0' every block/item ending with '_hoe'

 [since 1.1.5] 

  1. Example: -1:minecraft
    • Result: In the nether it isn't allowed to place/interact/attack with any minecraft related blocks.
    • If no further arguments are given the placement/interaction/attack is always on. (1 1 1)
  2. Example: 0:minecraft:dirt:0 1 0 0
    • Result: In the overworld it isn't allowed to place minecraft dirt but any other kind of dirt like podzol.
  3. Example: 6:appliedenergistics2:inscriber 0 1 0
    • Result: In the dimension 6 it isn't allowed to interact with the inscriber of AE2.
  4. Example: x:minecraft:iron_sword 0 0 1
    • Result: In every dimension it isn't allowed to attack with the minecraft iron sword.
  5. Example: x:x:*seed* 1 1 1
    • Result: Every kind of seed is denied for placement/interaction/attack everywhere.

Commands

The base command is:

  • denyblocks

Append one of the sub commands to execute them. Example:

  • denyblocks help

Sub commands

The text between the signs less than and greater than is necessary to execute it correctly. The text between brackets is optional.

  • add <deniedNode> [until 1.1.0]
  • add <deniedNode> (placement) (interaction) (attack) [since 1.1.5]
    • Adds a new denied object to the placement/interaction/attack list.
    • See syntax/examples
  •  aliases
    • Shows available aliases for the main command.
  • bypass <playerName> [since 1.1.5]
    • Allows the given player to bypass the denied options for all objects.
  • clear <deniedNode> [until 1.1.0]
    • Removes all objects from the node.
    • for example: all blocks denied by mod 'abc' or in dimension 'xyz'
  • clear <deniedNode> (placement) (interaction) (attack) [since 1.1.5]
    • Removes all objects from the node of the placement/interaction/attack list.
    • for example: all objects denied by mod 'abc' or dimension 'xyz'
  • help (<command>)
    • Shows help for each available command.
  • list <@ll|deniedNode>
    • Displays all entires of the node
    • Example 1: /denyblocks list x:minecraft
    • Result: Lists all entries starting with x:minecraft
    • Example 2: /denyblocks list @ll
    • Result: Lists every entry available
  • messages <0|1> [since 1.1.5]
    • Turns the messages on/off, that the object is denied.
  • reload
    • Will reload the configuration from disc.
  • remove <deniedNode> [until 1.1.0]
    • Removes only the given block/item.
  • remove <deniedNode> (placement) (interaction) (attack) [since 1.1.5]
    • Removes only the given object from the placement/interaction/attack list.
  • show <blocks|items> <modId> (<pageNumber>)
    • Show 50 blocks/items of a given mod
    • If there are more than 50 entries, the mod will inform you about the pageNumber argument
    • Example: /denyblocks show items mysticalagriculture 2
    • Result: Shows the items 51-100 of the mod Mystical Agriculture
  • syntax
    • Explains the syntax; what "<deniedNode>" can represent.
    • Explains how to use the arguments placement/interaction/attack [since 1.1.5]

Permissions

Each command has it's own permission so that the mod is fully customizable to your needs.

Structure:

denyblocks.commands.Commands //Main command

denyblocks.commands.Command<CommandName> //Sub commands

Example:

denyblocks.commands.CommandHelp //Help command

denyblocks.commands.CommandSyntax //Syntax command

[...]

I can't assume that you want provide the functions of the mod to anyone therefore you will possibly encounter the message: "You do not have permission to use this command."

Use a permission manager like ThutPerms to solve this problem by providing you the permissions you need.

Installation

Just put the mod into your mod folder. It's only needed on the server-side if you're hosting a server.

Dependencies

You need at least the corresponding Forge Version.

Language

Currently I'm providing the mod in british english (hopefully). There will be a language file created which gives you the ability to translate the entire mod to your target language:

  • config/denyblocks/configLang.cfg

Ideas / Suggestions

As developer one can only guess what the needs of admins / players are, so don't hesitate telling me your ideas / suggestions. Even if you're thinking that some things could be solved much easier or on another way I will appreciate it.

Bugs / Problems

I'm not able to cover all conditions the mod will encounter therefore there can always be bugs / problems, if you find some please tell me so I can fix them. One advice from me at this point: Provide basic information like MC/Forge version and mod version.

Modding

Outstanding until it gets open source.

Source Code (/ Copyright)

I'm a fan of open source, I really do and I'm willing to provide the source code if I get enough requests for it or I decide to publish it - until this point all rights are reserved.

Contribution

You have translated the mod to russian, you have a better logo for it? You can always contribute to this mod at any time, just contact me.

Contact

Use the comment section, write me a pm or visit the discord channel PixtarMcMods.

Viruses / Worms

Every file is scanned across VirusTotal.com with 0 / 60 findings:

1.12.0:  v.1.0  v.1.0.5  v.1.1.0  v.1.1.5  v.1.1.6

1.12.1:  v.1.0  v.1.0.5  v.1.1.0  v.1.1.5  v.1.1.6

1.12.2:  v.1.0  v.1.0.5  v.1.1.0  v.1.1.5  v.1.1.6