Jake's World Guard/Protection and Plots

A 1.20.1 Mod that allows Server Owners to setup protection zones to block players doing certain actions. Also has a plot system that can be created by admins for players to build in. Has SDMShop Integration to purchase plots.

File Details

jakesworldguard-1.2.0.jar

  • R
  • May 18, 2026
  • 407.33 KB
  • 813
  • 1.20.1
  • Forge

File Name

jakesworldguard-1.2.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:jakes-world-protection-and-plots-1414247:8106637")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Update 1.2.0


New Features

Interaction Handling Improvements

We have reworked our interaction handling for blocks and entities to help fix some issues and provide more consistent protection.

  • The allow-block-interact flag now correctly distinguishes between interacting with blocks (buttons, doors, etc.) and placing blocks.
  • False-positive denial messages when attempting to place a block have been suppressed.

Pressure Plate Protection (PressurePlateMixin)

  • Added PressurePlateMixin — injects into BasePressurePlateBlock.entityInside() at HEAD
  • Prevents any player from triggering a pressure plate when allow-block-interact is FALSE at that position
  • Respects per-block filter overrides (e.g. allow one specific plate while blocking all others)
  • Compatible with modded pressure plates that extend BasePressurePlateBlock (covers the vast majority of mods)
  • OPs bypass as normal
  • Registered in mixins.worldguard.json

Filter Groups System (FilterGroupManager)

A new custom group system for zone flag filters, similar to Minecraft's #forge:doors tag system.

  • Added FilterGroupManager.java — loads JSON group files from config on server start, supports hot-reload
  • Two JSON files auto-generated on first run:
    • config/jakesworldguard/filtergroups/block_groups.json
    • config/jakesworldguard/filtergroups/entity_groups.json
  • Default block groups: Doors, Trapdoors, Buttons, Containers, Pressure_Plates
  • Default entity groups: Passive_Mobs, Hostile_Mobs, Villagers, Block_Entities
  • Groups are referenced in filters using the ! prefix (e.g. !Doors, !Passive_Mobs)
  • Zone.getFlagFilter() updated to route through FilterGroupManager.resolveFilterValue(), which checks !Group entries before falling back to direct ID matches
  • Filter isBlock/isEntity determination now automatic based on flag name

Filter Autocomplete — Group Support

  • CommandSuggestions.suggestFilterTargets() now surfaces !GroupName entries at the top of the suggestion list
  • Block groups shown for block-type flags, entity groups shown for entity-type flags
  • Group suggestions appear before individual block/entity IDs for discoverability

/wg debug flags Command (BETA / FOR DEVS)

New OP-only debug command for inspecting effective flag values at a glance.

  • Usage: /wg debug flags — raycasts up to 10 blocks in the direction you're looking
  • Reports the effective flag value and enforcing zone for:
    • allow-block-interact (block usage)
    • block-break
    • block-place
    • entity-interact
  • Shows which zone is enforcing a restriction, including global zones
  • Indicates when a filter entry (including !Group entries) matched rather than the general flag
  • Falls back to the player's feet position if no block is in raycast range

Selection Commands Upgrade

The selection commands now accept optional coordinates so you can manually type exact positions instead of standing there!

  • /wg selection set 1 [x y z]
  • /wg selection set 2 [x y z] If you leave off the coordinates, it still sets the position to where you are standing.

New Teleport Command (BETA)

Added a new teleport command for quick administration and travel!

  • /wg teleport zone <ID>
  • /wg teleport plot <ID> This will safely teleport you exactly to the center of the zone or plot and automatically find the highest safe block to stand on (even across dimensions).

Bug Fixes

  • Lead on fence post bypass — Players could retrieve leads from fence posts in protected zones because LeashFenceKnotEntity interactions triggered EntityInteract instead of RightClickBlock, bypassing the allow-block-interact flag. This was investigated and the LeashFenceKnotEntity approach was removed due to a missing class reference; the fix will be revisited in a future update using the correct entity class path.

