50 lines
1.9 KiB
Java
50 lines
1.9 KiB
Java
package de.nexuslobby.utils;
|
|
|
|
import de.nexuslobby.NexusLobby;
|
|
import org.bukkit.GameMode;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.player.PlayerJoinEvent;
|
|
import org.bukkit.event.player.PlayerMoveEvent;
|
|
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
|
import org.bukkit.util.Vector;
|
|
|
|
public class DoubleJump implements Listener {
|
|
|
|
@EventHandler
|
|
public void onJoin(PlayerJoinEvent event) {
|
|
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
|
|
event.getPlayer().setAllowFlight(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onFly(PlayerToggleFlightEvent event) {
|
|
Player player = event.getPlayer();
|
|
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) return;
|
|
|
|
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
|
|
event.setCancelled(true);
|
|
player.setAllowFlight(false);
|
|
player.setFlying(false);
|
|
|
|
double velocity = NexusLobby.getInstance().getConfig().getDouble("doublejump.velocity", 1.0);
|
|
double horizontal = NexusLobby.getInstance().getConfig().getDouble("doublejump.horizontal", 0.2);
|
|
|
|
Vector v = player.getLocation().getDirection().multiply(horizontal).setY(velocity);
|
|
player.setVelocity(v);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onMove(PlayerMoveEvent event) {
|
|
Player player = event.getPlayer();
|
|
if (player.getGameMode() != GameMode.CREATIVE && player.getLocation().subtract(0, 0.1, 0).getBlock().getType() != Material.AIR) {
|
|
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
|
|
player.setAllowFlight(true);
|
|
}
|
|
}
|
|
}
|
|
} |