协议号映射

back_recharge
zhangshanxue 2020-04-21 16:52:22 +08:00
parent 12996dc439
commit 07fc753eed
3 changed files with 63 additions and 4 deletions

View File

@ -1,6 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Ldb > <Ldb >
<Jbean name="ItemEntity">
<Variable name="id" type="int"/>
<Variable name="uniqueid" type="long"/>
<Variable name="count" type="int"/>
<Variable name="position" type="int"/>包裹属性位置。从0开始编号
<Variable name="createTime" type="int"/>
</Jbean>
<Jbean name="BagEntity">
<Variable name="bagid" type="long"/>
<Variable name="nextId" type="int"/>
<Variable name="capacity" type="int"/>
<Variable name="itemMap" type="map" key="int" value="ItemEntity" /> 道具map
</Jbean>
<Jbean name="BagManager">背包管理器
<Variable name="bagMap" type="map" key="int" value="BagEntity" />背包map
</Jbean>
<Jbean name="PropertyItem"> <Jbean name="PropertyItem">
<Variable name="id" type="string"/> <Variable name="id" type="string"/>
<Variable name="equipId" type="int"/> <Variable name="equipId" type="int"/>

View File

@ -40,6 +40,20 @@ class JbeanFormatter {
ps.println(" public " + cls + "() {"); ps.println(" public " + cls + "() {");
ps.println(" }"); ps.println(" }");
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, " "); //MethodSetMongoKey.make(variables, ps, " ");
// getter setter // getter setter
variables.forEach(var -> MethodVarGetter.make(var, ps, " ")); variables.forEach(var -> MethodVarGetter.make(var, ps, " "));

View File

@ -35,17 +35,20 @@ import util.StringUtil;
import util.TimeUtils; import util.TimeUtils;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashMap; import java.util.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/** /**
* *
* - * -
* 11.22 sessionmanager * 11.22 sessionmanager
* *
* 4.21
* //新增协议的handler定义 协议名+Handler e.g: ModItemNumIndication -> ModItemNumIndicationHandler
* //新增协议号使用协议名定义
* //接收和发送协议的时候协议号的自动填充 不用手动写了
*
*/ */
@Component @Component
public class ProtocolsManager implements ProtocolsAbstract { public class ProtocolsManager implements ProtocolsAbstract {
@ -81,11 +84,31 @@ public class ProtocolsManager implements ProtocolsAbstract {
private void addHandler(BaseHandler handler) { private void addHandler(BaseHandler handler) {
if(null==handler.getMessageCode()){ 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; return;
} }
handler.setProtoid(handler.getMessageCode().getNumber());
handlers.put(handler.getMessageCode().getNumber(), handler); 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) { public void processMessage(PacketNetData packetNetData) {