fix equip
parent
83aac51969
commit
a204fe82b1
|
@ -0,0 +1,24 @@
|
||||||
|
package com.ljsd.jieling.kefu;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
|
import com.ljsd.jieling.logic.dao.Equip;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Cmd_fixEquip extends GmAbstract{
|
||||||
|
@Override
|
||||||
|
public boolean exec(String[] args) throws Exception {
|
||||||
|
List<User> userList = MongoUtil.getInstence().getMyMongoTemplate().findAll(User.getCollectionName(), User.class);
|
||||||
|
userList.forEach(user -> {
|
||||||
|
user.getEquipManager().getEquipMap().values().forEach(equip -> equip.setHeroId(""));
|
||||||
|
Map<String, Equip> equipMap = user.getEquipManager().getEquipMap();
|
||||||
|
user.getHeroManager().getHeroMap().values().forEach(hero -> {
|
||||||
|
Map<Integer, String> equipByPositionMap = hero.getEquipByPositionMap();
|
||||||
|
equipByPositionMap.values().forEach(equipId -> equipMap.get(equipId).setHeroId(hero.getId()));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -835,11 +835,9 @@ public class GuildLogic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MailLogic.getInstance().sendMail(uid,title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
|
MailLogic.getInstance().sendMail(uid,title,content,"",(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME);
|
||||||
ISession session = OnlineUserManager.getSessionByUid(uid);
|
Family.FamilyPositionUpdateIndication build = Family.FamilyPositionUpdateIndication.newBuilder().setPosition(position).setUid(uid).build();
|
||||||
if(session!=null){
|
User userInMem = UserManager.getUserInMem(uid);
|
||||||
Family.FamilyPositionUpdateIndication build = Family.FamilyPositionUpdateIndication.newBuilder().setPostiion(position).build();
|
sendIndicationToMember(GuilidManager.guildInfoMap.get(userInMem.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_POSITION_UPDATE_INDICAITON,build);
|
||||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.FAMILY_POSITION_UPDATE_INDICAITON_VALUE,build,true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendFamilyBaseUpdateIndication(GuildInfo guildInfo){
|
public static void sendFamilyBaseUpdateIndication(GuildInfo guildInfo){
|
||||||
|
|
|
@ -1414,7 +1414,7 @@ public class HeroLogic{
|
||||||
if( null == equip || null == hero ){
|
if( null == equip || null == hero ){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!StringUtil.isEmpty(equip.getHeroId())){
|
if(!StringUtil.isEmpty(equip.getHeroId()) && !equip.getHeroId().equals(hero.getId())){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int equipIdTid = equip.getEquipId();
|
int equipIdTid = equip.getEquipId();
|
||||||
|
@ -1443,11 +1443,18 @@ public class HeroLogic{
|
||||||
Hero hero = user.getHeroManager().getHeroMap().get(heroId);
|
Hero hero = user.getHeroManager().getHeroMap().get(heroId);
|
||||||
if(type==1){
|
if(type==1){
|
||||||
Map<Integer,String> equipInfoTmp = new HashMap<>(6);
|
Map<Integer,String> equipInfoTmp = new HashMap<>(6);
|
||||||
|
EquipManager equipManager = user.getEquipManager();
|
||||||
if(!checkEquipForWear(hero,user.getEquipManager(),equipIds,equipInfoTmp)){
|
if(!checkEquipForWear(hero,user.getEquipManager(),equipIds,equipInfoTmp)){
|
||||||
throw new ErrorCodeException(ErrorCode.HERO_EQUIP_ERR);
|
throw new ErrorCodeException(ErrorCode.HERO_EQUIP_ERR);
|
||||||
}
|
}
|
||||||
|
hero.getEquipByPositionMap().forEach((Integer position,String equipId) -> {
|
||||||
|
if(equipInfoTmp.containsKey(position) && !equipId.equals(equipInfoTmp.get(position))){
|
||||||
|
equipManager.getEquipMap().get(equipId).setHeroId("");
|
||||||
|
}
|
||||||
|
});
|
||||||
hero.updateMutliEquipPositionMap(equipInfoTmp);
|
hero.updateMutliEquipPositionMap(equipInfoTmp);
|
||||||
user.getUserMissionManager().onGameEvent(user,GameEvent.WEAR_EQUIP,equipInfoTmp.size());
|
user.getUserMissionManager().onGameEvent(user,GameEvent.WEAR_EQUIP,equipInfoTmp.size());
|
||||||
|
equipIds.forEach(equipId->equipManager.getEquipMap().get(equipId).setHeroId(heroId));
|
||||||
}else if(type ==2){
|
}else if(type ==2){
|
||||||
if(equipIds.size()!=1){
|
if(equipIds.size()!=1){
|
||||||
throw new ErrorCodeException(ErrorCode.HERO_OPT_ONE);
|
throw new ErrorCodeException(ErrorCode.HERO_OPT_ONE);
|
||||||
|
@ -1611,9 +1618,10 @@ public class HeroLogic{
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
}
|
}
|
||||||
List<Integer> positions = new ArrayList<>();
|
List<Integer> positions = new ArrayList<>();
|
||||||
|
Map<String, Equip> equipMap = user.getEquipManager().getEquipMap();
|
||||||
for(String equipId : equipIds){
|
for(String equipId : equipIds){
|
||||||
Equip equip = user.getEquipManager().getEquipMap().get(equipId);
|
Equip equip = equipMap.get(equipId);
|
||||||
if(null == equip || !StringUtil.isEmpty(equip.getHeroId())){
|
if(null == equip || StringUtil.isEmpty(equip.getHeroId())){
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
}
|
}
|
||||||
int equipIdTid = equip.getEquipId();
|
int equipIdTid = equip.getEquipId();
|
||||||
|
@ -1621,6 +1629,7 @@ public class HeroLogic{
|
||||||
int position = sEquipConfig.getPosition();
|
int position = sEquipConfig.getPosition();
|
||||||
positions.add(position);
|
positions.add(position);
|
||||||
}
|
}
|
||||||
|
equipIds.forEach(equidId->equipMap.get(equidId).setHeroId(""));
|
||||||
|
|
||||||
for(Integer position : positions){
|
for(Integer position : positions){
|
||||||
hero.removeEquip(position);
|
hero.removeEquip(position);
|
||||||
|
|
|
@ -28,6 +28,7 @@ import config.*;
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import util.StringUtil;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -463,6 +464,9 @@ public class WorkShopLogic {
|
||||||
costResult = false;
|
costResult = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if(!StringUtil.isEmpty(consumeEquip.getHeroId())){
|
||||||
|
return "祭品已经被穿戴";
|
||||||
|
}
|
||||||
SEquipConfig consumeSEquipConfig = STableManager.getConfig(SEquipConfig.class).get(consumeEquip.getEquipId());
|
SEquipConfig consumeSEquipConfig = STableManager.getConfig(SEquipConfig.class).get(consumeEquip.getEquipId());
|
||||||
if(consumeSEquipConfig.getQuality()!=mainCostQuality[0]){
|
if(consumeSEquipConfig.getQuality()!=mainCostQuality[0]){
|
||||||
costResult = false;
|
costResult = false;
|
||||||
|
|
Loading…
Reference in New Issue