Flying the exterior and trying a teleport commands soft locks you
Describe the bug
When flying the tardis exterior, shift click to exit, it just puts you outside of the tardis exterior and you are soft locked, it thinks you are still flying it and you cannot teleport. This is quite a bug, now I cannot do any teleportation at all until I restart the server. There are no errors in the console.
To Reproduce
Enter the exterior flight mode, shift to get out.
Screenshots
No response
Log files
Paste configs or pastebin.com link here!
'/tardis version' output
[TARDIS]: Server version: 1.21-107-aa36ae6 (MC: 1.21) [TARDIS]: TARDIS version: 5.7.0-b2935 [TARDIS]: Vault version: 1.7.3-b131 [TARDIS]: Multiverse-Core version: 4.3.12 [TARDIS]: WorldGuard version: 7.0.11-beta1+a801a9d [TARDIS]: Multiverse-Inventories version: 4.2.6 [TARDIS]: Essentials version: 2.21.0-dev+102-fcf6e64 [TARDIS]: CoreProtect version: 22.4
Cannot reproduce, exterior flight functions as expected for me.
The plugin is intentionally preventing teleporting while flying, if the flying doesn't stop successfully - shift leaves you stranded outside, then the teleport lock is not removed... You need to figure out why you're not being teleported back to the interior - possibly lag? Might need to revert the teleport lock change and find some other way to prevent other plugins from being used.
I'm gonna do some further testing tomorrow to see if I can find out which plugin is causing the issue
Do you have ProtocolLib installed?
should also note that when this happen the /tardistravel did not work it stated we was not in a tardis and when attemptting the tardis occupy it said we was not in the tardis world.
also this only happens in the creative world could it have something to do with that?
this still happens, havent yet disabled plugins that might affect it tho..
Slightly related: Is it possible to add a luckperms permissions context when a player is flying the police box so we can disable any commands that may conflict with it?
Something like:
public class FlyingCalculator implements ContextCalculator<Player> {
private static final String KEY = "is-flying-tardis";
@Override
public void calculate(Player target, ContextConsumer contextConsumer) {
contextConsumer.accept(KEY, String.valueOf(isFlying(target)));
}
@Override
public ContextSet estimatePotentialContexts() {
ImmutableContextSet.Builder builder = ImmutableContextSet.builder();
builder.add(KEY, "true");
builder.add(KEY, "false");
return builder.build();
}
private boolean isFlying(Player target) {
return TARDIS.plugin.getTrackerKeeper().getFlyingReturnLocation().containsKey(target.getUniqueId());
}
}
62a74cd - build 3120 - untested