我试图通过“BungeeCord Plugin Messaging Channel”从代理向服务器发送消息。我使用了以下代码:
在 BungeeCord 插件中:
ByteArrayOutputStream bb = new ByteArrayOutputStream();
DataOutputStream outt = new DataOutputStream(bb);
try {
outt.writeUTF("Forward");
outt.writeUTF("lobby");
outt.writeUTF("anfrage ");
outt.writeUTF(pp.getDisplayName());
} catch (IOException e) {
e.printStackTrace();
}
pp.sendData("GlobalSystem", bb.toByteArray());
在 Spigot 插件中:
public class MessageListener implements PluginMessageListener {
public MessageListener(main main) {
plugin = main;
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, "GlobalSystem", this);
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "GlobalSystem");
}
@Override
public void onPluginMessageReceived(String channel, Player p, byte[] args) {
System.out.println("hi");
}
main plugin = main.getPlugin();
}
它有什么问题? 我阅读了这些网站上的所有内容:
Bukkit & Bungee Plugin Message Channel
抱歉我的英语不好,感谢您的帮助:)
最佳答案
你又犯了一个错误。您正在将数据包发送到播放器而不是服务器。你需要做的
pp.getServer().sendData("GlobalSystem", bb.toByteArray());
关于java - 从 BungeeCord 发送 PluginMessage 到 SpigotServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376024/