diff --git a/src/main/java/emu/lunarcore/command/commands/GiveAllCommand.java b/src/main/java/emu/lunarcore/command/commands/GiveAllCommand.java index 6f6d0e3..6783c65 100644 --- a/src/main/java/emu/lunarcore/command/commands/GiveAllCommand.java +++ b/src/main/java/emu/lunarcore/command/commands/GiveAllCommand.java @@ -5,6 +5,7 @@ import java.util.List; import emu.lunarcore.command.Command; import emu.lunarcore.command.CommandArgs; +import java.util.stream.Collectors; import emu.lunarcore.command.CommandHandler; import emu.lunarcore.data.GameData; import emu.lunarcore.data.excel.ItemExcel; @@ -69,6 +70,20 @@ public class GiveAllCommand implements CommandHandler { // Send message this.sendMessage(sender, "Giving " + target.getName() + " " + items.size() + " light cones"); } + 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); + } + + // Send message + this.sendMessage(sender, "Added all icons to " + target.getName()); + } case "r", "relics" -> { // Get relics List items = GameData.getItemExcelMap().values() diff --git a/src/main/java/emu/lunarcore/data/GameData.java b/src/main/java/emu/lunarcore/data/GameData.java index f4b2fe5..0b8b270 100644 --- a/src/main/java/emu/lunarcore/data/GameData.java +++ b/src/main/java/emu/lunarcore/data/GameData.java @@ -31,6 +31,7 @@ public class GameData { @Getter private static Int2ObjectMap heroExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap shopExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap rewardExcelMap = new Int2ObjectOpenHashMap<>(); + @Getter private static Int2ObjectMap playerIconExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap itemComposeExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap activityPanelExcelMap = new Int2ObjectOpenHashMap<>(); @@ -107,6 +108,17 @@ public class GameData { return allIds; } + public static List getAllIconHeads() { + List allIds = new ArrayList<>(); + + for (Int2ObjectMap.Entry 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); } diff --git a/src/main/java/emu/lunarcore/data/excel/ItemExcel.java b/src/main/java/emu/lunarcore/data/excel/ItemExcel.java index 110e424..fb4b00a 100644 --- a/src/main/java/emu/lunarcore/data/excel/ItemExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/ItemExcel.java @@ -44,6 +44,10 @@ public class ItemExcel extends GameResource { return ItemMainType == emu.lunarcore.game.enums.ItemMainType.Equipment && this.getEquipmentExcel() != null; } + public boolean isHeadIcon() { + return ItemSubType == emu.lunarcore.game.enums.ItemSubType.HeadIcon; + } + public boolean isRelic() { return ItemMainType == emu.lunarcore.game.enums.ItemMainType.Relic && this.getRelicExcel() != null; } diff --git a/src/main/java/emu/lunarcore/data/excel/PlayerIconExcel.java b/src/main/java/emu/lunarcore/data/excel/PlayerIconExcel.java new file mode 100644 index 0000000..f04fc50 --- /dev/null +++ b/src/main/java/emu/lunarcore/data/excel/PlayerIconExcel.java @@ -0,0 +1,17 @@ +package emu.lunarcore.data.excel; + +import emu.lunarcore.data.GameResource; +import emu.lunarcore.data.ResourceType; +import emu.lunarcore.data.ResourceType.LoadPriority; +import lombok.Getter; + +@Getter +@ResourceType(name = {"PlayerIcon.json"}, loadPriority = LoadPriority.NORMAL) +public class PlayerIconExcel extends GameResource { + private int ID; + + @Override + public int getId() { + return ID; + } +}