diff --git a/netty/src/main/java/com/ljsd/jieling/netty/server/NettyGameServer.java b/netty/src/main/java/com/ljsd/jieling/netty/server/NettyGameServer.java index a190a815a..4a1ab9e01 100644 --- a/netty/src/main/java/com/ljsd/jieling/netty/server/NettyGameServer.java +++ b/netty/src/main/java/com/ljsd/jieling/netty/server/NettyGameServer.java @@ -85,15 +85,14 @@ public class NettyGameServer extends AbstractServer { } }); - serverBootstrap.bind(getLocalAddress().getPort()).sync().channel().closeFuture().sync(); -// ChannelFuture channelFuture = serverBootstrap.bind(getLocalAddress().getPort()); -// this.channel = channelFuture.channel(); -// channelFuture.sync(); -// channelFuture.channel().closeFuture().sync(); + ChannelFuture channelFuture = serverBootstrap.bind(getLocalAddress().getPort()).sync(); + this.channel = channelFuture.channel(); + //同步关闭改异步回调 优雅关闭netty + this.channel.closeFuture().addListener((ChannelFutureListener) future -> close()); } catch (Exception e) { throw new ConnectException("close exception", getLocalAddress(), null); } finally { - close(); + // close(); } } diff --git a/serverlogic/src/main/java/com/ljsd/GameApplication.java b/serverlogic/src/main/java/com/ljsd/GameApplication.java index 6f93fd724..a12b4df10 100644 --- a/serverlogic/src/main/java/com/ljsd/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/GameApplication.java @@ -22,6 +22,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Scanner; @Configuration @@ -57,6 +58,23 @@ public class GameApplication { setRegisterTime();// might loop GameLogicService.getInstance().onStart(); NetManager.getInstance().init(); + + //控制台gm + Scanner sc = new Scanner(System.in); + while(sc.hasNext()) + { + try { + String cmd = sc.nextLine(); + if(cmd.startsWith("//")) + { + System.out.println("执行命令:" + cmd.substring(2)); + String cmd2 = cmd.substring(2); + GmService.exeCmd(cmd2); + } + }catch (Exception e){ + System.out.print("gmException"+e); + } + } } private static void setRegisterTime() throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/GmService.java b/serverlogic/src/main/java/com/ljsd/GmService.java index e85231e27..453a15ae4 100644 --- a/serverlogic/src/main/java/com/ljsd/GmService.java +++ b/serverlogic/src/main/java/com/ljsd/GmService.java @@ -40,6 +40,12 @@ public class GmService implements RPCRequestGMIFace.Iface { @Override public Result idipGm(String reserved, String cmd) throws InvalidOperException, TException { + return exeCmd(cmd); + } + + + static Result exeCmd(String cmd){ + LOGGER.info("gm________________________"+cmd); Result result = new Result(); result.setResultCode(-1); @@ -68,10 +74,10 @@ public class GmService implements RPCRequestGMIFace.Iface { sendIds.add(user1.getId()); } InnerMessageUtil.broadcastWithRandom( user->{ - LOGGER.info("hotfix user={}",user.getId()); - MongoUtil.getLjsdMongoTemplate().save(user); - } - , sendIds, Math.min(10, 10)); + LOGGER.info("hotfix user={}",user.getId()); + MongoUtil.getLjsdMongoTemplate().save(user); + } + , sendIds, Math.min(10, 10)); result.setResultCode(1); return result; } @@ -90,7 +96,7 @@ public class GmService implements RPCRequestGMIFace.Iface { if (obj instanceof GmRoleAbstract) { - //todo + //todo Map rechargeInfoMap = new HashMap<>(); if(cmd.contains("recharge")){ File file = new File("../conf/BuyGoodsLogic.log"); @@ -174,8 +180,8 @@ public class GmService implements RPCRequestGMIFace.Iface { } InnerMessageUtil.broadcastWithRandom( user->{ - ((GmRoleAbstract) obj).setUser(user); - obj.exec(parameters2); + ((GmRoleAbstract) obj).setUser(user); + obj.exec(parameters2); }, sendIds, Math.min(randomTime, 120)); } else { LOGGER.info("gm________________________start:"+cmd); @@ -190,7 +196,6 @@ public class GmService implements RPCRequestGMIFace.Iface { } result.setResultCode(0); return result; + } - - } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index 072c26d9d..75705ebc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -83,7 +83,7 @@ class ExpectRankActivity extends AbstractActivity { continue; } ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) { + if (activityMission == null || activityMission.getOpenType() == 0) { continue; } int missionId = rank2miss.get(rank); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java index 5295b3aa7..176f95fdf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java @@ -92,7 +92,11 @@ public class SessionManager implements INetSession, INetReceived