🔒 Glitch Fixes
• Walls & Corners - Minecraft puts the player where the pearl was, so next to a wall or in a corner part of the player ends up inside the blocks, and from there they can walk through. The player is now moved just out of the blocks, as little as needed and never through anything
• Ceilings - A pearl thrown at a ceiling no longer leaves the player's head in it, the way up into the room above: the player is put right under it, or beside it when that is closer
• Gaps Too Small for a Player - Pearls that fly through openings no player fits through (between a fence post and a wall, beside panes and bars, over a fence under a low ceiling, under slabs, through door and trapdoor cracks) no longer teleport: the pearl is given back and staff are told where it happened. Pearls that clear a fence, a wall or a gate in the open are not affected
• Real Block Shapes - Slabs, stairs, fences and walls (1.5 tall), panes, bars, doors and trapdoors count with their real collision shape, not as full or empty blocks
• Tight Landings - When a pearl lands where no player fits (inside a crack, under a slab), the player is put where the pearl last had room, up to 1.5 blocks back; if there is none, the teleport is cancelled and the pearl given back
• Every Player Size - The player's current size is measured: sneaking, crawling and gliding players fit in lower spaces, and players resized with the scale attribute (1.20.5+) are measured as they are
✅ Normal Throws Stay Normal
• No More Rubber-Banding - 6.0 sent players back to the spot where they threw the pearl, even 20 blocks away, whenever its check misfired
• Throws Over Walls Work - 6.0 checked a line from the player's feet to the pearl, so pearls thrown over a fence, a wall or a slab were cancelled
• Throwing Near Blocks Works - The "You can't throw a pearl so close to a block!" check is gone: pearls can be thrown at a wall you are touching, at your feet, through a doorway or a window
• Pearls Given Back - A cancelled teleport gives the pearl back (Refund-Pearl, not in creative mode) and deals no pearl damage
• Light on the Server - 6.0 started a task for every pearl in the air; now one task follows them all and blocks are only read near the pearl
✨ New Features
• /pearlfix status - Shows how block shapes are read and how many pearls were checked, moved out of blocks, stopped at gaps or had no room
• /pearlfix debug - Shows every pearl check in your chat; Debug: true writes them to the console
• Staff Alerts - Block-Glitch-Message tells staff and the console who went through a gap, with the world and the coordinates, at most once every 2 seconds per player
• Gap-Height - How small an opening a pearl may carry a player through: 0.6 lets crawling players through (default), 1.8 only standing ones
• Disabled-Worlds - Worlds where pearls are not checked
• Settings.yml Kept Up To Date - Missing keys come back with their comments while your values stay; the old file is copied to old-configs/, and %player% becomes {player} and %coords% {x}, {y}, {z}. A broken file is never overwritten: the previous settings stay (at startup every check stays on) and /pearlfix reload tells you the line and column of the error
• Update Notice - The update check can be turned off (Update-Checker), only reports versions newer than yours, and tells admins (pearlfix.admin) when they join
• Permissions - pearlfix.bypass is no longer given to every operator; pearlfix.alerts, pearlfix.reload and pearlfix.admin are defined
🕹️ Built for 1.13 - 26.3
• One Jar, Every Version - Spigot and Paper from 1.13 to 26.3, on Java 8 and every newer Java
• Exact Shapes Everywhere - 1.17+: the server's collision shapes through the Bukkit API; 1.13 - 1.16: read from the server itself, after checking the reader on a fence and a fence gate; anything else: a safe approximation that is never smaller than the real shape
• Nothing Downloaded at Startup - 6.0 made servers download Adventure from Maven Central although it already carried it; now nothing is downloaded
• Clean Logs - One startup line with the version, how shapes are read and which checks are on; no banner
⚠️ Important Changes
• Old Checks Removed - Check-Distance, No-Corner and Very-Close are gone (the throw-distance check stopped legitimate throws); they are removed from Settings.yml by itself
• Staff Permission - Permissions.Staff keeps your pearlfix.message; new installs use pearlfix.alerts. The OldConfig/ and Error/ folders of 6.0 are no longer used and can be deleted
📋 Update Instructions
1. BACKUP YOUR DATA - copy plugins/DS-PearlFix before updating
2. Stop your server
3. Replace the old jar with DS-PearlFix-7.0.jar
4. Start your server: Settings.yml is updated keeping your values
🔍 Technical Details
For server administrators interested in the technical details:
• Rewritten against Spigot API 1.13.2 for Java 8: one jar for Spigot and Paper 1.13 - 26.3 on Java 8 to 25
• The landing is an exact search, not a sampled one: the player box that holds the pearl's position, touches no collision box and is closest to where Minecraft would put the player, found from the coordinates where the player's sides touch blocks
• Gaps: every tick of a pearl's flight near blocks is checked every 1/32 block for room for a crawling player
• Adventure 4.26.1 (MiniMessage and legacy text) relocated and trimmed to the classes used; no other libraries. The jar is 0.78 MB
• 45 automated tests, including random comparisons of the landing search against brute force, gaps beside panes and fences, ceilings, cracks and the conversion of DS-PearlFix 6 settings
• Tested with bot players on Paper 1.13.1, 1.13.2, 1.14.4, 1.16.5, 1.17.1, 1.18.2, 1.20.4, 1.21.4, 1.21.11 and 26.3 and on Spigot 26.3, each glitch first reproduced without the plugin: walls, corners, ceilings, gaps beside panes and bars, door and trapdoor cracks, fences and slabs under low ceilings, wall posts and cracks; every final position has zero overlap with blocks
• Normal throws untouched: 1,780 random throws with no cancellation and only minimal moves, plus hundreds of throws aimed at fences, walls, gates, panes, stairs, slabs, doors and windows; pearl stasis chambers and pearls through nether portals work as in vanilla
• 30 pearls per second for a minute: TPS stayed at 20, about half a millisecond more per tick
• Exact block shapes confirmed on Paper 1.13 - 1.16.5 (server internals) and 1.17+ (Bukkit API)