diff --git a/jieling-dbgen/Ldb.xml b/jieling-dbgen/Ldb.xml index 55f7d7e8a..1fc7dbd91 100644 --- a/jieling-dbgen/Ldb.xml +++ b/jieling-dbgen/Ldb.xml @@ -1,6 +1,28 @@ + + + + + 包裹属性,位置。从0开始编号 + + + + + + + + 道具map + + + + + 背包管理器 + 背包map + + + diff --git a/jieling-dbgen/src/main/java/com/dbgen/JbeanFormatter.java b/jieling-dbgen/src/main/java/com/dbgen/JbeanFormatter.java index d5ef15593..c716b10c8 100644 --- a/jieling-dbgen/src/main/java/com/dbgen/JbeanFormatter.java +++ b/jieling-dbgen/src/main/java/com/dbgen/JbeanFormatter.java @@ -40,6 +40,20 @@ class JbeanFormatter { ps.println(" public " + cls + "() {"); ps.println(" }"); ps.println(); + + ps.println(); + ps.println(" public " + cls + "(" + cls + " _o_ ) {"); + variables.forEach(var -> VarDeepCopy.make(var, ps, " ")); + ps.println(" }"); + ps.println(); + + +// +// ps.println(" public void copyFrom(" + cls + " _o_) {"); +// variables.forEach(var -> VarCopyFrom.make(var, ps, " ")); +// ps.println(" }"); +// ps.println(); + //MethodSetMongoKey.make(variables, ps, " "); // getter setter variables.forEach(var -> MethodVarGetter.make(var, ps, " ")); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index 902c347b5..b942b0d0c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -35,17 +35,20 @@ import util.StringUtil; import util.TimeUtils; import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; /** * * 消息类型-消息处理 管理 * 11.22 之前部分功能拆分至sessionmanager * + * 4.21 + * //新增协议的handler定义 协议名+Handler e.g: ModItemNumIndication -> ModItemNumIndicationHandler + * //新增协议号使用协议名定义 + * //接收和发送协议的时候协议号的自动填充 不用手动写了 + * */ @Component public class ProtocolsManager implements ProtocolsAbstract { @@ -81,11 +84,31 @@ public class ProtocolsManager implements ProtocolsAbstract { private void addHandler(BaseHandler handler) { if(null==handler.getMessageCode()){ + String simpleName = handler.getClass().getSimpleName(); + int index = simpleName.indexOf("Handler"); + if(index != -1) + { + simpleName = simpleName.substring(0, index); + int number = getProtoIdBySimpleName(simpleName); + handler.setProtoid(number); + handlers.put(number, handler); + } return; } + handler.setProtoid(handler.getMessageCode().getNumber()); handlers.put(handler.getMessageCode().getNumber(), handler); } + public static int getProtoIdBySimpleName(String name){ + try { + MessageTypeProto.MessageType messageType = MessageTypeProto.MessageType.valueOf(name); + return messageType.getNumber(); + }catch (IllegalArgumentException e){ + return 0; + } + + + } public void processMessage(PacketNetData packetNetData) {