MCSM: Manager -> Linker
This commit is contained in:
@@ -11,16 +11,16 @@ import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class Manager {
|
public class Linker {
|
||||||
private static Manager instance = new Manager();
|
private static Linker instance = new Linker();
|
||||||
private Map<String, ServerInfo> serverMap = new HashMap<>();
|
private Map<String, ServerInfo> serverMap = new HashMap<>();
|
||||||
private Map<String, List<Channel>> webconsoleListeners = new HashMap<>();
|
private Map<String, List<Channel>> webconsoleListeners = new HashMap<>();
|
||||||
|
|
||||||
public static Manager getInstance() {
|
public static Linker getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Manager(){
|
private Linker(){
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addServer(String serverName, Channel channel) {
|
public void addServer(String serverName, Channel channel) {
|
||||||
@@ -84,7 +84,7 @@ public class MCSM_WebModule extends WebModule {
|
|||||||
if (httpExchange.getRequestURI().getQuery() != null &&
|
if (httpExchange.getRequestURI().getQuery() != null &&
|
||||||
!httpExchange.getRequestURI().getQuery().isEmpty()) {
|
!httpExchange.getRequestURI().getQuery().isEmpty()) {
|
||||||
Map<String, String> query = this.queryToMap(httpExchange.getRequestURI().getQuery());
|
Map<String, String> query = this.queryToMap(httpExchange.getRequestURI().getQuery());
|
||||||
ServerInfo serverInfo = Manager.getInstance().getServer(query.get("clientid"));
|
ServerInfo serverInfo = Linker.getInstance().getServer(query.get("clientid"));
|
||||||
if (serverInfo == null) {
|
if (serverInfo == null) {
|
||||||
this.sendJson(httpExchange, "{}");
|
this.sendJson(httpExchange, "{}");
|
||||||
} else {
|
} else {
|
||||||
@@ -97,6 +97,6 @@ public class MCSM_WebModule extends WebModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private JsonElement serverList() {
|
private JsonElement serverList() {
|
||||||
return GSON.toJsonTree(Manager.getInstance().getServerList());
|
return GSON.toJsonTree(Linker.getInstance().getServerList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
package asys.mcsmanager.server;
|
package asys.mcsmanager.server;
|
||||||
|
|
||||||
import asys.mcsmanager.Manager;
|
import asys.mcsmanager.Linker;
|
||||||
import asys.mcsmanager.packets.*;
|
import asys.mcsmanager.packets.*;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.ImmutableBiMap;
|
import com.google.common.collect.ImmutableBiMap;
|
||||||
@@ -58,7 +58,7 @@ class ServerPacketHandler extends ChannelInboundHandlerAdapter implements IPacke
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelInactive(ChannelHandlerContext context) throws Exception {
|
public void channelInactive(ChannelHandlerContext context) throws Exception {
|
||||||
Manager.getInstance().removeServer(context.channel().attr(CLIENTID).get());
|
Linker.getInstance().removeServer(context.channel().attr(CLIENTID).get());
|
||||||
super.channelInactive(context);
|
super.channelInactive(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,14 +82,14 @@ class ServerPacketHandler extends ChannelInboundHandlerAdapter implements IPacke
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Manager.getInstance().existsServer(packet.getClientId())) {
|
if (Linker.getInstance().existsServer(packet.getClientId())) {
|
||||||
try {
|
try {
|
||||||
context.channel().writeAndFlush(HandshakeResult.CLIENTID_EXISTS).sync().channel().close();
|
context.channel().writeAndFlush(HandshakeResult.CLIENTID_EXISTS).sync().channel().close();
|
||||||
} catch (InterruptedException ignore) {
|
} catch (InterruptedException ignore) {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
Manager.getInstance().addServer(packet.getClientId(), context.channel());
|
Linker.getInstance().addServer(packet.getClientId(), context.channel());
|
||||||
}
|
}
|
||||||
|
|
||||||
context.channel().write(HandshakeResult.OK);
|
context.channel().write(HandshakeResult.OK);
|
||||||
@@ -100,10 +100,10 @@ class ServerPacketHandler extends ChannelInboundHandlerAdapter implements IPacke
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleCSPing(CS_Ping packet, ChannelHandlerContext context) {
|
private void handleCSPing(CS_Ping packet, ChannelHandlerContext context) {
|
||||||
Manager.getInstance().getServer(context.channel().attr(CLIENTID).get()).putPing(packet);
|
Linker.getInstance().getServer(context.channel().attr(CLIENTID).get()).putPing(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleCSConsoleMessage(String serverName, CS_ConsoleMessage packet) {
|
private void handleCSConsoleMessage(String serverName, CS_ConsoleMessage packet) {
|
||||||
Manager.getInstance().broadcastConsoleMessage(serverName, packet);
|
Linker.getInstance().broadcastConsoleMessage(serverName, packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
package asys.mcsmanager.websocket;
|
package asys.mcsmanager.websocket;
|
||||||
|
|
||||||
import asys.mcsmanager.Manager;
|
import asys.mcsmanager.Linker;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
@@ -19,7 +19,7 @@ public class FrameHandler extends SimpleChannelInboundHandler<WebSocketFrame> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
||||||
Manager.getInstance().removeWebconsoleListener(ctx.channel().attr(WC_SERVERNAME).get(), ctx.channel());
|
Linker.getInstance().removeWebconsoleListener(ctx.channel().attr(WC_SERVERNAME).get(), ctx.channel());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -29,10 +29,10 @@ public class FrameHandler extends SimpleChannelInboundHandler<WebSocketFrame> {
|
|||||||
if (requestText.startsWith("]")) {
|
if (requestText.startsWith("]")) {
|
||||||
String serverName = requestText.substring(1);
|
String serverName = requestText.substring(1);
|
||||||
ctx.channel().attr(WC_SERVERNAME).set(serverName);
|
ctx.channel().attr(WC_SERVERNAME).set(serverName);
|
||||||
Manager.getInstance().addWebconsoleListener(serverName, ctx.channel());
|
Linker.getInstance().addWebconsoleListener(serverName, ctx.channel());
|
||||||
} else if (requestText.startsWith(":")) {
|
} else if (requestText.startsWith(":")) {
|
||||||
String command = requestText.substring(1);
|
String command = requestText.substring(1);
|
||||||
Manager.getInstance().sendCommand(ctx.channel().attr(WC_SERVERNAME).get(), command);
|
Linker.getInstance().sendCommand(ctx.channel().attr(WC_SERVERNAME).get(), command);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.warn("unsupport frame type: {}", frame.getClass().getName());
|
logger.warn("unsupport frame type: {}", frame.getClass().getName());
|
||||||
|
|||||||
Reference in New Issue
Block a user