diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java index 69f70c6c..6b0d38be 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java @@ -77,18 +77,18 @@ public class CmdFly extends FCommand { continue; } FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player); - Faction myFaction = fPlayer.getFaction(); - if (!player.hasPermission("factions.fly.bypassnearbyenemycheck") && !fPlayer.isAdminBypassing()) { - if (fPlayer.hasEnemiesNearby()) disableFlightSync(fPlayer); + if (fPlayer.isAdminBypassing()) continue; + if (!player.hasPermission("factions.fly.bypassnearbyenemycheck")) { checkEnemiesSync(fPlayer); - continue; + if (fPlayer.hasEnemiesNearby()) { + disableFlightSync(fPlayer); + continue; + } } FLocation myFloc = new FLocation(player.getLocation()); - if (Board.getInstance().getFactionAt(myFloc) != myFaction) { if (!checkFly(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) { disableFlightSync(fPlayer); } - } } } @@ -97,6 +97,7 @@ public class CmdFly extends FCommand { } public static boolean checkFly(FPlayer fme, Player me, Faction toFac) { + System.out.print("Checking user " + me.getName()); if (Conf.denyFlightIfInNoClaimingWorld && !Conf.worldsNoClaiming.isEmpty() && Conf.worldsNoClaiming.stream().anyMatch(me.getWorld().getName()::equalsIgnoreCase)) return false; if (toFac.getAccess(fme, PermissableAction.FLY) == Access.ALLOW) return true; diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index 44adfb74..5b3ef3b1 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -403,6 +403,8 @@ public class FCmdRoot extends FCommand implements CommandExecutor { if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false) && !fFlyEnabled) { this.addSubCommand(this.cmdFly); fFlyEnabled = true; + CmdFly.startFlyCheck(); + CmdFly.startParticles(); } } diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index 33d35033..976c546d 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -571,13 +571,8 @@ public class FactionsPlayerListener implements Listener { } public void checkCanFly(FPlayer me) { - if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) return; - if (me.isFlying() && !me.isVanished() && (!me.canFlyAtLocation() || me.checkIfNearbyEnemies())) { - me.setFFlying(false, false); - me.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(me.getLastStoodAt()).getTag()); - return; - } - if (me.isFlying() || !FactionsPlugin.instance.getConfig().getBoolean("ffly.AutoEnable")) return; + if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight") || !FactionsPlugin.instance.getConfig().getBoolean("ffly.AutoEnable")) return; + if (me.isFlying()) return; me.setFFlying(true, false); CmdFly.flyMap.put(me.getName(), true); if (CmdFly.particleTask == null) @@ -656,33 +651,6 @@ public class FactionsPlayerListener implements Listener { } refreshPosition(player, lastLocations.get(player.getUniqueId()), player.getLocation()); lastLocations.put(player.getUniqueId(), player.getLocation()); - if (CmdFly.flyMap.containsKey(player.getName())) { - String name = player.getName(); - if (!player.isFlying() - || player.getGameMode() == GameMode.CREATIVE - || !FactionsPlugin.instance.mc17 && player.getGameMode() == GameMode.SPECTATOR) { - continue; - } - FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player); - Faction myFaction = fPlayer.getFaction(); - if (myFaction.isWilderness()) { - Bukkit.getScheduler().runTask(FactionsPlugin.instance, () -> fPlayer.setFlying(false)); - CmdFly.flyMap.remove(player.getName()); - continue; - } - Bukkit.getScheduler().runTask(FactionsPlugin.instance, () -> { - if (!fPlayer.checkIfNearbyEnemies()) { - FLocation myFloc = new FLocation(player.getLocation()); - if (Board.getInstance().getFactionAt(myFloc) != myFaction) { - if (!CmdFly.checkFly(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) { - fPlayer.setFFlying(false, false); - CmdFly.flyMap.remove(name); - } - } - } - }); - } - } } }, 5L, 10L);