diff --git a/common/src/main/java/com/ljsd/common/mogodb/LjsdMongoTemplate.java b/common/src/main/java/com/ljsd/common/mogodb/LjsdMongoTemplate.java index 86cd57a95..c3aef2227 100644 --- a/common/src/main/java/com/ljsd/common/mogodb/LjsdMongoTemplate.java +++ b/common/src/main/java/com/ljsd/common/mogodb/LjsdMongoTemplate.java @@ -88,7 +88,7 @@ public class LjsdMongoTemplate { BasicDBObject update= new BasicDBObject().append("$inc",new BasicDBObject().append(key, 1)); DBObject query = cursor.next(); DBObject result = collection.findAndModify(query, update); - return Integer.valueOf(result.get(key).toString())+1; + return Integer.parseInt(result.get(key).toString())+1; } else { searchQuery.put(key, 1); collection.insert(searchQuery); diff --git a/common/src/main/java/com/ljsd/common/mogodb/MongoRoot.java b/common/src/main/java/com/ljsd/common/mogodb/MongoRoot.java index 52e505801..bfbd7af19 100644 --- a/common/src/main/java/com/ljsd/common/mogodb/MongoRoot.java +++ b/common/src/main/java/com/ljsd/common/mogodb/MongoRoot.java @@ -23,7 +23,7 @@ public abstract class MongoRoot { } public int _getIntId() { - return Integer.valueOf(id); + return Integer.parseInt(id); } public void setId(String id) { diff --git a/common/src/main/java/com/ljsd/common/mogodb/MongoUpdateCache.java b/common/src/main/java/com/ljsd/common/mogodb/MongoUpdateCache.java index cf2c42f30..810be263b 100644 --- a/common/src/main/java/com/ljsd/common/mogodb/MongoUpdateCache.java +++ b/common/src/main/java/com/ljsd/common/mogodb/MongoUpdateCache.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Map; public class MongoUpdateCache { - class UpdateRequest { + static class UpdateRequest { MongoBase mongoBase; String fullKey; Object value; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHero.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHero.java index 9fab8500f..ae2c11da4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHero.java @@ -47,7 +47,7 @@ public class SCHero implements BaseConfig{ private Map> consumeMaterialInfoOfPositionByStar; - public class ConsumeMaterialInfo{ + public static class ConsumeMaterialInfo{ private int groupID; private int nums; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopRebuildConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopRebuildConfig.java index c7588a5e5..edfa73789 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopRebuildConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopRebuildConfig.java @@ -17,6 +17,8 @@ public class SWorkShopRebuildConfig implements BaseConfig { private int[][] secondaryCost; + private int exp; + private static Map sWorkShopRebuildConfigMap; @@ -51,5 +53,7 @@ public class SWorkShopRebuildConfig implements BaseConfig { return secondaryCost; } - + public int getExp() { + return exp; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopSetting.java index 1481f2de3..d3a53022e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SWorkShopSetting.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.config; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; +import com.ljsd.jieling.util.MathUtils; import java.util.HashMap; import java.util.Map; @@ -41,18 +42,17 @@ public class SWorkShopSetting implements BaseConfig { Map promoteMapTmp = new HashMap<>(); int maxExpTmp = 0; int maxCookExpTmp = 0; - int exp =0; for(SWorkShopSetting sWorkShopSetting : sWorkShopSettingMapTmp.values()){ - exp+=sWorkShopSetting.getExp(); + Map promoteMapTmptm = new HashMap<>(promoteMapTmp); int[] promote = sWorkShopSetting.getPromote(); if(promote!=null&&promote.length>0){ promoteMapTmp.put(promote[0],promote[1]); - sWorkShopSetting.setPromoteMap(promoteMapTmp); + promoteMapTmptm.put(promote[0],promote[1]); + sWorkShopSetting.setPromoteMap(promoteMapTmptm); } - maxExpTmp+=sWorkShopSetting.getExp(); - maxExpTmp+=sWorkShopSetting.getFoodExp(); - sWorkShopSetting.setExp(exp); + maxExpTmp = MathUtils.getMaxNum(maxExpTmp,sWorkShopSetting.getExp()); + maxCookExpTmp=MathUtils.getMaxNum(maxExpTmp,sWorkShopSetting.getFoodExp()); int[][] poolWeight = sWorkShopSetting.getPoolRate(); if(poolWeight!=null && poolWeight.length>0){ int totalWeight = 0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index b734e65d8..c58f2d11b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -716,6 +716,37 @@ public class RedisUtil { } return -1; } + // ===============================set================================= + public boolean sadd(String key,String member){ + try { + redisTemplate.opsForSet().add(key,member); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + public boolean sremove(String key,String member){ + try { + redisTemplate.opsForSet().remove(key,member); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + public int getSetLength(String key){ + try { + return redisTemplate.opsForSet().size(key).intValue(); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 6830f68a2..59ee3daaf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -62,6 +62,8 @@ public class GMRequestHandler extends BaseHandler{ Mail mail = new Mail(uid,"GM","GM",prarm1+"#"+prarm2,nowTime,30*24*60*60,"GM", Global.MAIL_TYPE_GM); cUser.getMailManager().addMail(mail); break; + default: + break; } try { MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java index 66448b300..4c67ea436 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/STableManager.java @@ -89,27 +89,28 @@ public class STableManager { LOGGER.error("file not find {}, do not find sheet with {} you need rebuild all sheet by gen sheet tool!", path, tableName); // return null; } - BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); - LOGGER.info("initMap:{}", clazz.getSimpleName()); - while ((line = bufferedReader.readLine()) != null) { - if (line.isEmpty()){ - continue; + try(BufferedReader bufferedReader = new BufferedReader(new FileReader(file))){ + LOGGER.info("initMap:{}", clazz.getSimpleName()); + while ((line = bufferedReader.readLine()) != null) { + if (line.isEmpty()){ + continue; + } + T obj = clazz.newInstance(); + String[] prarms = line.split("\\t"); + switch (lineNum) { + case 0: + prarms = StringUtil.fieldHandle(prarms); + key.addAll(Arrays.asList(prarms)); + break; + case 1: + type.addAll(Arrays.asList(prarms)); + break; + default: + dealParams(clazz, map, key, type, obj, prarms); + break; + } + lineNum++; } - T obj = clazz.newInstance(); - String[] prarms = line.split("\\t"); - switch (lineNum) { - case 0: - prarms = StringUtil.fieldHandle(prarms); - key.addAll(Arrays.asList(prarms)); - break; - case 1: - type.addAll(Arrays.asList(prarms)); - break; - default: - dealParams(clazz, map, key, type, obj, prarms); - break; - } - lineNum++; } } catch (Exception e) { e.printStackTrace(); @@ -139,27 +140,28 @@ public class STableManager { List key = new ArrayList<>(); List type = new ArrayList<>(); int lineNum = 0; - BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); - LOGGER.info("initMap:{}", tableName); - while ((line = bufferedReader.readLine()) != null) { - T obj = clazz.newInstance(); - String[] prarms = line.split("\\t"); - switch (lineNum) { - case 0: - prarms = StringUtil.fieldHandle(prarms); - key.addAll(Arrays.asList(prarms)); - break; - case 1: - type.addAll(Arrays.asList(prarms)); - break; - default: - dealParams(clazz, mapConf, key, type, obj, prarms); - break; + try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))){ + LOGGER.info("initMap:{}", tableName); + while ((line = bufferedReader.readLine()) != null) { + T obj = clazz.newInstance(); + String[] prarms = line.split("\\t"); + switch (lineNum) { + case 0: + prarms = StringUtil.fieldHandle(prarms); + key.addAll(Arrays.asList(prarms)); + break; + case 1: + type.addAll(Arrays.asList(prarms)); + break; + default: + dealParams(clazz, mapConf, key, type, obj, prarms); + break; + } + lineNum++; } - lineNum++; + map.put(i, mapConf); + tableName = tableName.substring(0, 3); } - map.put(i, mapConf); - tableName = tableName.substring(0, 3); } return map; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/chat/ChatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/chat/ChatLogic.java index eee362147..601b6e268 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/chat/ChatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/chat/ChatLogic.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.chat; import com.ljsd.jieling.config.SGameSetting; +import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.ChatProto; import com.ljsd.jieling.protocols.MessageTypeProto; @@ -28,6 +29,7 @@ public class ChatLogic { return; } //移除自己所在的频道。 + } public void sendChatInfo(ISession iSession, ChatProto.SendChatInfoRequest sendChatInfoRequest) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Equip.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Equip.java index b610cad64..ca3a4f965 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Equip.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Equip.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; import com.ljsd.jieling.config.*; +import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.util.KeyGenUtils; import com.ljsd.jieling.util.MathUtils; import com.ljsd.jieling.util.UUIDEnum; @@ -143,29 +144,46 @@ public class Equip extends MongoBase { } public void rebuildEquip(int workShopLevle){ - SWorkShopSetting sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(workShopLevle); - if( null == sWorkShopSetting ){ - return; - } - Map promoteMap = sWorkShopSetting.getPromoteMap(); SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(this.equipId); int properTyId = sEquipConfig.getPropertyMin()[0]; - Integer propertyPromote = promoteMap.get(properTyId); - int properMinNum = sEquipConfig.getPropertyMin()[1]; - int properMaxNum = sEquipConfig.getPropertyMax()[1]; - int finalProperValue = MathUtils.random(properMinNum * (100 + propertyPromote) / 100, properMaxNum* (100 + propertyPromote) / 100); - this.propertyValueByIdMap.put(properTyId,finalProperValue); + SWorkShopSetting sWorkShopSetting = SWorkShopSetting.getsWorkShopSettingByLevel(workShopLevle); + Map promoteMap = null; + SPropertyConfig sPropertyConfigFirst = SPropertyConfig.getsPropertyConfigByPID(properTyId); + if(sPropertyConfigFirst != null && sPropertyConfigFirst.getStyle() == GlobalsDef.ABSOLUTE_TYPE){ + Integer propertyPromote = null; + if( sWorkShopSetting !=null ){ + promoteMap = sWorkShopSetting.getPromoteMap(); + if(promoteMap!=null){ + propertyPromote = promoteMap.get(properTyId); + } + } + if(propertyPromote==null){ + propertyPromote =0; + } + int properMinNum = sEquipConfig.getPropertyMin()[1]; + int properMaxNum = sEquipConfig.getPropertyMax()[1]; + int finalProperValue = MathUtils.random(properMinNum * (100 + propertyPromote) / 100, properMaxNum* (100 + propertyPromote) / 100); + this.propertyValueByIdMap.put(properTyId,finalProperValue); + } List sEquipPropertyPoolList = SEquipPropertyPool.getSEquipPropertyPool(sEquipConfig.getPool()); for(SEquipPropertyPool sEquipPropertyPool : sEquipPropertyPoolList){ - Integer secondPropertyId = secondValueByIdMap.get(sEquipPropertyPool.getId()); - if(secondPropertyId == null ){ + int secondPropertyId = sEquipPropertyPool.getPropertyId(); + if(!secondValueByIdMap.containsKey(secondPropertyId)){ continue; } - Integer secondPropertyPromote = promoteMap.get(secondPropertyId); + SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(secondPropertyId); + if(sPropertyConfig == null || sPropertyConfig.getStyle() != GlobalsDef.ABSOLUTE_TYPE){ + continue; + } + Integer secondPropertyPromote =null; + if(promoteMap!=null){ + secondPropertyPromote = promoteMap.get(secondPropertyId); + } if(secondPropertyPromote == null){ - continue; + secondPropertyPromote =0; } + int value = MathUtils.random(sEquipPropertyPool.getMin() * (100 + secondPropertyPromote) / 100, sEquipPropertyPool.getMax()* (100 + secondPropertyPromote) / 100); secondValueByIdMap.put(secondPropertyId,value); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorkShopController.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorkShopController.java index cc2bf69b1..8454cdd99 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorkShopController.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorkShopController.java @@ -24,11 +24,11 @@ public class WorkShopController extends MongoBase { } public void add(int type,int openId) throws Exception { - if(openBlueStateMap.containsKey(type)){ + if(!openBlueStateMap.containsKey(type)){ openBlueStateMap.put(type,new ArrayList<>()); } openBlueStateMap.get(type).add(openId); - updateString("openBlueStateMap." + type,1); + updateString("openBlueStateMap." + type, openBlueStateMap.get(type)); } public void addWorkShopExp(int addExp) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 852eadf16..66f4046da 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -193,8 +193,9 @@ public class HeroLogic { Map> teamPosForHero = teamPosManager.getTeamPosForHero(); Map teamNames = teamPosManager.getTeamNames(); Map> teamPosForPoken = teamPosManager.getTeamPosForPoken(); - for(Integer teamId:teamPosForHero.keySet()){ - List teamPosHeroInfoList = teamPosForHero.get(teamId); + for(Map.Entry> item :teamPosForHero.entrySet()){ + int teamId = item.getKey(); + List teamPosHeroInfoList = item.getValue(); List teamPosForPokenInfos = teamPosForPoken.get(teamId); if(null == teamPosForPokenInfos){ teamPosForPokenInfos = new ArrayList<>(1); @@ -245,17 +246,6 @@ public class HeroLogic { } Set cacheHeroIds = new HashSet<>(); - Set alreadyHeroIds = new HashSet<>(); - Map> teamPosForHero = user.getTeamPosManager().getTeamPosForHero(); - for(Integer teamIdTmp : teamPosForHero.keySet()){ - if(teamIdTmp == teamId){ - continue; - } - List teamPosHeroInfoList = teamPosForHero.get(teamIdTmp); - for(TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList){ - alreadyHeroIds.add(teamPosHeroInfo.getHeroId()); - } - } for(CommonProto.TeamHeroInfo teamHeroInfo: heroIds){ String heroId = teamHeroInfo.getHeroId(); if(user.getHeroManager().getHero(heroId) == null) { @@ -266,9 +256,6 @@ public class HeroLogic { if(cacheHeroIds.contains(heroId)){ return "card repeated"; } - if(alreadyHeroIds.contains(heroId)){ - return "card repeated"; - } cacheHeroIds.add(heroId); } @@ -580,6 +567,8 @@ public class HeroLogic { case GlobalsDef.SPEED_TYPE: result = scHero.getSpeed(); break; + default: + break; } return result; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java index 2a4341208..8fa0d06c2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/WorkShopLogic.java @@ -114,10 +114,13 @@ public class WorkShopLogic { } - private void times2Array(int [][] array,int times){ - for(int[] a :array){ - a[1] =a[1]*times; + private int[][] times2Array(int [][] array,int times){ + int[][] result = new int[array.length][]; + for(int i=0;i(itemInfo,(double)increment)); } - for(String topic : map.keySet()){ - RedisUtil.getInstence().zsetAddAall(topic,map.get(topic)); + for(Map.Entry>> item : map.entrySet()){ + String topic = item.getKey(); + Set> value = item.getValue(); + RedisUtil.getInstence().zsetAddAall(topic,value); } }catch (Exception e){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 8e3dfff91..a816339a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -94,8 +94,10 @@ public class CBean2Proto { private static List parseFromMap(Map propertyValueByIdMap){ List result = new ArrayList<>(); - for(Integer propertyId:propertyValueByIdMap.keySet()){ - result.add(CommonProto.SpecialEffects.newBuilder().setPropertyId(propertyId).setPropertyValue(propertyValueByIdMap.get(propertyId)).build()); + for(Map.Entry item:propertyValueByIdMap.entrySet()){ + Integer propertyId = item.getKey(); + Integer propertyValue = item.getValue(); + result.add(CommonProto.SpecialEffects.newBuilder().setPropertyId(propertyId).setPropertyValue(propertyValue).build()); } return result; } @@ -104,8 +106,10 @@ public class CBean2Proto { public static CommonProto.PokemonInfo getPokemon(Pokemon pokemon) { Map comonpentsLevelMap = pokemon.getComonpentsLevelMap(); List pokemoncomonpentList = new ArrayList<>(); - for(Integer comonpentId : comonpentsLevelMap.keySet()){ - pokemoncomonpentList.add(CommonProto.Pokemoncomonpent.newBuilder().setId(comonpentId).setLevel(comonpentsLevelMap.get(comonpentId)).build()); + for( Map.Entry item: comonpentsLevelMap.entrySet()){ + Integer comonpentId = item.getKey(); + Integer value = item.getValue(); + pokemoncomonpentList.add(CommonProto.Pokemoncomonpent.newBuilder().setId(comonpentId).setLevel(value).build()); } return CommonProto.PokemonInfo.newBuilder() .setId(pokemon.getId()) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java index 874a47262..2e439aa60 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java @@ -112,4 +112,10 @@ public class MathUtils { return original; } + public static int getMaxNum(int a, int b) { + if(a>=b){ + return a; + } + return b; + } }