Skip to content

Make "loot: true" remove drops instead of cancelling the BlockBreakEvent (Fixes Ghost Blocks) #43

@Wandraker

Description

@Wandraker

Describe the bug
When the loot: true option is enabled in the configuration, players in survival mode cannot break blocks placed by players in Creative mode. Instead of just preventing the item from dropping, the plugin seems to cancel the BlockBreakEvent entirely. This causes a "ghost block" glitch: the client finishes breaking the block, but the server cancels the event and forces the block to instantly reappear.

To Reproduce
Steps to reproduce the behavior:

  1. Make sure loot: true is set in config.yml.
  2. Place any block while in Creative mode.
  3. Switch to Survival mode.
  4. Attempt to break the placed block.
  5. The block breaks client-side, but instantly reappears without dropping anything.

Expected behavior
The block should break normally and disappear from the world, but simply drop no items (e.g., by using event.setDropItems(false) or clearing the drop list). The break event itself should not be cancelled.

Screenshots
I have a video showing the exact issue, but the behavior is exactly as described - a ghost block glitch.

Server information:

  • Server software: Purpur version 1.21.11-2566-HEAD@0fbf8d2 (MC: 1.21.11)
  • Java version: 21 - 25
  • Plugin version: Latest available (Update from Nov 17, 2025)

Hardware information :

  • CPU: AMD Ryzen 9800X (4 cores allocated)
  • RAM: 8 GB
  • Storage (SSD / HDD): 80 GB

Smartphone (please complete the following information):

  • N/A (Minecraft server issue)

Additional context
I tested this on my main server where it didn't work. Then I set up a clean test server with only Floodgate, Geyser, and AlixSystem installed. The issue persists perfectly even on this test server with a completely fresh, unedited default configuration.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions