Minecraft Отключить летать

Цель состоит в том, чтобы включить полет, когда игрок набирает /fly , и отключить его, когда игрок набирает /dfly , но когда я набираю /dfly ничего не происходит.

  package ts.fl.me; import org.bukkit.Bukkit; import org.bukkit.Color; import org  .bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; публичный класс Main расширяет JavaPlugin {public void onEnable () {getLogger (  ) .info ("плагин запущен yaya");  } public void onDisable () {getLogger (). info ("плагин остановлен :(");} public boolean onCommand (CommandSender sender, Command cmd, String lable, String args []) {if (sender instanceof Player) {Player player  = (Player) отправитель; if (cmd.getName (). EqualsIgnoreCase ("fly")) {String fly = "fly" + player.getName (); Bukkit.dispatchCommand (Bukkit.getConsoleSender (), fly); player.  setAllowFlight (true); player.setFlying (true); player.sendMessage (Color.RED + "теперь вы летите напарником");}} if (sender instanceof Player) {Player player = (Player) sender; if (cmd.  getName (). equalsIgnoreCase ("dfly")) {if (player.isFlying ()) {String dfly = "dfly" + player.getName (); Bukkit.dispatchCommand (Bukkit.getConsoleSender (), dfly); player.setAllowFlight  (false); player.setFlying (false); player.sendMessage («вы больше не летаете!»);}}} return false;}}  

Для команды dfly (в соответствии с вашим кодом) разрешение игрока на полет будет только отменено d, если он сейчас активно летает. Так что, если игрок не летает (например, по земле), но имеет способность летать, команда dfly ничего не сделает, а именно то, что я предполагаю, вы имеете в виду, говоря, что при использовании команды ничего не происходит.

Если вы намерены, чтобы команда dfly также лишила игрока разрешения на полет, даже если они в настоящее время не летают (но могут это делать), вы можете просто удалить условие « if (player.isFlying ()) ». Это будет отражать то же поведение команды fly , которая не проверяет, не в данный момент летает игрок, прежде чем дать ему разрешение.


Просто приведу пример того, что я сделал: D

  @SuppressWarnings ("rawtypes") public boolean onCommandFly (отправитель CommandSender, команда cmd, метка строки, аргументы String []) {if (label.equalsIgnoreCase ("fly")) {Player p = (  Player) отправитель;  if (экземпляр-отправитель Player) {if (p.hasPermission ("smpenhance.fly")) {if (args.length == 1) {if (args.length> 1) {p.sendMessage (prefix + ChatColor.translateAlternateColorCodes (  '&', префикс + "& fСлишком много аргументов!"));  } else {if (p. isFlying () == true) {Player po = Bukkit.getPlayer (args [0]);  po.setAllowFlight (ложь);  po.setFlying (ложь);  p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& fFlight отключен для & b" + po + "& r"));  } else {Player po = Bukkit.getPlayer (args [0]);  po.setAllowFlight (правда);  po.setFlying (правда);  p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& fFlight включен для & b" + po + "& r"));  }}} else {если (p.isFlying () == true) {p.setAllowFlight (false);  p.setFlying (ложь);  p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& fFlight отключен"));  } еще {p.setAllowFlight (истина);  p.setFlying (правда);  p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& fFlight включен"));  } p.setAllowFlight (true);  p.setFlying (правда);  p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& fFlight включен"));  }} else {p.sendMessage (ChatColor.translateAlternateColorCodes ('&', префикс + "& 4 & l ИЗВИНИТЕ, НО НЕ ЧУВСТВИТЕЛЬ!"));  }} else {System.out.println (префикс + ChatColor.translateAlternateColorCodes ('&', "& 4Player only command!"));  }} return false;}  

2

Оцените статью
Gamicon.ru
Добавить комментарий