MCSM: обновление протокола
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
group = 'asys'
|
group = 'asys'
|
||||||
version = '0.10-SNAPSHOT'
|
version = '0.10.1-SNAPSHOT'
|
||||||
|
|
||||||
apply plugin: 'osgi'
|
apply plugin: 'osgi'
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ package asys.mcsmanager;
|
|||||||
|
|
||||||
import asys.mcsmanager.packets.CS_ConsoleMessage;
|
import asys.mcsmanager.packets.CS_ConsoleMessage;
|
||||||
import asys.mcsmanager.packets.SC_Command;
|
import asys.mcsmanager.packets.SC_Command;
|
||||||
|
import asys.mcsmanager.packets.SC_ToggleSendMessages;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
|
|
||||||
@@ -48,13 +49,19 @@ public class Linker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addWebconsoleListener(String serverName, Channel channel) {
|
public void addWebconsoleListener(String serverName, Channel channel) {
|
||||||
this.webconsoleListeners
|
List<Channel> channels = this.webconsoleListeners.computeIfAbsent(serverName, v -> new ArrayList<>());
|
||||||
.computeIfAbsent(serverName, v -> new ArrayList<>())
|
if (channels.size() == 0) {
|
||||||
.add(channel);
|
this.serverMap.get(serverName).getChannel().writeAndFlush(new SC_ToggleSendMessages(true));
|
||||||
|
}
|
||||||
|
channels.add(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeWebconsoleListener(String serverName, Channel channel) {
|
public void removeWebconsoleListener(String serverName, Channel channel) {
|
||||||
this.webconsoleListeners.get(serverName).remove(channel);
|
List<Channel> channels = this.webconsoleListeners.get(serverName);
|
||||||
|
channels.remove(channel);
|
||||||
|
if (channels.size() == 0) {
|
||||||
|
this.serverMap.get(serverName).getChannel().writeAndFlush(new SC_ToggleSendMessages(false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void broadcastConsoleMessage(String serverName, CS_ConsoleMessage packet) {
|
public void broadcastConsoleMessage(String serverName, CS_ConsoleMessage packet) {
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ class ServerPacketHandler extends ChannelInboundHandlerAdapter implements IPacke
|
|||||||
private static final BiMap<Integer, Class<? extends Packet>> knownPackets = ImmutableBiMap.of(
|
private static final BiMap<Integer, Class<? extends Packet>> knownPackets = ImmutableBiMap.of(
|
||||||
3, CS_Ping.class,
|
3, CS_Ping.class,
|
||||||
4, CS_ConsoleMessage.class,
|
4, CS_ConsoleMessage.class,
|
||||||
5, SC_Command.class
|
5, SC_Command.class,
|
||||||
|
6, SC_ToggleSendMessages.class
|
||||||
);
|
);
|
||||||
private static Map<Class<? extends Packet>, IPacketHandler> pingHandlers;
|
private static Map<Class<? extends Packet>, IPacketHandler> pingHandlers;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user