Players with container trust can access containers through blocks
SunlitHaddock5 opened this issue ยท 5 comments
Observed Behavior
Players who have container trust in a claim can break through walls and access any container within reach. This allows players to breakthrough barriers to containers they should not physically have access to
Expected Behavior
Players with exclusively container trust should not be able to access containers through blocks
Reproduction steps
place a container under a block
claim the hole the container is in with an alt
Give yourself container trust in this claim
Put some demand on the server to emulate the stress of a normal server (I used repeating command blocks to summon mobs for about a minute)
break the block and use the delay before the block reappears to access the container below the block
you can see my video of the issue here
https://youtu.be/E-YW2NBzpzk
Stack trace or error log
No response
Server version
This server is running Paper version 1.21-37-master@dd49fba (2024-06-24T02:08:49Z) (Implementing API version 1.21-R0.1-SNAPSHOT)
GriefPrevention version
GriefPrevention version 16.18.3
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
Claims:
Mode:
world: Survival
world_the_end: Disabled
world_nether: Disabled
PreventGlobalMonsterEggs: true
PreventTheft: true
ProtectCreatures: true
PreventButtonsSwitches: true
LockWoodenDoors: false
LockTrapDoors: false
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: true
LoginCooldownSeconds: 60
LoginLogoutNotificationsPerMinute: 5
ChatSlashCommands: /me;/global;/local
WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
WarningMessage: Please reduce your noise level. Spammers will be banned.
BanOffenders: true
BanMessage: Banned 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
ProtectFreshSpawns: true
PunishLogout: true
CombatTimeoutSeconds: 15
AllowCombatItemDrop: false
BlockedSlashCommands: /home;/vanish;/spawn;/tpa
ProtectPlayersInLandClaims:
PlayerOwnedClaims: true
AdministrativeClaims: true
AdministrativeSubdivisions: true
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:
- BROWN_WOOL
- GRASS_BLOCK
- PINK_WOOL
- GRAY_WOOL
- BLUE_WOOL
- PURPLE_WOOL
- RED_WOOL
- WHITE_WOOL
- LIGHT_BLUE_WOOL
- DARK_OAK_PLANKS
- COBBLESTONE
- DIRT
- SPRUCE_PLANKS
- CYAN_WOOL
- BLACK_WOOL
- YELLOW_WOOL
- SAND
- GREEN_WOOL
- GLASS_PANE
- DEAD_BUSH
- MAGENTA_WOOL
- GLASS
- BIRCH_PLANKS
- ORANGE_WOOL
- SNOW
- LIME_WOOL
- GRAVEL
- JUNGLE_PLANKS
- SHORT_GRASS
- ACACIA_PLANKS
- FERN
- OAK_PLANKS
- LIGHT_GRAY_WOOL
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
Server Plugins (8):
Bukkit Plugins:
- Essentials, floodgate, Geyser-Spigot, GriefPrevention, ViaBackwards, ViaRewind, ViaVersion, WorldEdit
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.
There's not really a way to prevent this without some crazy amount of ray tracing to see if a block is accessible, (which would be overly complicated and put lots of strain on the server) I'd recommend making a subclaim, and only giving containertrust in the sub claim. so these "private" chests arent in the containertrust subclaim
I don't think you watched the linked video
I HAVE created a subclaim the reason this is an issue is because players can access containers below blocks. A 1x1 claim won't solve this problem, we would have to be able to limit claims vertically. As far as I know, claims don't have a modifiable vertical axis.
I wouldn't call this a bug (with GP) is what I'm saying. The issue you're having is the limitation of griefprevention not supporting vertical claiming, which isn't a bug. Yes, subclaims won't fix for ur specific issue.
How I've solved the issue is either, using a separate plugin/addon, or if u wanted to only use just GP... using subclaims where certain chests are accessible, or lastly for ur niche case, is have people setup shops that are entirely accessible without the need to open chests. For example, you drop the diamonds onto a hopper, and then a dispenser shoots out the elytra.
Is it ideal? No. But it would require a major restructure of GP if we wanted to support vertical claiming, or prevent accessing unaccessible chests.
There's not really a way to prevent this without some crazy amount of ray tracing to see if a block is accessible, (which would be overly complicated and put lots of strain on the server) I'd recommend making a subclaim, and only giving containertrust in the sub claim. so these "private" chests arent in the containertrust subclaim
GP is not an anticheat. If you need anticheat features, you should install one. This isn't a latency/lag-related issue necessarily, it's that the server is not performing a raytrace for accessing the container. A cheat client wouldn't even need to attempt to break the barrel to try to open your hopper.
If you don't want to use an anticheat, you could use LWC's donation-only mode on the hopper.
Agreed with QarthO, your design could work fine without container trust by just accepting dropped diamonds and dropping the item at the intake. Delete the barrel, remove containertrust, done.
As mentioned here, GP is not an anticheat. Related: #179 (comment)
We can help with (and some ideas have already been mentioned here) accomplishing what you'd like to do without an anticheat plugin though.