From 11cd52dbd8d36d3793d2441c2865ee91a974b30b Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Fri, 4 Jan 2019 13:39:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=92=E7=81=B5=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/server/s_c_map2_size.txt | 3 -- .../{s_c_map1_size.txt => s_c_map_size.txt} | 0 .../com/ljsd/jieling/GameApplication.java | 5 +- .../com/ljsd/jieling/logic/STableManager.java | 46 ++++++++++++++++++- .../com/ljsd/jieling/logic/map/CCell.java | 34 ++++++++++++++ .../java/com/ljsd/jieling/logic/map/CMap.java | 38 +++++++++++++++ .../com/ljsd/jieling/logic/map/MapLogic.java | 44 ++++++++++++++++++ .../java/com/ljsd/jieling/models/SCMap.java | 32 +++++++++++++ .../{sCMapSize2.java => SCMapSize.java} | 20 ++++---- .../java/com/ljsd/jieling/models/sCMap1.java | 46 ------------------- .../java/com/ljsd/jieling/models/sCMap2.java | 46 ------------------- .../com/ljsd/jieling/models/sCMapSize1.java | 45 ------------------ .../jieling/{logic => util}/StringUtil.java | 2 +- .../ljsd/jieling/{logic => util}/SysUtil.java | 2 +- 14 files changed, 208 insertions(+), 155 deletions(-) delete mode 100644 conf/server/s_c_map2_size.txt rename conf/server/{s_c_map1_size.txt => s_c_map_size.txt} (100%) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/map/CCell.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/map/CMap.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/map/MapLogic.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/models/SCMap.java rename serverlogic/src/main/java/com/ljsd/jieling/models/{sCMapSize2.java => SCMapSize.java} (56%) delete mode 100644 serverlogic/src/main/java/com/ljsd/jieling/models/sCMap1.java delete mode 100644 serverlogic/src/main/java/com/ljsd/jieling/models/sCMap2.java delete mode 100644 serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize1.java rename serverlogic/src/main/java/com/ljsd/jieling/{logic => util}/StringUtil.java (99%) rename serverlogic/src/main/java/com/ljsd/jieling/{logic => util}/SysUtil.java (98%) diff --git a/conf/server/s_c_map2_size.txt b/conf/server/s_c_map2_size.txt deleted file mode 100644 index b98e2c523..000000000 --- a/conf/server/s_c_map2_size.txt +++ /dev/null @@ -1,3 +0,0 @@ -id length width -int int int -1 10 20 diff --git a/conf/server/s_c_map1_size.txt b/conf/server/s_c_map_size.txt similarity index 100% rename from conf/server/s_c_map1_size.txt rename to conf/server/s_c_map_size.txt diff --git a/serverlogic/src/main/java/com/ljsd/jieling/GameApplication.java b/serverlogic/src/main/java/com/ljsd/jieling/GameApplication.java index 6d0bcc256..83af519e2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/GameApplication.java @@ -1,6 +1,7 @@ package com.ljsd.jieling; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.netty.server.NettyGameServer; import com.ljsd.jieling.network.NettyProperties; import com.ljsd.jieling.network.NettyServerAutoConfiguration; @@ -34,7 +35,7 @@ public class GameApplication { public static String coreIp; public static boolean start = false; - public static void main(String[] args) throws InterruptedException { + public static void main(String[] args) throws Exception { start = true; app = new SpringApplication(GameApplication.class); app.setRegisterShutdownHook(false); @@ -52,7 +53,7 @@ public class GameApplication { for (BaseHandler handler : gameHanderMap.values()) { protocolsManager.addHandler(handler); } - + STableManager.initialize("com.ljsd.jieling.models"); final NettyServerAutoConfiguration netServerConfig = configurableApplicationContext.getBean(NettyServerAutoConfiguration.class); NettyProperties properties = netServerConfig.getNettyProperties(); try { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java index 1479cdd0e..48df7e860 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java @@ -1,6 +1,8 @@ package com.ljsd.jieling.logic; +import com.ljsd.jieling.util.StringUtil; +import com.ljsd.jieling.util.SysUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -105,7 +107,6 @@ public class STableManager { break; } lineNum++; - } } catch (Exception e) { e.printStackTrace(); @@ -114,6 +115,49 @@ public class STableManager { } + /** + * 读取配置表到内存 + */ + public static Map> getMapConfig(Class clazz) throws Exception { + Map> map = new HashMap<>(); + String tableName = clazz.getAnnotation(Table.class).name(); + for (int i = 1; i < 100; i++) { + Map mapConf = new HashMap<>(); + tableName = tableName + i; + String path = SysUtil.getPath("conf", "server", tableName + ".txt"); + File file = new File(path); + if (!file.exists()) { + break; + } + String line; + List key = new ArrayList<>(); + List type = new ArrayList<>(); + int lineNum = 0; + BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); + LOGGER.info("initMap:{}", tableName); + while ((line = bufferedReader.readLine()) != null) { + T obj = clazz.newInstance(); + String[] prarms = line.split("\\t"); + switch (lineNum) { + case 0: + prarms = StringUtil.fieldHandle(prarms); + key.addAll(Arrays.asList(prarms)); + break; + case 1: + type.addAll(Arrays.asList(prarms)); + break; + default: + dealParams(clazz, mapConf, key, type, obj, prarms); + break; + } + lineNum++; + } + map.put(i, mapConf); + tableName = tableName.substring(0, 7); + } + return map; + } + /** * 处理参数 */ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CCell.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CCell.java new file mode 100644 index 000000000..03f0dc197 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CCell.java @@ -0,0 +1,34 @@ +package com.ljsd.jieling.logic.map; + +public class CCell { + + private int coordinateX; + + private int coordinateY; + + private int eventType; + + public int getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(int coordinateX) { + this.coordinateX = coordinateX; + } + + public int getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(int coordinateY) { + this.coordinateY = coordinateY; + } + + public int getEventType() { + return eventType; + } + + public void setEventType(int eventType) { + this.eventType = eventType; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CMap.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CMap.java new file mode 100644 index 000000000..d7ed626b2 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/CMap.java @@ -0,0 +1,38 @@ +package com.ljsd.jieling.logic.map; + +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Document(collection = "c_map") +public class CMap { + + @Id + private int id; + + @Field(value = "mapInfo") + private Map mapInfo = new ConcurrentHashMap<>(); + + @Field(value = "crossMapInfos") + private Map crossMapInfos = new ConcurrentHashMap<>(); + + + public void setId(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public Map getMapInfo() { + return mapInfo; + } + + public Map getCrossMapInfos() { + return crossMapInfos; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/MapLogic.java new file mode 100644 index 000000000..fcc86398c --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/map/MapLogic.java @@ -0,0 +1,44 @@ +package com.ljsd.jieling.logic.map; + +import com.ljsd.jieling.models.SCMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Map; + +public class MapLogic { + + private static final Logger LOGGER = LoggerFactory.getLogger(MapLogic.class); + + private MapLogic(){} + /** + * 获取单例 + * + * @return + */ + public static MapLogic getInstance() { + return Instance.instance; + } + + public static class Instance { + public final static MapLogic instance = new MapLogic(); + } + + + public void initMap(int uid, int mapId) { + if (mapId == 0) { + mapId = 1; + } + Map scMap = SCMap.sCMap.get(mapId); + if (scMap == null) { + return; + } + CMap cMap = new CMap(); + cMap.setId(uid); + for (Map.Entry entry : scMap.entrySet()) { +// cMap.getMapInfo().put() + } + } + + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/models/SCMap.java b/serverlogic/src/main/java/com/ljsd/jieling/models/SCMap.java new file mode 100644 index 000000000..ee6a14786 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/models/SCMap.java @@ -0,0 +1,32 @@ +package com.ljsd.jieling.models; + + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.Map; + +@Table(name = "s_c_map") +public class SCMap implements BaseConfig { + public static Map> sCMap; + private int id; + private int event; + private int[][] groups; + + @Override + public void init() throws Exception { + sCMap = STableManager.getMapConfig(SCMap.class); + } + + public int getId() { + return id; + } + + public int getEvent() { + return event; + } + + public int[][] getGroups() { + return groups; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize2.java b/serverlogic/src/main/java/com/ljsd/jieling/models/SCMapSize.java similarity index 56% rename from serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize2.java rename to serverlogic/src/main/java/com/ljsd/jieling/models/SCMapSize.java index f84f21d71..abc7fca14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize2.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/models/SCMapSize.java @@ -7,31 +7,31 @@ import com.ljsd.jieling.logic.Table; import java.util.HashMap; import java.util.Map; -@Table(name = "s_c_map2_size") -public class sCMapSize2 implements BaseConfig { - public static Map sCMapSize1; - public static Map sCardMapSizeById; +@Table(name = "s_c_map_size") +public class SCMapSize implements BaseConfig { + public Map sCMapSize; + public Map sCardMapSizeById; private int id; private int length; private int width; @Override public void init() throws Exception { - sCMapSize1 = STableManager.getConfig(sCMapSize2.class); + sCMapSize = STableManager.getConfig(SCMapSize.class); sCardMapSizeById = new HashMap<>(); - for (Map.Entry entry : sCMapSize1.entrySet()) { + for (Map.Entry entry : sCMapSize.entrySet()) { sCardMapSizeById.put(entry.getValue().getId(), entry.getValue()); } } - + public int getId() { return id; } - public static Map getsCMapSize1() { - return sCMapSize1; + public Map getsCMapSize() { + return sCMapSize; } - public static Map getsCardMapSizeById() { + public Map getsCardMapSizeById() { return sCardMapSizeById; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap1.java b/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap1.java deleted file mode 100644 index 1ad6751c2..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap1.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ljsd.jieling.models; - - -import com.ljsd.jieling.logic.STableManager; -import com.ljsd.jieling.logic.Table; - -import java.util.HashMap; -import java.util.Map; - -@Table(name = "s_c_map1") -public class sCMap1 implements BaseConfig { - public static Map sCMap1; - public static Map sCardMapById; - private int id; - private int event; - private int[][] groups; - - @Override - public void init() throws Exception { - sCMap1 = STableManager.getConfig(sCMap1.class); - sCardMapById = new HashMap<>(); - for (Map.Entry entry : sCMap1.entrySet()) { - sCardMapById.put(entry.getValue().getId(), entry.getValue()); - } - } - - public static Map getsCMap1() { - return sCMap1; - } - - public static Map getsCardMapById() { - return sCardMapById; - } - - public int getId() { - return id; - } - - public int getEvent() { - return event; - } - - public int[][] getGroups() { - return groups; - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap2.java b/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap2.java deleted file mode 100644 index c97f735ad..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMap2.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ljsd.jieling.models; - - -import com.ljsd.jieling.logic.STableManager; -import com.ljsd.jieling.logic.Table; - -import java.util.HashMap; -import java.util.Map; - -@Table(name = "s_c_map2") -public class sCMap2 implements BaseConfig { - public static Map sCMap1; - public static Map sCardMapById; - private int id; - private int event; - private int[][] groups; - - @Override - public void init() throws Exception { - sCMap1 = STableManager.getConfig(sCMap2.class); - sCardMapById = new HashMap<>(); - for (Map.Entry entry : sCMap1.entrySet()) { - sCardMapById.put(entry.getValue().getId(), entry.getValue()); - } - } - - public static Map getsCMap1() { - return sCMap1; - } - - public static Map getsCardMapById() { - return sCardMapById; - } - - public int getId() { - return id; - } - - public int getEvent() { - return event; - } - - public int[][] getGroups() { - return groups; - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize1.java b/serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize1.java deleted file mode 100644 index 73c9c268d..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/models/sCMapSize1.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.ljsd.jieling.models; - - -import com.ljsd.jieling.logic.STableManager; -import com.ljsd.jieling.logic.Table; - -import java.util.HashMap; -import java.util.Map; - -@Table(name = "s_c_map1_size") -public class sCMapSize1 implements BaseConfig { - public static Map sCMapSize1; - public static Map sCardMapSizeById; - private int id; - private int length; - private int width; - @Override - public void init() throws Exception { - sCMapSize1 = STableManager.getConfig(sCMapSize1.class); - sCardMapSizeById = new HashMap<>(); - for (Map.Entry entry : sCMapSize1.entrySet()) { - sCardMapSizeById.put(entry.getValue().getId(), entry.getValue()); - } - } - - public int getId() { - return id; - } - - public static Map getsCMapSize1() { - return sCMapSize1; - } - - public static Map getsCardMapSizeById() { - return sCardMapSizeById; - } - - public int getLength() { - return length; - } - - public int getWidth() { - return width; - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/StringUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/StringUtil.java similarity index 99% rename from serverlogic/src/main/java/com/ljsd/jieling/logic/StringUtil.java rename to serverlogic/src/main/java/com/ljsd/jieling/util/StringUtil.java index bf06492df..54d9e1944 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/StringUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/StringUtil.java @@ -1,4 +1,4 @@ -package com.ljsd.jieling.logic; +package com.ljsd.jieling.util; import java.util.ArrayList; import java.util.List; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/SysUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/SysUtil.java similarity index 98% rename from serverlogic/src/main/java/com/ljsd/jieling/logic/SysUtil.java rename to serverlogic/src/main/java/com/ljsd/jieling/util/SysUtil.java index 33818a6fb..b90e7f88d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/SysUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/SysUtil.java @@ -1,4 +1,4 @@ -package com.ljsd.jieling.logic; +package com.ljsd.jieling.util; import java.io.File; import java.io.IOException;