- Баллы
- 66
Здравствуйте. Я пишу плагин на Двойной прыжок и команду /fly Я хочу сделать так, чтобы когда полет включен, то прыгать было бы невозможно. Я это начал делать через List, но это не работает, даже когда я включаю /fly двойной прыжок продолжает работать. Код
Код:
package orgcoallobby.me.ilezov;
import org.bukkit.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
public class FlyCommandAndJump implements CommandExecutor, Listener {
String prefix = main.getInstance().getConfig().getString("prefix");
String sound = main.getInstance().getConfig().getString("Songs.soundjump");
String effect = main.getInstance().getConfig().getString("Effect.effectjump");
List<UUID> toggled = new ArrayList<>();
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player) && command.getName().equalsIgnoreCase("flying")) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix) + "§fЭта команда только для игроков");
return true;
}
Player player = (Player) sender;
if (getToggled().contains(player.getUniqueId())) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix) + ChatColor.translateAlternateColorCodes('&', main.getInstance().getConfig().getString("Message.flydisable")));
getToggled().remove(player.getUniqueId());
player.setAllowFlight(false);
player.setFlying(false);
return true;
}
player.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix) + ChatColor.translateAlternateColorCodes('&', main.getInstance().getConfig().getString("Message.flyenabled")));
getToggled().add(player.getUniqueId());
player.setAllowFlight(true);
player.setFlying(true);
return true;
}
@EventHandler
public void PlayerToogleFlight(PlayerToggleFlightEvent flye){
Player p = flye.getPlayer();
if (p.getGameMode() == GameMode.CREATIVE || getToggled().contains(p.getUniqueId()))
return;
if (getToggled().contains(p.getUniqueId())) {
p.sendMessage("УРА!");
return;
}
flye.setCancelled(true);
p.setAllowFlight(false);
p.setFlying(false);
p.setVelocity(p.getLocation().getDirection().multiply(1.5).setY(1));
p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix) + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(main.getInstance().getConfig().getString("Message.jump"))));
p.playSound(p.getLocation(), Sound.valueOf(sound), 10,1 );
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event){
Player p = event.getPlayer();
if((p.getGameMode()!= GameMode.CREATIVE)&& (p.getGameMode()!=GameMode.SPECTATOR) && p.getLocation().subtract(0, 1, 0).getBlock().getType()!= Material.AIR && (!p.isFlying())){
p.setAllowFlight(true);
}
}
public List<UUID> getToggled() {
return toggled;
}
}