Bridge: успешная отправка логов на MCSM
(cherry picked from commit 2070a5eb63)
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
/*
|
||||
* DmitriyMX <d.mihailov@samson-rus.com>
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2017-05-17
|
||||
*/
|
||||
package asys.bridge.bukkit;
|
||||
|
||||
import asys.mcsmanager.packets.CS_ConsoleMessage;
|
||||
import io.netty.channel.Channel;
|
||||
import org.apache.logging.log4j.core.LogEvent;
|
||||
import org.apache.logging.log4j.core.appender.AbstractAppender;
|
||||
|
||||
public class BridgeLoggerAppender extends AbstractAppender {
|
||||
private Channel channel;
|
||||
|
||||
BridgeLoggerAppender() {
|
||||
super("ASysBridge", null, null);
|
||||
@@ -16,6 +19,24 @@ public class BridgeLoggerAppender extends AbstractAppender {
|
||||
|
||||
@Override
|
||||
public void append(LogEvent event) {
|
||||
System.out.println("+++ "+event.getMessage().getFormattedMessage());
|
||||
if (channel == null) return;
|
||||
|
||||
long timeMillis = event.getMillis();
|
||||
int intLevel = event.getLevel().intLevel();
|
||||
String loggerName = event.getLoggerName();
|
||||
String message = event.getMessage().getFormattedMessage();
|
||||
|
||||
CS_ConsoleMessage messagePkg = new CS_ConsoleMessage(
|
||||
timeMillis,
|
||||
intLevel,
|
||||
loggerName,
|
||||
message
|
||||
);
|
||||
|
||||
channel.writeAndFlush(messagePkg);
|
||||
}
|
||||
|
||||
void setChannel(Channel channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,18 +24,22 @@ public class BridgePlugin extends JavaPlugin {
|
||||
private ScheduledExecutorService ses;
|
||||
private ScheduledFuture<?> sesFuture, sesPingFuture;
|
||||
private int tryConnect = 0;
|
||||
private BridgeLoggerAppender loggerAppender;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
((Logger)LogManager.getRootLogger()).addAppender(new BridgeLoggerAppender());
|
||||
((Logger)LogManager.getRootLogger()).addAppender(loggerAppender = new BridgeLoggerAppender());
|
||||
onEnable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
INSTANCE = this;
|
||||
saveDefaultConfig();
|
||||
if (INSTANCE == null) {
|
||||
INSTANCE = this;
|
||||
saveDefaultConfig();
|
||||
|
||||
startReconnect();
|
||||
startReconnect();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,6 +88,7 @@ public class BridgePlugin extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void startPing(Channel channel) {
|
||||
getLoggerAppender().setChannel(channel);
|
||||
sesPingFuture = ses.scheduleAtFixedRate(() -> {
|
||||
channel.write(new CS_Ping(
|
||||
System.currentTimeMillis(),
|
||||
@@ -104,8 +109,13 @@ public class BridgePlugin extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void stopPing() {
|
||||
getLoggerAppender().setChannel(null);
|
||||
if (sesPingFuture != null) {
|
||||
sesPingFuture.cancel(false);
|
||||
}
|
||||
}
|
||||
|
||||
public BridgeLoggerAppender getLoggerAppender() {
|
||||
return loggerAppender;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements
|
||||
private static Map<Class<? extends Packet>, IPacketHandler> handshakeHandlers;
|
||||
|
||||
private static final BiMap<Integer, Class<? extends Packet>> pingPackets = ImmutableBiMap.of(
|
||||
3, CS_Ping.class
|
||||
3, CS_Ping.class,
|
||||
4, CS_ConsoleMessage.class
|
||||
);
|
||||
|
||||
ClientPacketHandler() {
|
||||
|
||||
Reference in New Issue
Block a user