Skip to content

Commit c9bec9b

Browse files
committed
fix: double jump not setting flight mode correctly
1 parent 2e02e7a commit c9bec9b

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/main/java/me/zetastormy/akropolis/module/modules/player/DoubleJump.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
import me.zetastormy.akropolis.module.Module;
2727
import me.zetastormy.akropolis.module.ModuleType;
2828
import net.kyori.adventure.text.Component;
29+
import org.bukkit.Bukkit;
2930
import org.bukkit.GameMode;
3031
import org.bukkit.Material;
3132
import org.bukkit.configuration.file.FileConfiguration;
3233
import org.bukkit.entity.Player;
3334
import org.bukkit.event.EventHandler;
3435
import org.bukkit.event.player.PlayerChangedWorldEvent;
36+
import org.bukkit.event.player.PlayerGameModeChangeEvent;
3537
import org.bukkit.event.player.PlayerJoinEvent;
3638
import 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

Comments
 (0)