装备锁定解锁

back_recharge
lvxinran 2019-07-25 17:46:09 +08:00
parent 00f9935ef8
commit 4b96a91122
4 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,23 @@
package com.ljsd.jieling.handler;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import org.springframework.stereotype.Component;
@Component
public class EquipLockHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.EQUIP_LOCK_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
PlayerInfoProto.LockEquip equipInfo = PlayerInfoProto.LockEquip.parseFrom(bytes);
ItemLogic.getInstance().equipLock(iSession,equipInfo.getType(),equipInfo.getIdList(), MessageTypeProto.MessageType.EQUIP_LOCK_RESPONSE);
}
}

View File

@ -35,6 +35,8 @@ public class Equip extends MongoBase implements Cloneable{
private int skill;
private int isLocked;
public Equip() {
this.setRootCollection(User._COLLECTION_NAME);
}
@ -345,4 +347,13 @@ public class Equip extends MongoBase implements Cloneable{
public int getSkill() {
return skill;
}
public int getIsLocked() {
return isLocked;
}
public void updateIsLocked(int isLocked) {
updateString("isLocked",isLocked);
this.isLocked = isLocked;
}
}

View File

@ -313,4 +313,29 @@ public class ItemLogic {
builder.addAllItemInfo(itemInfos);
MessageUtil.sendMessage(iSession,1, msgId,builder.build(),true);
}
public void equipLock(ISession session, int type, List<String> equips, MessageTypeProto.MessageType messageType) throws Exception{
EquipManager equipManager = UserManager.getUser(session.getUid()).getEquipManager();
//锁定
if(type==1){
for (String equipId:equips) {
if(equipManager.getEquipMap().get(equipId).getIsLocked()!=0){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"所选装备有的已上锁!");
return;
}
equipManager.getEquipMap().get(equipId).updateIsLocked(1);
}
}
//解锁
if(type==2){
for (String equipId:equips) {
if(equipManager.getEquipMap().get(equipId).getIsLocked()!=1){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"所选装备有的未上锁!");
return;
}
equipManager.getEquipMap().get(equipId).updateIsLocked(0);
}
}
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
}

View File

@ -113,6 +113,7 @@ public class CBean2Proto {
.setRebuildLevel(equip.getRebuildLevel())
.setCreateTime(equip.getCreateTime())
.setSkillId(equip.getSkill())
.setIsLocked(equip.getIsLocked())
.build();
return equipProto;
}