首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“我的世界”禁用飞行

“我的世界”禁用飞行
EN

Stack Overflow用户
提问于 2016-03-11 09:50:23
回答 2查看 2K关注 0票数 0

我们的目标是在玩家输入/fly时启用飞行,并在玩家输入/dfly时禁用它,但当我输入/dfly时什么也不会发生。

代码语言:javascript
复制
    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;

public class Main extends JavaPlugin {
    public void onEnable() {
        getLogger().info("plugin started yaya");
    }

    public void onDisable() {
        getLogger().info("plugin stoped:(");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String lable, String args[]) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            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 + "you are now flying mate");
            }

        }
        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("you are no longer flying!");

                }
            }

        }
        return false;

    }


}
EN

回答 2

Stack Overflow用户

发布于 2016-03-12 12:34:26

对于dfly命令(根据您的代码),只有当玩家当前正在积极飞行时,其飞行权限才会被撤销。因此,如果玩家没有飞行(例如在地面上),但有飞行的能力,dfly命令不会做任何事情,这就是我假设你在使用该命令时什么都不会发生的意思。

如果您打算让dfly命令也取消玩家的飞行权限,即使他们当前没有飞行(但有这样做的能力),您可以简单地删除"if (player.isFlying())“条件。这将反映fly命令的相同行为,该命令在授予玩家权限之前不会检查玩家当前是否正在飞行。

票数 0
EN

Stack Overflow用户

发布于 2021-01-27 22:45:39

我只是给出一个我做的例子:

代码语言:javascript
复制
@SuppressWarnings("rawtypes")
public boolean onCommandFly(CommandSender sender, Command cmd, String label, String[] args) {
    if (label.equalsIgnoreCase("fly")) { 
        Player p = (Player) sender;
        if(sender instanceof Player) {
            if(p.hasPermission("smpenhance.fly")) {
                if(args.length == 1) {
                    if (args.length > 1) {
                        p.sendMessage(prefix + ChatColor.translateAlternateColorCodes('&', prefix + " &fToo many arguments!"));
                    } else {
                        if(p.isFlying() == true) {
                            Player po = Bukkit.getPlayer(args[0]);
                            po.setAllowFlight(false);
                            po.setFlying(false);
                            p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &fFlight disabled for &b" + po + "&r"));
                        } else {
                            Player po = Bukkit.getPlayer(args[0]);
                            po.setAllowFlight(true);
                            po.setFlying(true);
                            p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &fFlight enabled for &b" + po + "&r"));
                        }
                    }
                } else {
                    if(p.isFlying() == true) {
                        p.setAllowFlight(false);
                        p.setFlying(false);
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &fFlight disabled"));
                    } else {
                        p.setAllowFlight(true);
                        p.setFlying(true);
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &fFlight enabled"));
                    }
                    p.setAllowFlight(true);
                    p.setFlying(true);
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &fFlight enabled"));
                }
                
                
            } else {
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &4&lSORRY BUT NO PERMS DUDE!"));
            }
        } else {
            System.out.println(prefix + ChatColor.translateAlternateColorCodes('&', "&4Player only command!"));
        }
    }
    return false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35930827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档