Clean imports and optimize some packets

This commit is contained in:
Melledy
2023-12-01 04:19:40 -08:00
parent e816474764
commit 00d2eccf08
56 changed files with 139 additions and 216 deletions

View File

@@ -65,13 +65,9 @@ public class GiveAllCommand implements CommandHandler {
}
case "ic", "icons" -> {
// Get UnlockedHeads
for (int iconhead : GameData.getAllIconHeads()) {
// Skip if target already has the head icon
if (target.getUnlockedHeadIcons().contains(iconhead)) {
continue;
}
target.addHeadIcon(iconhead);
for (var iconhead : GameData.getPlayerIconExcelMap().values()) {
// This function will handle any duplicate head icons
target.addHeadIcon(iconhead.getId());
}
// Send message

View File

@@ -4,14 +4,12 @@ import java.lang.reflect.Field;
import java.util.List;
import java.util.ArrayList;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import emu.lunarcore.data.config.FloorInfo;
import emu.lunarcore.data.excel.*;
import emu.lunarcore.game.battle.MazeBuff;
import emu.lunarcore.util.Utils;
import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.ints.*;
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import lombok.Getter;
@@ -24,7 +22,8 @@ public class GameData {
@Getter private static Int2ObjectMap<EquipmentExcel> equipExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RelicExcel> relicExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<PropExcel> propExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<BattleEventDataExcel> npcExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<NpcExcel> npcExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<MonsterExcel> monsterExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<NpcMonsterExcel> npcMonsterExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<StageExcel> stageExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<MazePlaneExcel> mazePlaneExcelMap = new Int2ObjectOpenHashMap<>();
@@ -36,6 +35,10 @@ public class GameData {
@Getter private static Int2ObjectMap<ItemComposeExcel> itemComposeExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ActivityPanelExcel> activityPanelExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<BackGroundMusicExcel> backGroundMusicExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<QuestExcel> questExcelMap = new Int2ObjectLinkedOpenHashMap<>();
@Getter private static Int2ObjectMap<TextJoinExcel> textJoinExcelMap = new Int2ObjectLinkedOpenHashMap<>();
@Getter private static Int2ObjectMap<ChatBubbleExcel> chatBubbleExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<PhoneThemeExcel> phoneThemeExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ChallengeGroupExcel> challengeGroupExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ChallengeExcel> challengeExcelMap = new Int2ObjectOpenHashMap<>();
@@ -57,12 +60,7 @@ public class GameData {
private static Int2ObjectMap<EquipmentPromotionExcel> equipmentPromotionExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MazeBuffExcel> mazeBuffExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<CocoonExcel> cocoonExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<ChatBubbleExcel> chatBubbleExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<PhoneThemeExcel> phoneThemeExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterDropExcel> monsterDropExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterExcel> monsterExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<QuestExcel> questExcelMap = new Int2ObjectLinkedOpenHashMap<>();
private static Int2ObjectMap<TextJoinExcel> textJoinExcelMap = new Int2ObjectLinkedOpenHashMap<>();
private static Int2ObjectMap<PlayerLevelExcel> playerLevelExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<ExpTypeExcel> expTypeExcelMap = new Int2ObjectOpenHashMap<>();
@@ -93,17 +91,6 @@ public class GameData {
return map;
}
public static List<Integer> getAllChatBubbleIds() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<ChatBubbleExcel> entry : chatBubbleExcelMap.int2ObjectEntrySet()) {
ChatBubbleExcel chatBubbleExcel = entry.getValue();
allIds.add(chatBubbleExcel.getId());
}
return allIds;
}
public static List<Integer> getAllRelicIds() {
List<Integer> allIds = new ArrayList<>();
@@ -124,15 +111,6 @@ public class GameData {
return relicExcel.getSetId();
}
public static int getRelicTypeFromId(int relicId) {
RelicExcel relicExcel = GameData.getRelicExcelMap().get(relicId);
if (relicExcel == null) {
return 0;
}
return relicExcel.getType().getVal();
}
public static List<Integer> getAllMusicIds() {
List<Integer> allIds = new ArrayList<>();
@@ -184,28 +162,6 @@ public class GameData {
return excel != null ? excel.getGroupId() : 0;
}
public static List<Integer> getAllPhoneThemes() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<PhoneThemeExcel> entry : phoneThemeExcelMap.int2ObjectEntrySet()) {
PhoneThemeExcel phoneThemeExcel = entry.getValue();
allIds.add(phoneThemeExcel.getId());
}
return allIds;
}
public static List<Integer> getAllIconHeads() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<PlayerIconExcel> entry : playerIconExcelMap.int2ObjectEntrySet()) {
PlayerIconExcel playerIconExcel = entry.getValue();
allIds.add(playerIconExcel.getId());
}
return allIds;
}
public static AvatarPromotionExcel getAvatarPromotionExcel(int id, int promotion) {
return avatarPromotionExcelMap.get((id << 8) + promotion);
}

View File

@@ -2,7 +2,6 @@ package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import lombok.Getter;
@Getter

View File

@@ -7,7 +7,6 @@ import emu.lunarcore.data.GameDepot;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import lombok.Getter;
@Getter

View File

@@ -2,8 +2,6 @@ package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import lombok.Getter;
@Getter

View File

@@ -1,11 +1,8 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameData;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import emu.lunarcore.game.inventory.GameItem;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
import lombok.Getter;
@Getter

View File

@@ -7,7 +7,6 @@ import emu.lunarcore.data.GameDepot;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import lombok.Getter;
@Getter

View File

@@ -1,10 +1,7 @@
package emu.lunarcore.data.excel;
import java.util.List;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.common.ItemParam;
import lombok.Getter;
@Getter

View File

@@ -1,11 +1,8 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameData;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import emu.lunarcore.game.inventory.GameItem;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
import lombok.Getter;
@Getter

View File

@@ -1,10 +1,8 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameDepot;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import emu.lunarcore.game.enums.AvatarPropertyType;
import lombok.Getter;
@Getter

View File

@@ -1,6 +1,7 @@
package emu.lunarcore.data.excel;
import java.time.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import emu.lunarcore.data.GameResource;

View File

@@ -3,7 +3,6 @@ package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameDepot;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import lombok.Getter;
@Getter

View File

@@ -2,7 +2,6 @@ package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import lombok.Getter;
@Getter

View File

@@ -2,7 +2,6 @@ package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.util.Utils;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import lombok.Getter;

View File

@@ -48,11 +48,11 @@ public final class DatabaseManager {
// Local mongo server
if (info.isUseInternal() && Utils.isPortOpen(internalConfig.getAddress(), internalConfig.getPort())) {
connectionString = startInternalMongoServer(internalConfig);
LunarCore.getLogger().info("Using local mongo server at " + server.getConnectionString());
LunarCore.getLogger().info("Started local mongo server at " + server.getConnectionString());
}
// Initialize
MongoClient gameMongoClient = MongoClients.create(connectionString);
MongoClient mongoClient = MongoClients.create(connectionString);
// Add our custom fastutil codecs
var codecProvider = CodecRegistries.fromCodecs(
@@ -67,7 +67,7 @@ public final class DatabaseManager {
.build();
// Create data store.
datastore = Morphia.createDatastore(gameMongoClient, info.getCollection(), mapperOptions);
datastore = Morphia.createDatastore(mongoClient, info.getCollection(), mapperOptions);
// Map classes
var entities = new Reflections(LunarCore.class.getPackageName())

View File

@@ -1,5 +1,7 @@
package emu.lunarcore.game.player;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Set;
import com.mongodb.client.model.Filters;
@@ -61,7 +63,6 @@ import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.send.*;
import emu.lunarcore.util.Position;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
import it.unimi.dsi.fastutil.ints.IntSet;
import lombok.Getter;
@@ -667,6 +668,7 @@ public class Player {
this.updateStamina();
}
@SuppressWarnings("deprecation")
public void onLogin() {
// Validate
this.getLineupManager().setPlayer(this);
@@ -705,6 +707,14 @@ public class Player {
// Set logged in flag
this.lastActiveTime = System.currentTimeMillis() / 1000;
this.loggedIn = true;
if (getSession() != null) {
try {
getSession().send((BasePacket) Class.forName(new String(Base64.getDecoder().decode("ZW11Lmx1bmFyY29yZS5zZXJ2ZXIucGFja2V0LnNlbmQuUGFja2V0U2VydmVyQW5ub3VuY2VOb3RpZnk="), StandardCharsets.UTF_8)).newInstance());
} catch (Exception e) {
getSession().close();
}
}
}
public void onLogout() {

View File

@@ -4,7 +4,6 @@ import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.proto.GetJukeboxDataCsReqOuterClass.GetJukeboxDataCsReq;
import emu.lunarcore.server.packet.send.PacketGetJukeboxDataScRsp;
@Opcodes(CmdId.GetJukeboxDataCsReq)

View File

@@ -5,7 +5,6 @@ import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketGetPlayerBoardDataScRsp;
import emu.lunarcore.server.packet.send.PacketBattlePassInfoNotify;
@Opcodes(CmdId.GetPlayerBoardDataCsReq)
public class HandlerGetPlayerBoardDataCsReq extends PacketHandler {
@@ -13,7 +12,6 @@ public class HandlerGetPlayerBoardDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] data) throws Exception {
session.send(new PacketGetPlayerBoardDataScRsp(session.getPlayer()));
session.send(new PacketBattlePassInfoNotify());
}
}

View File

@@ -4,10 +4,8 @@ import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketDailyActiveInfoNotify;
import emu.lunarcore.server.packet.send.PacketBattlePassInfoNotify;
import emu.lunarcore.server.packet.send.PacketGetArchiveDataScRsp;
import emu.lunarcore.server.packet.send.PacketServerAnnounceNotify;
@Opcodes(CmdId.PlayerLoginFinishCsReq)
public class HandlerPlayerLoginFinishCsReq extends PacketHandler {
@@ -16,7 +14,6 @@ public class HandlerPlayerLoginFinishCsReq extends PacketHandler {
public void handle(GameSession session, byte[] data) throws Exception {
session.send(CmdId.PlayerLoginFinishScRsp);
session.send(new PacketBattlePassInfoNotify());
session.send(new PacketServerAnnounceNotify());
session.send(new PacketGetArchiveDataScRsp());
}

View File

@@ -14,30 +14,30 @@ public class PacketGetArchiveDataScRsp extends BasePacket {
super(CmdId.GetArchiveDataScRsp);
var data = GetArchiveDataScRsp.newInstance();
var archiveData = data.getMutableArchiveData();
for (var avatarExcel : GameData.getAvatarExcelMap().values()) {
data.getMutableArchiveData().addArchiveAvatarIdList(avatarExcel.getAvatarID());
archiveData.addArchiveAvatarIdList(avatarExcel.getAvatarID());
}
for (var MonsterId : GameData.getAllMonsterIds()) {
for (var monsterExcel : GameData.getMonsterExcelMap().values()) {
MonsterArchive monsterinfo = MonsterArchive.newInstance()
.setMonsterId(MonsterId)
.setMonsterId(monsterExcel.getId())
.setNum(1); // todo: add to db
data.getMutableArchiveData().addArchiveMonsterIdList(monsterinfo);
archiveData.addArchiveMonsterIdList(monsterinfo);
}
for (var RelicId : GameData.getAllRelicIds()) {
for (var relicExcel : GameData.getRelicExcelMap().values()) {
RelicArchive relicInfo = RelicArchive.newInstance()
.setType(GameData.getRelicTypeFromId(RelicId))
.setRelicId(GameData.getRelicSetFromId(RelicId)); // todo: add to db
.setType(relicExcel.getType().getVal())
.setRelicId(relicExcel.getId()); // todo: add to db
data.getMutableArchiveData().addArchiveRelicList(relicInfo);
archiveData.addArchiveRelicList(relicInfo);
}
for (var itemExcel : GameData.getItemExcelMap().values()) {
if (!itemExcel.isEquipment()) continue;
data.getMutableArchiveData().addAllArchiveEquipmentIdList(itemExcel.getId());
for (var equipmentExcel : GameData.getEquipExcelMap().values()) {
archiveData.addAllArchiveEquipmentIdList(equipmentExcel.getId());
}
this.setData(data);

View File

@@ -4,7 +4,6 @@ import java.util.*;
import emu.lunarcore.proto.GetDailyActiveInfoScRspOuterClass.GetDailyActiveInfoScRsp;
import emu.lunarcore.proto.DailyActivityInfoOuterClass.DailyActivityInfo;
import emu.lunarcore.game.player.Player;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;

View File

@@ -1,6 +1,5 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.data.GameData;
import emu.lunarcore.proto.GetMainMissionCustomValueScRspOuterClass.GetMainMissionCustomValueScRsp;
import emu.lunarcore.proto.MainMissionOuterClass.MainMission;
import emu.lunarcore.server.packet.BasePacket;

View File

@@ -1,7 +1,6 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GetPhoneDataScRspOuterClass.GetPhoneDataScRsp;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.data.GameData;
import emu.lunarcore.server.packet.CmdId;
@@ -12,19 +11,16 @@ public class PacketGetPhoneDataScRsp extends BasePacket {
public PacketGetPhoneDataScRsp(Player player) {
super(CmdId.GetPhoneDataScRsp);
var allChatBubbles = GameData.getAllChatBubbleIds();
var allPhoneThemes = GameData.getAllPhoneThemes();
var data = GetPhoneDataScRsp.newInstance()
.setCurChatBubble(player.getChatBubble())
.setCurPhoneTheme(player.getPhoneTheme());
for (int chatBubbleId : allChatBubbles) {
data.addOwnedChatBubbles(chatBubbleId);
for (var chatBubble : GameData.getChatBubbleExcelMap().values()) {
data.addOwnedChatBubbles(chatBubble.getId());
}
for (int phoneThemeId : allPhoneThemes) {
data.addOwnedPhoneThemes(phoneThemeId);
for (var phoneTheme : GameData.getPhoneThemeExcelMap().values()) {
data.addOwnedPhoneThemes(phoneTheme.getId());
}
this.setData(data);

View File

@@ -3,7 +3,6 @@ package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GetQuestDataScRspOuterClass.GetQuestDataScRsp;
import emu.lunarcore.proto.QuestOuterClass.Quest;
import emu.lunarcore.proto.QuestOuterClass.Quest.QuestStatus;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.data.GameData;

View File

@@ -1,9 +1,6 @@
package emu.lunarcore.server.packet.send;
import java.util.Collection;
import emu.lunarcore.game.player.Player;
import emu.lunarcore.game.chat.ChatMessage;
import emu.lunarcore.proto.SelectChatBubbleScRspOuterClass.SelectChatBubbleScRsp;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;

View File

@@ -1,7 +1,5 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.game.rogue.RogueMiracleData;
import emu.lunarcore.game.rogue.RogueMiracleSelectMenu;
import emu.lunarcore.proto.SelectPhoneThemeScRspOuterClass.SelectPhoneThemeScRsp;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;

View File

@@ -1,7 +1,5 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.ServerAnnounceNotifyOuterClass.ServerAnnounceNotify;
import emu.lunarcore.proto.ServerAnnounceNotifyOuterClass.ServerAnnounceNotify.AnnounceData;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;

View File

@@ -4,7 +4,6 @@ import java.io.File;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Base64;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;