【问题标题】:string sends command name instead of text after command字符串在命令之后发送命令名称而不是文本
【发布时间】:2020-08-11 10:42:23
【问题描述】:

所以我正在尝试执行广播命令,但它发出的命令名称我不知道为什么?如果您知道为什么以及如何解决此问题

package ml.harrytubestudios.helloworld.commands;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import ml.harrytubestudios.helloworld.main;

public class bro implements CommandExecutor {
private main plugins;
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String no, String[] args) {
 
        Bukkit.broadcastMessage(no);
return false;
    }
}

【问题讨论】:

  • 可能是因为该字符串的值不是您所期望的

标签: java plugins command bukkit


【解决方案1】:

您的问题是双重的。如果您查看CommandExecutor 的文档;在 Spigot 中和在 Bukkit 中是一样的,你会看到它说的是onCommand

如果返回 false,则此命令的“usage”plugin.yml 条目(如果已定义)将发送给播放器。

因为您返回的是false,所以您是说命令输入不正确,应将使用字符串发送到CommandSender。如果命令执行成功,您应该返回 true。

但是,您仍然应该看到您的 broadcastMessage,您就是这样。这在文档中再次解释了第三个参数 (label):

使用的命令的别名

这意味着您正在广播 CommandSender 使用的命令的别名(您的 no 参数),而不是它们的参数,这就是我认为您所追求的。

为了获取所用命令的参数,您需要args 参数,它是一个字符串数组。您可能希望将其格式化为一个字符串以供您的广播使用;有不同的solutions

【讨论】:

    【解决方案2】:

    我找到了答案,它的字符串是命令,而 args 是命令之后的参数,所以

        package ga.harrytubestudios.helloworld.commands;
    
    import org.bukkit.Bukkit;
    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.inventory.ItemStack;
    
    import ga.harrytubestudios.helloworld.main;
    import net.md_5.bungee.api.chat.ComponentBuilder;
    import net.md_5.bungee.api.chat.HoverEvent;
    import net.md_5.bungee.api.chat.TextComponent;
    
    public class shopcommand implements CommandExecutor {
    private main pluign;
        @Override
        public boolean onCommand(CommandSender Sender, Command smd, String label, String[] args) {
            
        
                Player p = (Player)Sender;
    p.sendmessgae(args[0])
     
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2011-08-18
      相关资源
      最近更新 更多