-1
我開始爲我的服務器開發插件。我做了主要類和命令,但是當我開始使用gamemode
命令時,所有這些命令都停止了。我的意思是它沒有錯誤,但沒有輸出。這可能是一個簡單的錯誤,但我找不到它。BUKKIT - MINECRAFT設置遊戲模式問題
這裏是我的代碼:
import org.bukkit.Material;
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.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class Gamemode implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Haha nice try not happening today.");
return true;
}
Player p = (Player) sender;
if (cmd.getName().equalsIgnoreCase("gm")) {
if ((!p.hasPermission("sutils.*")) &&
(!p.hasPermission("sutils.gamemode"))) {
p.sendMessage(ChatColor.RED + "Sorry no permission.");
return true;
}
if (args.equals("0")) {
p.setGameMode(GameMode.SURVIVAL);
p.sendMessage(ChatColor.RED + "Gamemode set to Survival");
}
if (args.equals("1")) {
p.setGameMode(GameMode.CREATIVE);
p.sendMessage(ChatColor.RED + "Gamemode set to Creative");
}
if (args.equals("2")) {
p.setGameMode(GameMode.ADVENTURE);
p.sendMessage(ChatColor.RED + "Gamemode set to Adventure");
}
if (args.equals("3")) {
p.setGameMode(GameMode.SPECTATOR);
p.sendMessage(ChatColor.RED + "Gamemode set to Spectator");
}
return true;
}
return true;
}
}
其實,出現這種情況的唯一的事情是,當我在控制檯輸入命令時,它給我發我不是一個球員味精但作爲球員都能跟得上不起作用。
你在那裏有一個錯字,我修好了它。我完全同意你的帖子,但是我想補充一點,在這種情況下,我會使用開關代替。根據您的Java版本,您需要將args [0]轉換爲整數。之所以只是因爲它更清潔imo –