Bukkit equalsIgnoreCase(" gm 1")无效

时间:2014-03-23 19:46:03

标签: java

我正在尝试使用命令/ gm 1将玩家游戏模式更改为游戏模式1.我知道有一个名为essentials的插件有该命令,但我正在尝试构建bukkit插件。

这是我的Main.java:

if(cmd.getName().equalsIgnoreCase("gm 1")){
   String gm1 =  "gamemode 1 " + player.getName();
   Bukkit.dispatchCommand(Bukkit.getConsoleSender(), gm1);
   player.sendMessage(ChatColor.GRAY + "Your now in Creative Mode.");   
}


Plugin.yml:

commands:
   gm 1:
     description: Sets your game mode to creative.

我对java有点新手可以有人帮忙吗?

2 个答案:

答案 0 :(得分:2)

问题是cmd.getName()只返回命令的第一部分。 (这里是gm)。 1将存储为args[0],因为第一个之后的每个字都作为单独的字符串存储在args变量中。 你想要更像的东西:

if(cmd.getName().equalsIgnoreCase("gm") && args[0] == "1"){
   String gm1 =  "gamemode 1 " + player.getName();
   Bukkit.dispatchCommand(Bukkit.getConsoleSender(), gm1);
   player.sendMessage(ChatColor.GRAY + "You're now in Creative Mode.");   
}

commands:
  gm:
    description: Sets your game mode to creative.

因为,如上所述,命令只是gm

答案 1 :(得分:0)

@Override
public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] args) {
    Player p = (Player)sender;
    if(cmd.getName().equalsIgnoreCase("build")) {
        if(p.hasPermission("server.build")) {
            if(args.length < 0) {
                p.sendMessage(Main.p + " §cBitte benutze /build [on] [off]");
            }else {
                if(args[0].equalsIgnoreCase("on")) {
                    p.setGameMode(GameMode.CREATIVE);
                    p.sendMessage(Main.p + " §aDu hast den §eBuild-Modus §aAktiviert");
                    p.playSound(p.getLocation(), Sound.BAT_DEATH, 10, 10);
                }else if(args[0].equalsIgnoreCase("off")) {
                    p.setGameMode(GameMode.SURVIVAL);
                    p.sendMessage(Main.p + " §cDu hast den §eBuild-Modus §cDeaktiviert");
                    p.setHealth(20);
                    p.setFoodLevel(20);
                    p.playSound(p.getLocation(), Sound.BAT_DEATH, 10, 10);
                }else {
                    p.sendMessage(Main.p + " §cBitte benutze /build [on] [off]");
                }
            }
        }else {
            p.sendMessage(Main.p + " §cDu hast keine Rechte §8| §aBewerbe dich doch auf ...");
        }
    }
    return true;
}