协议号映射
parent
12996dc439
commit
07fc753eed
|
@ -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"/>
|
||||||
|
|
|
@ -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, " "));
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue