【问题标题】:Only run command as one player? Minecraft plugin develment仅作为一名玩家运行命令?我的世界插件开发
【发布时间】:2014-12-18 23:41:06
【问题描述】:

我正在为我的自定义插件、服务器创建一个命令。基本上我需要的是使命令只能由一个或多个玩家运行的编码。

例如,如果我想要一个命令 /idk,但只有玩家 SOS 可以使用它。如果其他人使用它,就会执行另一个命令,它会发送一条消息“Your not SOS”!

假设它杀死了试图使用该命令的人,而不是向他们发送一条消息说“你不是 SOS”

谢谢!

这是我下面的开始!

  {
        if (args.length != 1)
        {
            return false;
        }

        final Player player = getPlayer(args[0]);

        if (player == null)
        {
            sender.sendMessage("This player can't be found!");
            return true;
        }

//Commands and other things down here

【问题讨论】:

  • 要得到答案,你应该问一个问题。但是,如果您想获得有关如何执行此操作的提示(这不是此类事情的论坛,但无论如何我都会回答),您应该查看 Essentials mod,因为它有 sudo 来做一些事情,kill 到杀死一个玩家以及许多其他有趣的命令,例如kitty-cannon

标签: java minecraft bukkit


【解决方案1】:

您可以检查发送者的名称或命令本身

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    if (cmd.getName().equalsIgnoreCase("idk")) {
        if (sender.getName().equalsIgnoreCase("SOS")) {
            sender.sendMessage("You are SOS");
        } else {
            sender.sendMessage("You are not SOS!");
        }
        return true;
    }
    return false;
}

【讨论】:

  • 这很有帮助,还有一个问题,我将如何使用它添加乘法命令。如果我想要 /idk 和 /nope。
  • 是否将 /idk 和 /nope 设置为相同的 if 块? if (cmd.getName().equalsIgnoreCase("idk") || cmd.getName().equalsIgnoreCase("nope")) {
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
  • 2010-09-05
  • 1970-01-01
  • 2013-06-08
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多