NotMyFault 2021-04-02 23:48:16 +02:00
parent b02177e1d0
commit dd9edb68b2
No known key found for this signature in database
GPG Key ID: 158F5701A6AAD00C
3 changed files with 14 additions and 9 deletions

View File

@ -286,6 +286,8 @@ permissions:
default: false
plots.admin.command.clear:
default: false
plots.admin.flight:
default: false
plots.teleport.delay.bypass:
default: false

View File

@ -186,15 +186,17 @@ public class PlotListener {
}
final FlyFlag.FlyStatus flyStatus = plot.getFlag(FlyFlag.class);
if (flyStatus != FlyFlag.FlyStatus.DEFAULT) {
boolean flight = player.getFlight();
GameMode gamemode = player.getGameMode();
if (flight != (gamemode == GameModes.CREATIVE || gamemode == GameModes.SPECTATOR)) {
try (final MetaDataAccess<Boolean> metaDataAccess = player.accessPersistentMetaData(PlayerMetaDataKeys.PERSISTENT_FLIGHT)) {
metaDataAccess.set(player.getFlight());
if (!Permissions.hasPermission(player, Permission.PERMISSION_ADMIN_FLIGHT)) {
if (flyStatus != FlyFlag.FlyStatus.DEFAULT) {
boolean flight = player.getFlight();
GameMode gamemode = player.getGameMode();
if (flight != (gamemode == GameModes.CREATIVE || gamemode == GameModes.SPECTATOR)) {
try (final MetaDataAccess<Boolean> metaDataAccess = player.accessPersistentMetaData(PlayerMetaDataKeys.PERSISTENT_FLIGHT)) {
metaDataAccess.set(player.getFlight());
}
}
player.setFlight(flyStatus == FlyFlag.FlyStatus.ENABLED);
}
player.setFlight(flyStatus == FlyFlag.FlyStatus.ENABLED);
}
final GameMode gameMode = plot.getFlag(GamemodeFlag.class);

View File

@ -201,7 +201,8 @@ public enum Permission {
PERMISSION_ADMIN_BACKUP_OTHER("plots.admin.backup.other"),
PERMISSION_ADMIN_ALLOW_UNSAFE("plots.admin.unsafe"),
PERMISSION_ADMIN_DEBUG_OTHER("plots.admin.debug.other"),
PERMISSION_RATE("plots.rate");
PERMISSION_RATE("plots.rate"),
PERMISSION_ADMIN_FLIGHT("plots.admin.flight");
//</editor-fold>
private final String text;