Java 插口忽略命令的第一个参数
我正在为我的Minecraft服务器创建一个/home命令,但是我在让它工作时遇到了一些麻烦。对于普通玩家,他们可以键入/home来清除他们的库存,切换到冒险模式并进入spawn(这很有效)。对于管理员来说,他们可以键入/home op转到管理库,或者键入/home spawn转到spawn。如果他们不提供参数,它将默认为admin base。除了home命令中的任何参数将admin带到admin base,甚至/home spawn之外,所有这些都可以工作。我怀疑这个论点被完全忽视了,但我不知道如何修正它Java 插口忽略命令的第一个参数,java,minecraft,bukkit,Java,Minecraft,Bukkit,我正在为我的Minecraft服务器创建一个/home命令,但是我在让它工作时遇到了一些麻烦。对于普通玩家,他们可以键入/home来清除他们的库存,切换到冒险模式并进入spawn(这很有效)。对于管理员来说,他们可以键入/home op转到管理库,或者键入/home spawn转到spawn。如果他们不提供参数,它将默认为admin base。除了home命令中的任何参数将admin带到admin base,甚至/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;
}
}
字符串应该与
等于
而不是=
@roddyoffFrozenpeas进行比较哇,它成功了!谢谢,从现在开始在Java中使用字符串时,我会记住这条规则。