diff --git a/conf/lua-hotfix.json b/conf/lua-hotfix.json new file mode 100644 index 000000000..71830fc25 --- /dev/null +++ b/conf/lua-hotfix.json @@ -0,0 +1,3 @@ +{ + "version":100 +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CheckFight.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CheckFight.java index 04e660b20..6a2026fd4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CheckFight.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CheckFight.java @@ -1,18 +1,21 @@ package com.ljsd.jieling.logic.fight; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.hero.HeroLogic; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaTable; import org.luaj.vm2.LuaValue; import org.luaj.vm2.lib.jse.JsePlatform; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.IOException; -import java.util.logging.Logger; +import java.io.*; public class CheckFight { - private static final Logger LOGGER = Logger.getLogger("CheckFightLog"); + private static final Logger LOGGER = LoggerFactory.getLogger(CheckFight.class); private LuaValue transCoderObj; @@ -28,17 +31,41 @@ public class CheckFight { return CheckFight.Instance.instance; } + private int hotFixVersion = 0; + + static class LuaHotFixBean{ + private int version; + + public int getVersion() { + return version; + } + } + + + public void luaHotFix(){ + LuaHotFixBean luaHotFixBean = STableManager.getJsonFilePathInJsonConf("lua-hotfix.json", LuaHotFixBean.class); + if(luaHotFixBean!=null && hotFixVersion < luaHotFixBean.getVersion()){ + LOGGER.info("the curhotFixVersion={},the new hotFixVersion={} will hotifx ",hotFixVersion,luaHotFixBean.getVersion()); + init("luafight/BattleMain.lua"); + LOGGER.info("the luahotfix done"); + hotFixVersion = luaHotFixBean.getVersion(); + } + } public void init(String path){ String luaFileName = null; try { luaFileName = getPath(path); -// System.out.println("lua path : "+luaFileName); } catch (IOException e) { e.printStackTrace(); } Globals globals = JsePlatform.debugGlobals(); transCoderObj = globals.loadfile(luaFileName).call(); + LuaHotFixBean luaHotFixBean = STableManager.getJsonFilePathInJsonConf("lua-hotfix.json", LuaHotFixBean.class); + if(luaHotFixBean!=null){ + hotFixVersion = luaHotFixBean.getVersion(); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 4e5b0ff7d..012d16e00 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -13,6 +13,7 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.arena.ArenaLogic; +import com.ljsd.jieling.logic.fight.CheckFight; import com.ljsd.jieling.logic.fight.CombatLogic; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,6 +43,7 @@ public class MinuteTask extends Thread { everyFiveTask(); everyMondyFiveClockTask(); fiveMinuteOnlineSend(); + CheckFight.getInstance().luaHotFix(); LOGGER.info("MinuteTask end..."); } catch (Exception e) { LOGGER.error("e",e);