TARDIS

TARDIS

228k Downloads

Players cannot enter TARDIS after `open_door_policy` set to true

Closed this issue ยท 12 comments

commented

Describe the bug

When open_door_policy is set after TARDISes have been created, their worldguard regions are not updated to remove the entry: deny flag. Non-companions who attempt to enter the TARDIS receive a WorldGuard deny message when standing in the doorway and do not get teleported inside.

Suggested fix: we could retroactively change flags on tardis_ worldguard regions to set the entry flag appropriately when the server starts up

To Reproduce

  1. Have a TARDIS created already
  2. Set open_door_policy to true in config
  3. Restart server
  4. Have an owner or companion open the door of the aforementioned TARDIS
  5. Have a non-companion of the TARDIS attempt to walk through
  6. They receive a denied message from worldguard and are not teleported inside

Screenshots

Error seen by non-companions:
Image

Region of TARDIS created before open_door_policy was set to true (note the entry flag):
Image

Region of new TARDIS created after open_door_policy was set to true:
Image

Log files

No applicable log entries

'/tardis version' output

[01:34:41 INFO]: [TARDIS] Server version: 1.21.5-76-04ffca0 (MC: 1.21.5)
[01:34:41 INFO]: [TARDIS] TARDIS version: 6.1.0-b3106
[01:34:41 INFO]: [TARDIS] floodgate version: 2.2.4-SNAPSHOT (b116-0e3163c)
[01:34:41 INFO]: [TARDIS] Vault version: 1.7.3-b131
[01:34:41 INFO]: [TARDIS] PlaceholderAPI version: 2.11.6
[01:34:41 INFO]: [TARDIS] Essentials version: 2.21.1-dev+15-fe43017
[01:34:41 INFO]: [TARDIS] WorldGuard version: 7.0.14-SNAPSHOT+2337-fd9c0d6
[01:34:41 INFO]: [TARDIS] LibsDisguises version: 11.0.5
commented

I should also note that enabling open_door_policy makes it possible for people to enter other TARDIS interiors by flying across the time vortex. Bridging won't work since they still won't have build permissions in others' interiors, but they are not restricted from flying outside their TIPS slot using an elytra or similar.

commented

Example of a non-companion gaining access to a TARDIS using the elytra. Once inside, they're able to fly the TARDIS and do anything else they'd normally be able to do when entering through the door

Link to video

The rogue player is still counted as being inside their own TARDIS, however:

Image

Maybe this should be promoted to its own issue?

commented

Which is why I never set open door policy to true...

commented

Which is why I never set open door policy to true...

My reasoning is that players might want the ability to take people for rides in their TARDIS without giving them full companion access. Since leaving the door opening is risky anyways (mobs entering the TARDIS), I doubt uninvited guests would be a huge problem.

commented

Yeah, except open door policy means anyone can open the door, not just enter an already opened door.

commented

Maybe there should be access levels for companions?

commented

Yeah, except open door policy means anyone can open the door, not just enter an already opened door.

That's interesting. In my testing, it seems like it allows non-companions to use the door once opened, but they're not able to open it themselves. They are able to close it, but that seems reasonable to me.

Maybe this is unintended behavior? I think this behavior would be ideal though.

Here's a video

commented

Okay, it works if the owner of the TARDIS has run the command /tardis add everyone|all because that adds everyone as a companion, but otherwise you're right, so back to the original issue...

commented

I should also note that enabling open_door_policy makes it possible for people to enter other TARDIS interiors by flying across the time vortex. Bridging won't work since they still won't have build permissions in others' interiors, but they are not restricted from flying outside their TIPS slot using an elytra or similar.

Surely if players don't leave big access holes in their TARDIS (like in the video example) then all rogue elytra flyers can do is land on outside/top the TARDIS - the build permissions will also prevent the breaking of blocks to gain entry?

commented

I should also note that enabling open_door_policy makes it possible for people to enter other TARDIS interiors by flying across the time vortex. Bridging won't work since they still won't have build permissions in others' interiors, but they are not restricted from flying outside their TIPS slot using an elytra or similar.

Surely if players don't leave big access holes in their TARDIS (like in the video example) then all rogue elytra flyers can do is land on outside/top the TARDIS - the build permissions will also prevent the breaking of blocks to gain entry?

That's a reasonable assumption. I wonder if we could prevent players from leaving their interior by adding a background task - on timer or something - that checks all the players in the time vortex and teleports them back into the console room if they've left their TIPS slot. That would also have the side effect of making sure players don't try to interact with the controls in a different TARDIS than the plugin thinks they're in, which results in all sorts of undefined behavior.

The task wouldn't have to run very often. Maybe every 100 ticks or something.

commented

Or just listen for the EntityToggleGlideEvent in the TimeVortex and cancel it/teleport them back to the interior

commented

411948d

maybe should be configurable?