diff --git a/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java b/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java index 1a0baa4..40c8209 100644 --- a/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java +++ b/src/main/java/emu/nebula/game/infinitytower/InfinityTowerManager.java @@ -20,7 +20,7 @@ public class InfinityTowerManager extends PlayerManager { } public int getBountyLevel() { - return 1; + return 0; } public boolean apply(int levelId, long buildId) { diff --git a/src/main/java/emu/nebula/server/handlers/HandlerInfinityTowerInfoReq.java b/src/main/java/emu/nebula/server/handlers/HandlerInfinityTowerInfoReq.java index 1699ea1..2706655 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerInfinityTowerInfoReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerInfinityTowerInfoReq.java @@ -5,12 +5,8 @@ import emu.nebula.net.NetMsgId; import emu.nebula.proto.InfinityTowerInfo.InfinityTowerInfoResp; import emu.nebula.proto.Public.InfinityTowerLevelInfo; import emu.nebula.net.HandlerId; -import emu.nebula.Nebula; -import emu.nebula.data.GameData; import emu.nebula.net.GameSession; -import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; - @HandlerId(NetMsgId.infinity_tower_info_req) public class HandlerInfinityTowerInfoReq extends NetHandler { @@ -18,38 +14,15 @@ public class HandlerInfinityTowerInfoReq extends NetHandler { public byte[] handle(GameSession session, byte[] message) throws Exception { // Build response var rsp = InfinityTowerInfoResp.newInstance() - .setBountyLevel(0); + .setBountyLevel(session.getPlayer().getInfinityTowerManager().getBountyLevel()); - // Add unlocked levels - if (Nebula.getConfig().getServerOptions().unlockInstances) { - // Force unlock every level - var levels = new Int2ObjectOpenHashMap(); + // Get infinite arena log from player progress + for (var entry : session.getPlayer().getProgress().getInfinityArenaLog().int2IntEntrySet()) { + var info = InfinityTowerLevelInfo.newInstance() + .setId(entry.getIntKey()) + .setLevelId(entry.getIntValue()); - for (var data : GameData.getInfinityTowerLevelDataTable()) { - int id = (int) Math.floor(data.getId() / 10000D); - - var info = levels.computeIfAbsent( - id, - diff -> InfinityTowerLevelInfo.newInstance().setId(id) - ); - - if (data.getId() > info.getLevelId()) { - info.setLevelId(data.getId()); - } - } - - for (var info : levels.values()) { - rsp.addInfos(info); - } - } else { - // Get infinite arena log from player progress - for (var entry : session.getPlayer().getProgress().getInfinityArenaLog().int2IntEntrySet()) { - var info = InfinityTowerLevelInfo.newInstance() - .setId(entry.getIntKey()) - .setLevelId(entry.getIntValue()); - - rsp.addInfos(info); - } + rsp.addInfos(info); } // Encode and send