Я знаю, что скорость будет только сообщать spigot, если в сети есть хотя бы один игрок, у меня даже был плагин, который ждал 2 секунды перед запуском кода, но все равно ничего. Это код
Код: Выделить всё
@Override
public void onEnable() {
getServer().getMessenger().registerOutgoingPluginChannel(this, "test:screenshare");
getServer().getMessenger().registerIncomingPluginChannel(this, "test:screenshare", this);
// Registra l'evento PlayerJoin
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
if (!(channel.equals("test:screenshare"))) {
getLogger().info("Wrong channel: " + channel);
return;
}
new BukkitRunnable() {
@Override
public void run() {
ByteArrayDataInput in = ByteStreams.newDataInput(message);
String subchannel = in.readUTF();
if (subchannel.equals("RoleUpdate")) {
String stafferRole = in.readUTF();
String stafferName = in.readUTF();
String suspectRole = in.readUTF();
String suspectName = in.readUTF();
getLogger().info("Received roles: " + stafferRole + " for " + stafferName + " and " + suspectRole + " for " + suspectName);
} else {
getLogger().info("Subchannel not found: " + subchannel);
}
}
}.runTaskLater(this, 40L);
}
Код: Выделить всё
public static final MinecraftChannelIdentifier IDENTIFIER = MinecraftChannelIdentifier.from("test:screenshare");Код: Выделить всё
sendPluginMessage(staffer.getUsername(), suspect.getUsername(), "Staffer", "Suspect");Код: Выделить всё
private void sendPluginMessage(String stafferName, String suspectName, String stafferRole, String suspectRole) {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("RoleUpdate");
out.writeUTF(stafferRole);
out.writeUTF(stafferName);
out.writeUTF(suspectRole);
out.writeUTF(suspectName);
Optional
anyConnectedPlayer = proxy.getAllPlayers().stream().findAny();
if (anyConnectedPlayer.isPresent()) {
Optional connection = anyConnectedPlayer.get().getCurrentServer();
if (connection.isPresent()) {
connection.get().sendPluginMessage(IDENTIFIER, out.toByteArray());
logger.info("Message sent to spigot, staffer name: " + stafferName + " (role: " + stafferRole + ") and suspect: " + suspectName + " (role: " + suspectRole + ")");
} else {
logger.warn("No connection was found for player: " + anyConnectedPlayer.get().getUsername());
}
} else {
logger.warn("No players connected to send message to the spigot server.");
}
}
Что я упускаю?
пробовал использовать канал банджи вместо пользовательского один, попробовал добавить больше времени, прежде чем сервер патрубка получит сообщение от скорости, поискал в Интернете, но, кроме этих двух проблем, я не нашел никого, у кого была бы такая же проблема.
Это похоже на Скорость может читать сообщения, отправленные с моего сервера, но мой сервер не может читать сообщения со скорости.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -to-spigot
Мобильная версия