BungeeChat 文本组件聊天错误

BungeeChat TextComponent Chat Bug

我正在为我的插件制作一个带有 Bungee Chat ClickEvent 的确认文本组件,将它发送给对我有用的播放器的唯一方法是使用 player.sendMessage("" + message) 而不会抛出任何错误。但是如果我尝试在 Minecraft 中显示文本,就会发生这种情况。

我的完整 class 代码是:

package plugin;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.TextComponent;

public class InfoCommand implements CommandExecutor {

    public TextComponent TextComponent;
    @Override
    public boolean onCommand(CommandSender sender, Command cmnd, String alias, String[] args) {
        if (!(sender instanceof Player)) {
            return false;
        }
        Player player = (Player) sender;
        player.sendMessage("Some confirmation text.");
        TextComponent yes = new TextComponent("Yes");
        yes.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/warp info"));
        
        player.sendMessage("[          " + yes + "          ]");
        return true;
    }
}

这是什么原因,我该如何解决?

这不是任何错误。只是我们需要使用 BungeeChat API 和 还有 Spigot API(不是 Bukkit API)。

为了以后参考,解决问题,我们只需要按照以下步骤:

  1. 为您的插件版本 here 下载 Spigot API(如果您使用的是 Maven,则将 Spigot API 添加到您的 pom.xml)

  2. 在您的 IDE 中,创建一个新库并分配您的 Spigot jar。之后,将库添加到您的项目中。

  3. 确保正确导入 Bukkit (import org.bukkit.*whatever*;)

这应该可以解决问题。