BungeeMain / src / main / java / com / lifeknight / relaymcbungeemain / utilities / MessageUtils.java
MessageUtils.java
Raw
package com.lifeknight.relaymcbungeemain.utilities;

import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import com.lifeknight.relaymcbungeemain.Main;
import com.lifeknight.relaymcbungeemain.network.MessageServerHandler;
import com.lifeknight.relayutils.network.Command;
import com.lifeknight.relayutils.network.Message;
import com.lifeknight.relayutils.network.Recipient;
import net.md_5.bungee.api.connection.ProxiedPlayer;

public class MessageUtils {
    public static void createAndBroadcast(Recipient recipient, Command command, Object... arguments) {
        MessageServerHandler.broadcastMessage(new Message(recipient, command, arguments));
    }

    public static void createAndSend(Recipient recipient, Command command, Object... arguments) {
        MessageServerHandler.sendMessageToServer(new Message(recipient, command, arguments));
    }

    public static void sendByPlayer(ProxiedPlayer player, Command command, Object... arguments) {
        if (player == null || !player.isConnected() || player.getServer() == null) return;
        sendByPlayer(player, new Message(Server.getServer(player.getServer().getInfo()).getRecipient(), command, arguments));
    }

    public static void sendByPlayer(ProxiedPlayer player, Message message) {
        if (player == null || !player.isConnected()) return;
        ByteArrayDataOutput byteArrayDataOutput = ByteStreams.newDataOutput();
        byteArrayDataOutput.writeUTF(message.toString());
        player.getServer().getInfo().sendData(Main.CHANNEL, byteArrayDataOutput.toByteArray());
    }
}