2626import me .zetastormy .akropolis .module .Module ;
2727import me .zetastormy .akropolis .module .ModuleType ;
2828import net .kyori .adventure .text .Component ;
29+ import org .bukkit .Bukkit ;
2930import org .bukkit .GameMode ;
3031import org .bukkit .Material ;
3132import org .bukkit .configuration .file .FileConfiguration ;
3233import org .bukkit .entity .Player ;
3334import org .bukkit .event .EventHandler ;
3435import org .bukkit .event .player .PlayerChangedWorldEvent ;
36+ import org .bukkit .event .player .PlayerGameModeChangeEvent ;
3537import org .bukkit .event .player .PlayerJoinEvent ;
3638import org .bukkit .event .player .PlayerToggleFlightEvent ;
3739
@@ -105,9 +107,8 @@ else if (player.getWorld().getBlockAt(player.getLocation().subtract(0, 2, 0)).ge
105107 public void onWorldChange (PlayerChangedWorldEvent event ) {
106108 Player player = event .getPlayer ();
107109
108- if (player .getGameMode () != GameMode .CREATIVE && player .getGameMode () != GameMode .SPECTATOR
109- && !inDisabledWorld (player .getLocation ())) {
110- player .setAllowFlight (true );
110+ if (player .getGameMode () != GameMode .CREATIVE && player .getGameMode () != GameMode .SPECTATOR ) {
111+ player .setAllowFlight (!inDisabledWorld (player .getLocation ()));
111112 }
112113 }
113114
@@ -116,6 +117,18 @@ public void onPlayerJoin(PlayerJoinEvent event) {
116117 Player player = event .getPlayer ();
117118
118119 if (player .getGameMode () != GameMode .CREATIVE && player .getGameMode () != GameMode .SPECTATOR )
119- player .setAllowFlight (true );
120+ player .setAllowFlight (!inDisabledWorld (player .getLocation ()));
121+ }
122+
123+ @ EventHandler
124+ public void onGameModeChange (PlayerGameModeChangeEvent event ) {
125+ Player player = event .getPlayer ();
126+
127+ if (inDisabledWorld (player .getLocation ())) return ;
128+
129+ GameMode newGameMode = event .getNewGameMode ();
130+ if (newGameMode != GameMode .CREATIVE && newGameMode != GameMode .SPECTATOR ) {
131+ Bukkit .getScheduler ().runTaskLater (getPlugin (), () -> player .setAllowFlight (true ), 1L );
132+ }
120133 }
121134}
0 commit comments