Grief Prevention

Grief Prevention

1M Downloads

Racks Datapack & GP Conflict Issue

Closed this issue · 2 comments

commented

Observed Behavior

After updating to Minecraft 1.21.5, players are able to break and interact with Racks (from the Racks datapack by KawaMood) inside claims that they do not have access to. Breaking a rack in this way causes item duplication, as the dropped rack contains all items that were previously stored in it, even though the player shouldn’t be able to access or break the block/entity.

This behavior did not occur in 1.21.4. In that version, racks were properly protected and could not be interacted with by unauthorized players inside claims.

Expected Behavior

Players should not be able to break or interact with racks placed within another player's claim unless they have the appropriate trust permissions. Racks should be treated like containers or block entities for the purpose of access protection.

Note: I understand this might be outside the intended scope of Grief Prevention, since this involves a third-party datapack with custom entities or mechanics. Still, since this worked properly in 1.21.4 and broke in 1.21.5, I figured it was worth reporting in case there's a workaround or relevant hook that could be extended for custom entities. The datapack creator has directed me here after review on their end.

Reproduction steps

  1. Install Racks datapack by KawaMood on a Minecraft 1.21.5 server with Grief Prevention.
  2. Have Player A create a claim and place racks inside it with items.
  3. Have Player B (who does not have trust in the claim) attempt to interact with or break the racks.
  4. Observe that Player B can break the racks and cause items to duplicate or be accessed inappropriately.

If needed, I’m happy to provide a video demonstration or set up a testing world showing the issue.

Stack trace or error log

Server version

[08:34:02 INFO]: This server is running Paper version 1.21.5-113-main@ba7fb23 (2025-06-10T23:34:22Z) (Implementing API version 1.21.5-R0.1-SNAPSHOT)

GriefPrevention version

[08:34:33 INFO]: GriefPrevention version 16.18.4

Configuration

# Default values are perfect for most servers.  If you want to customize and have a question, look for the answer here first: http://dev.bukkit.org/bukkit-plugins/grief-prevention/pages/setup-and-configuration/

GriefPrevention:
  SeaLevelOverrides:
    world: -1
    world_nether: -1
    world_the_end: -1
    Unknown_Realm: -1
  Claims:
    Mode:
      world_nether: Survival
      world_the_end: Disabled
      world: Survival
      Unknown_Realm: Survival
    PreventGlobalMonsterEggs: true
    PreventTheft: true
    ProtectCreatures: true
    PreventButtonsSwitches: true
    LockWoodenDoors: false
    LockTrapDoors: true
    LockFenceGates: true
    EnderPearlsRequireAccessTrust: true
    RaidTriggersRequireBuildTrust: true
    ProtectHorses: true
    ProtectDonkeys: true
    ProtectLlamas: true
    InitialBlocks: 100
    Claim Blocks Accrued Per Hour:
      Default: 100
    Max Accrued Claim Blocks:
      Default: 80000
    Accrued Idle Threshold: 0
    AccruedIdlePercent: 0
    AbandonReturnRatio: 1.0
    AutomaticNewPlayerClaimsRadius: 4
    AutomaticNewPlayerClaimsRadiusMinimum: 0
    ExtendIntoGroundDistance: 5
    MinimumWidth: 5
    MinimumArea: 100
    MaximumDepth: -2147483648
    InvestigationTool: STICK
    ModificationTool: GOLDEN_SHOVEL
    Expiration:
      ChestClaimDays: 7
      UnusedClaimDays: 14
      AllClaims:
        DaysInactive: 60
        ExceptWhenOwnerHasTotalClaimBlocks: 10000
        ExceptWhenOwnerHasBonusClaimBlocks: 5000
      AutomaticNatureRestoration:
        SurvivalWorlds: false
    AllowTrappedInAdminClaims: false
    MaximumNumberOfClaimsPerPlayer: 0
    CreationRequiresWorldGuardBuildPermission: true
    VillagerTradingRequiresPermission: true
    CommandsRequiringAccessTrust: /sethome
    DeliverManuals: true
    ManualDeliveryDelaySeconds: 30
    RavagersBreakBlocks: true
    FireSpreadsInClaims: false
    FireDamagesInClaims: false
    LecternReadingRequiresAccessTrust: true
  Spam:
    Enabled: false
    LoginCooldownSeconds: 10
    LoginLogoutNotificationsPerMinute: 5
    ChatSlashCommands: /me;/global;/local
    WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
    WarningMessage: Please reduce your noise level.  Spammers will be punished.
    BanOffenders: false
    BanMessage: Kicked for spam.
    AllowedIpAddresses: 1.2.3.4; 5.6.7.8
    DeathMessageCooldownSeconds: 120
    Logout Message Delay In Seconds: 0
  PvP:
    RulesEnabledInWorld:
      world: true
      world_nether: true
      world_the_end: true
      Unknown_Realm: true
    ProtectFreshSpawns: true
    PunishLogout: false
    CombatTimeoutSeconds: 0
    AllowCombatItemDrop: false
    BlockedSlashCommands: /home;/vanish;/spawn;/tpa
    ProtectPlayersInLandClaims:
      PlayerOwnedClaims: false
      AdministrativeClaims: false
      AdministrativeSubdivisions: false
    AllowLavaDumpingNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    AllowFlintAndSteelNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    ProtectPetsOutsideLandClaims: false
  Economy:
    ClaimBlocksMaxBonus: 0
    ClaimBlocksPurchaseCost: 0.0
    ClaimBlocksSellValue: 0.0
  ProtectItemsDroppedOnDeath:
    PvPWorlds: false
    NonPvPWorlds: true
  BlockLandClaimExplosions: true
  BlockSurfaceCreeperExplosions: true
  BlockSurfaceOtherExplosions: true
  LimitSkyTrees: true
  LimitTreeGrowth: false
  PistonMovement: CLAIMS_ONLY
  PistonExplosionSound: true
  FireSpreads: false
  FireDestroys: false
  AdminsGetWhispers: true
  AdminsGetSignNotifications: true
  VisualizationAntiCheatCompatMode: false
  SmartBan: true
  Mute New Players Using Banned Words: true
  MaxPlayersPerIpAddress: 3
  SilenceBans: true
  Siege:
    Worlds: []
    BreakableBlocks:
    - YELLOW_WOOL
    - LIME_WOOL
    - DARK_OAK_PLANKS
    - GLASS
    - GREEN_WOOL
    - FERN
    - PURPLE_WOOL
    - MAGENTA_WOOL
    - GRAVEL
    - ORANGE_WOOL
    - DEAD_BUSH
    - BIRCH_PLANKS
    - WHITE_WOOL
    - DIRT
    - RED_WOOL
    - PINK_WOOL
    - SPRUCE_PLANKS
    - SHORT_GRASS
    - COBBLESTONE
    - BLACK_WOOL
    - ACACIA_PLANKS
    - JUNGLE_PLANKS
    - OAK_PLANKS
    - LIGHT_GRAY_WOOL
    - BROWN_WOOL
    - GRASS_BLOCK
    - LIGHT_BLUE_WOOL
    - CYAN_WOOL
    - GRAY_WOOL
    - SNOW
    - BLUE_WOOL
    - GLASS_PANE
    - SAND
    DoorsOpenDelayInSeconds: 300
    CooldownEndInMinutes: 60
  EndermenMoveBlocks: false
  SilverfishBreakBlocks: false
  CreaturesTrampleCrops: false
  RabbitsEatCrops: true
  HardModeZombiesBreakDoors: false
  MobProjectilesChangeBlocks: false
  Database:
    URL: ''
    UserName: ''
    Password: ''
  UseBanCommand: false
  BanCommandPattern: ban %name% %reason%
  Advanced:
    fixNegativeClaimblockAmounts: true
    ClaimExpirationCheckRate: 60
    OfflinePlayer_cache_days: 90
  Abridged Logs:
    Days To Keep: 7
    Included Entry Types:
      Social Activity: true
      Suspicious Activity: true
      Administrative Activity: false
      Debug: false
      Muted Chat Messages: false
  ConfigVersion: 1

