potatolain / TravelPortals

A portal system for Bukkit for Minecraft
BSD 2-Clause "Simplified" License
3 stars 2 forks source link

Able to make infinite obsidian in the nether bug #28

Open Flying--Dutchman opened 4 years ago

Flying--Dutchman commented 4 years ago

Like issue #10 , you can create infinite obsidian in the nether.

Steps to reproduce:

  1. Build portal
  2. Remove blocks under the portal (where the water is)
  3. Remove the door
Phoenix616 commented 4 years ago

Do you mean that the water flows from the portal? Because that should be blocked by this listener already. If you mean a different setup then please provide some more info about this.

Also could you please provide your used server and plugin version please? Maybe something changed about that in newer server versions.

Flying--Dutchman commented 4 years ago

Yes the water flows from the portal, but only if the steps are followed.

Build the portal: 1

Remove the block under the water (second yellow block) 2 --> 3

Remove the block under the door, and you get this: 4

Running on 1.16.2, plugin build from source of master branch.

Phoenix616 commented 4 years ago

I think I see why this is an issue. I assume the portal itself stays? Can you confirm that with /portal info or the lsit? Because it might not recognise that the portal was broken due to the block below the door getting broken and not the door itself. And because of that doesn't remove the water blocks.

EDIT: So I tested a bit with this and apparently cancelling the BlockFromToEvent does not work when the water is flowing out of the portal to the front.

Only thing I can think of of solving that would be to listen to all cases where the door might be removed (which unfortunately requires stuff like piston events and physics events too and maybe a separate Paper listener which uses the BlockDestroyEvent to handle that. Alternatively we could just don't put water in Portals in the Nether and play the "sizzle" animation or some alternative portal indication (effect loop? Or maybe even real nether portals?). If so that should be an option though imo including one to get the old behaviour back. Pretty sure using real nether portal blocks was actually an idea way back then so maybe moving to that if its technically possible (with a config to enable the old water portals) might be an easy way to work around this too..

Of course fixing the BlockFromToEvent cancelling in the server itself would also be an option, I'm just not sure if that's easily doable right now.

Flying--Dutchman commented 4 years ago

Maybe as a quick "fix" would be to always use lava in the nether and listen on lava damage. If someone than breaks the portal like described, there is only a lot more lava.

Real Nether portals, or even end portals, would be awesome, but I could guess that that would interfere with other plugins? But then again, Advanced Portals also seems to use the nether portal....

But yeah, should definitly be an option