问题描述
所以我完全迷失了这一点,这可能是显而易见的解决方案,或者我只是在尝试一些不可能的事情,但是在这里。
我有两个类,一个被用作e侦听器类,第二个是处理队列的类(我将仅包含相关代码)。
处理程序类:
public void check() {
for (Queueable queueable : queue) {
if (!doesReceiverHavePlayers(queueable)) continue;
}
}
private boolean doesReceiverHavePlayers(Queueable queueable) {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("PlayerCount");
out.writeUTF(queueable.getReceiver());
Player player = Iterables.getFirst(Bukkit.getOnlinePlayers(),null);
player.sendPluginMessage(plugin,"BungeeCord",out.toByteArray());
return /*response*/ > 0;
}
监听器类:
@Override
public void onPluginMessageReceived(String channel,@NotNull Player player,byte[] message) {
if (!channel.equals("BungeeCord")) return;
ByteArrayDataInput in = ByteStreams.newDataInput(message);
String subChannel = in.readUTF();
switch (subChannel) {
case "PlayerCount":
int response = in.readInt();
break;
}
}
每5秒钟调用check
方法,doesReceiverHavePlayers
向特定服务器请求玩家计数,以查看是否有玩家,但是“响应”到达侦听器类{{ 1}}方法。但是如您所见,我正在尝试在onPluginMessageReceived
方法中使用response并返回布尔值。我有什么办法可以做到这一点,我应该怎么做?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)