Internal / Technical

  • FilterGroupManager initialised in ModMain.onServerStarting() after PlotManager
  • PressurePlateMixin registered in mixins.worldguard.json
  • Unused imports cleaned up in FlagInspectCommand
  • InteractionHandlerV2 extends BaseProtectionHandler to inherit canBypass() for zone member/OP checks

New /plots Player Commands

A brand-new set of player-facing commands has been added under /plots.
These are completely separate from the admin /wg plots commands and are designed for everyday players to interact with their plots.

All three base commands require you to be physically standing inside the plot — no more guessing which plot you mean.


/plots claim

Claim the plot you are currently standing in.

  • Checks that the plot is unclaimed before proceeding
  • Shows you the cost upfront (money or items, depending on server config)
  • Verifies you actually have enough to pay before asking you to confirm
  • Sends a clickable [Confirm] / [Decline] message — nothing happens until you confirm
  • Works with all existing payment types (economy money, custom items)

/plots unclaim

Unclaim the plot you are standing in.

  • Only the plot owner, a zone manager, or an OP can use this
  • Shows a clickable [Confirm] / [Decline] message before removing ownership
  • Clearing the plot also removes all members and resets rent status

/plots info

View information about the plot you are standing in. No special permission required — anyone can check.

Displays:

  • Plot name and ID
  • Parent zone
  • Owner (or "Unclaimed" if available)
  • Claim price
  • Rent amount (if applicable)

/plots settings

Plot owners can now control exactly who is allowed to interact with specific blocks and entities inside their plot — the same way server admins can configure zone flags.

/plots settings entity-interact <entity or !Group> allowed | blocked | unset
/plots settings block-interact  <block or !Group>  allowed | blocked | unset

Examples:

  • /plots settings block-interact !Doors allowed — lets visitors open your doors
  • /plots settings entity-interact minecraft:villager allowed — lets visitors trade with villagers in your plot
  • /plots settings block-interact minecraft:chest blocked — blocks visitors from opening chests even if the zone normally allows it
  • /plots settings block-interact !Doors unset — removes your custom rule and falls back to the zone's default

Who can use this: Plot owner, zone managers (if the server has manager plot access enabled), and OPs.
Group names (prefixed with !) work exactly like they do in zone flag filters — see the Filter Groups section above.


/plots members, /plots rent, and /plots bank

We have also ported all the essential plot management features to player-friendly commands! Just like the other /plots commands, you no longer need to type a Plot ID—these all trigger based on the plot you are currently standing inside.

  • Members:
    • /plots members add <player>
    • /plots members remove <player>
    • /plots members list
  • Rent Management:
    • /plots rent info
    • /plots rent paynow
  • Bank Management:
    • /plots bank balance
    • /plots bank deposit <amount>
    • /plots bank withdraw <amount>

(All logic works natively with both your economy system and custom item currencies.)


/plots ui (BETA)

Added a brand new /plots ui command that opens an intuitive GUI. As with the other commands, you only need to be standing inside the plot to view its details and members through a menu instead of chat commands.


Plot Protection Improvements

Interact protection now respects zone flags

Previously, all block and entity interactions inside plots were either fully blocked or fully open for non-owners with no middle ground.

Now, plot protection works in the same layered way as zone protection:

Zone flag No plot filter set Plot filter = allowed Plot filter = blocked
Not configured ❌ Blocked (safe default) ✅ Allowed ❌ Blocked
Allowed (zone says yes) ✅ Allowed ✅ Allowed ❌ Blocked
Blocked (zone says no) ❌ Blocked ✅ Allowed ❌ Blocked

In plain terms: By default, visitors to your plot can't interact with anything. If the zone your plot is in explicitly allows something (e.g. doors), visitors in your plot can use it too — unless you've blocked it with /plots settings. You can use /plots settings to create exceptions in either direction.

Block breaking and block placing are always restricted to the plot owner and members regardless of zone settings — this has not changed.

Beta event system now covers plots

When the beta interaction handling flags are enabled in the server config, plots now use the same improved detection system as zones. Previously, plots were excluded from the beta system and used the old code path. Both paths now behave consistently.

Debug watch mode and OP bypass disable now work in plots

The existing debug tools (watch mode, disabled OP bypass) now correctly apply inside plots as well as zones.