子口忽略命令的第一个参数

时间:2019-11-25 22:43:25

标签: java minecraft bukkit

我正在为我的Minecraft服务器创建一个 / home 命令,但是在使其正常工作时遇到了一些麻烦。对于普通玩家,他们可以键入 / home 来清除库存,切换到冒险模式并生成(有效)。对于管理员来说,应该发生的事情是他们可以键入 / home op 进入管理员库,或者键入 / home spawn 进行生成。如果他们不提供参数,则默认为admin。除了home命令中的任何参数都将管理员带到admin库,甚至 / home spawn 之外,所有这些工作都有效。我怀疑该参数已被完全忽略,但我不知道如何解决。

package com.epizy.alephnull.homecommand;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.Location;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import com.epizy.alephnull.homecommand.Main;

public class Home implements CommandExecutor {

    public Home(Main main)
    {
        main.getCommand("home").setExecutor(this);
    }

    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
        if (!(sender instanceof Player))
        {
            sender.sendMessage("You must be a player to execute this command.");
            return true;
        }
        Player temp = (Player)sender;
        if (temp.isOp())
        {
            if (args.length == 0)
            {
                temp.teleport(new Location(Bukkit.getServer().getWorld("world"), 0, 218, 0));
                return true;
            }
            else if (args[0] == "op")
            {
                temp.teleport(new Location(Bukkit.getServer().getWorld("world"), 0, 218, 0));
                return true;
            }
            else if (args[0] == "spawn")
            {
                temp.teleport(new Location(Bukkit.getServer().getWorld("world"), 0, 250, 0));
                return true;
            }

        }
        else
        {

            temp.setGameMode(GameMode.ADVENTURE);
            temp.getInventory().clear();
            temp.updateInventory();
            temp.teleport(new Location(Bukkit.getServer().getWorld("world"), 0, 250, 0));
            return true;
        }
        return true;
    }

}

0 个答案:

没有答案