OnPluginMessageReceived не работает при отправке со скорости на патрубокJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 OnPluginMessageReceived не работает при отправке со скорости на патрубок

Сообщение Anonymous »

Я изучаю, как плагины скорости работают в моей сети Minecraft, и мне хотелось создать простую команду /screenshare (player), чтобы перенести обоих игроков на сервер совместного использования экрана. Поскольку я хочу, чтобы плагин spigot (который работает только на сервере совместного использования экрана) знал, какой игрок является сотрудником, а какой подозреваемым, я узнал о канале обмена сообщениями плагина. Я вроде понял, как это работает: когда я отправляю сообщение со скорости на точку скорости, серверы скорости получают его и печатают, но при отправке со скорости на точку скорости этого не происходит.
Я знаю, что скорость будет только сообщать 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");
функция, вызываемая при запуске команды /ss для определения скорости.

Код: Выделить всё

    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.");
}
}
регистратор ""Сообщение отправлено на Spigot, имя сотрудника: " + StafferName + " (роль: " + StafferRole + ") и подозреваемый: " + имя подозреваемого + " (роль: " + подозреваемая роль + ")")" появляется в консоли, и все в порядке, но spigot ничего не говорит.
Что я упускаю?
пробовал использовать канал банджи вместо пользовательского один, попробовал добавить больше времени, прежде чем сервер патрубка получит сообщение от скорости, поискал в Интернете, но, кроме этих двух проблем, я не нашел никого, у кого была бы такая же проблема.
Это похоже на Скорость может читать сообщения, отправленные с моего сервера, но мой сервер не может читать сообщения со скорости.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -to-spigot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»