2017-04-01 07:37:48 +02:00
|
|
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
|
|
|
|
|
|
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalSubLogger;
|
2018-04-15 03:53:51 +02:00
|
|
|
import net.ME1312.SubServers.Bungee.Library.Config.YAMLSection;
|
2017-04-01 07:37:48 +02:00
|
|
|
import net.ME1312.SubServers.Bungee.Library.Util;
|
|
|
|
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
|
|
|
import net.ME1312.SubServers.Bungee.Network.Client;
|
|
|
|
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
|
|
|
|
2019-01-05 05:35:20 +01:00
|
|
|
import java.lang.reflect.Method;
|
2017-04-01 07:37:48 +02:00
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Message Log External Host Packet
|
|
|
|
*/
|
|
|
|
public class PacketInExLogMessage implements PacketIn {
|
|
|
|
private static HashMap<UUID, ExternalSubLogger> loggers = new HashMap<UUID, ExternalSubLogger>();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* New PacketInExLogMessage (Registerer)
|
|
|
|
*/
|
|
|
|
public PacketInExLogMessage() {}
|
|
|
|
|
|
|
|
@Override
|
2018-04-15 03:53:51 +02:00
|
|
|
public void execute(Client client, YAMLSection data) {
|
2017-04-01 07:37:48 +02:00
|
|
|
try {
|
2019-01-17 16:39:15 +01:00
|
|
|
if (data.contains("h") && data.contains("m") && data.getRawString("m").length() != 0 && loggers.keySet().contains(data.getUUID("h"))) {
|
|
|
|
Util.reflect(ExternalSubLogger.class.getDeclaredMethod("log", String.class), loggers.get(data.getUUID("h")), data.getRawString("m"));
|
2017-04-01 07:37:48 +02:00
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Version getVersion() {
|
|
|
|
return new Version("2.11.0a");
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Register External Logger
|
|
|
|
*
|
|
|
|
* @param logger Logger
|
|
|
|
* @return External Address
|
|
|
|
*/
|
|
|
|
public static UUID register(ExternalSubLogger logger) {
|
|
|
|
UUID id = Util.getNew(loggers.keySet(), UUID::randomUUID);
|
|
|
|
loggers.put(id, logger);
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Unregister External Logger
|
|
|
|
*
|
|
|
|
* @param id External Address
|
|
|
|
*/
|
|
|
|
public static void unregister(UUID id) {
|
|
|
|
loggers.remove(id);
|
|
|
|
}
|
|
|
|
}
|