ClassiCube / MCGalaxy

A Minecraft Classic / ClassiCube server software
GNU General Public License v3.0
174 stars 82 forks source link

Block limitations are ignored if /undo /redo is done #708

Open fucksophie opened 2 years ago

fucksophie commented 2 years ago

CPE CustomBlocks can be disabled, but you can bypass them like this:

  1. force the client to place a cpe block, for example id 55 (this would be ID 33)
  2. then, force the client to say /undo 5m (5m is a example)
  3. do /redo on all of the clients now

to all of the people who where currently online, id 55 would be sent instead of id 33

UnknownShadow200 commented 2 years ago

I attempted to reproduce with both a classic mode and enhanced mode client connected, but 1) the classic mode client was sent Wood 2) the enhanced mode client was sent Crate

UnknownShadow200 commented 2 years ago

Note: this issue is actually about disabling the CustomBlocks extension server-side

Extension support implies the following:

The issue arises when only BlockDefinitions is mutually supported, because BufferedBlockSender doesn't properly distinguish between 'block is supported' vs 'block is currently defined'