Plugin list

[08:35:09 INFO]: ℹ Server Plugins (55):
[08:35:09 INFO]: Paper Plugins (3):
[08:35:09 INFO]:  - nightcore, Pl3xMapExtras, Typewriter
[08:35:09 INFO]: Bukkit Plugins (52):
[08:35:09 INFO]:  - AntiPopup, AuraSkills, *BetterPing, Censura, ChestShop, Citizens, CitizensGUI, CoreProtect, DiscordSRV, EconomyBridge
[08:35:09 INFO]:  Essentials, EssentialsSpawn, EvenMoreFish, F3NPerm, FastAsyncWorldEdit, floodgate, Geyser-Spigot, GriefPrevention, GSit, HeadDrop
[08:35:09 INFO]:  ImageFrame, InteractionVisualizer, InvSeePlusPlus, ItemEdit, ItemTag, LibertyBans, LibsDisguises, LPC, LuckPerms, mclogs
[08:35:09 INFO]:  Multiverse-Core, MythicDungeons, NamelessMC, NBTAPI, packetevents, Pl3xMap, PlaceholderAPI, ProtocolLib, PvPManager, ServerLinksZ
[08:35:09 INFO]:  Shopkeepers, Skulls, SpawnerMeta, StarMail, TAB, TeaksTweaks, Vanish, Vault, ViaBackwards, ViaVersion
[08:35:09 INFO]:  voicechat, WildRTP

Running without GriefPrevention

  • I attempted running the server without GriefPrevention installed.
  • The problem does not occur when GriefPrevention is removed from the server.

Running with only GriefPrevention

  • I attempted running only GriefPrevention on the server.
  • The issue still occurs when GriefPrevention is the only plugin running.

Running on a fresh, clean server installation

  • I attempted testing for the issue on a new server.
  • The issue still occurs on a new server.

Using unmodified client

  • I attempted testing for the issue with the vanilla client.
  • The issue still occurs when using the vanilla client.

We appreciate you taking the time to fill out a bug report!

  • I searched for similar issues before submitting this bug report.
commented

I'd guess this would have to be resolved by Paper if nothing major has changed on the datapack side. Presumably the datapack uses scores like block breaks or something? If event cancellation no longer prevents incrementing those scoreboard objectives, that would cause an issue like this, and it's unfortunately out of GP's hands. Unfortunately the pack dev doesn't appear to post their pack in version control, so looking at a diff of what they do and used to do would be pretty annoying.

commented

Alright. Thank you. Yeah, with Paper, I have lots of issues with datapacks, including Racks now, and DnT. I might have to ask Paper why.

Have a nice day! I'll mark this as closed.