From f1cdd8b392691682263d54c1be5aadd601d3a53f Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 29 Sep 2023 21:18:18 -0700 Subject: [PATCH] Add a basic `/giveall` command --- .../lunarcore/commands/PlayerCommands.java | 32 +++++++++++++++++++ .../emu/lunarcore/data/excel/ItemExcel.java | 1 + .../lunarcore/game/inventory/Inventory.java | 13 +++++--- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/main/java/emu/lunarcore/commands/PlayerCommands.java b/src/main/java/emu/lunarcore/commands/PlayerCommands.java index fbf7164..ee6c24c 100644 --- a/src/main/java/emu/lunarcore/commands/PlayerCommands.java +++ b/src/main/java/emu/lunarcore/commands/PlayerCommands.java @@ -10,6 +10,8 @@ import emu.lunarcore.data.excel.ItemExcel; import emu.lunarcore.data.excel.NpcMonsterExcel; import emu.lunarcore.data.excel.StageExcel; import emu.lunarcore.game.inventory.GameItem; +import emu.lunarcore.game.inventory.ItemMainType; +import emu.lunarcore.game.inventory.ItemSubType; import emu.lunarcore.game.player.Player; import emu.lunarcore.game.scene.entity.EntityMonster; import emu.lunarcore.util.Position; @@ -151,6 +153,36 @@ public class PlayerCommands { player.dropMessage("Set world level to " + level); } } + + @Command(aliases = {"ga"}, desc = "/giveall {materials|avatars}") + public static class GiveAll extends PlayerCommand { + @Override + public void execute(Player player, String raw) { + switch (raw) { + case "materials": + // Character/Relic/Lightcone upgrade materials + for (ItemExcel excel : GameData.getItemExcelMap().values()) { + int purpose = excel.getPurposeType(); + if (purpose >= 1 && purpose <= 7) { + player.getInventory().addItem(excel, 1000); + } + } + // Credits + player.getInventory().addItem(2, 10_000_000); + break; + case "avatars": + // All avatars and their eidolons + for (ItemExcel excel : GameData.getItemExcelMap().values()) { + if (excel.getItemMainType() == ItemMainType.AvatarCard) { + player.getInventory().addItem(excel, 1); + } else if (excel.getItemSubType() == ItemSubType.Eidolon) { + player.getInventory().addItem(excel, 6); + } + } + break; + } + } + } /* Temporarily disabled as spawned monsters need @Command(desc = "/spawn [monster id] [count] - Creates {count} amount of {item id}") diff --git a/src/main/java/emu/lunarcore/data/excel/ItemExcel.java b/src/main/java/emu/lunarcore/data/excel/ItemExcel.java index c2efa7a..cb5c507 100644 --- a/src/main/java/emu/lunarcore/data/excel/ItemExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/ItemExcel.java @@ -22,6 +22,7 @@ public class ItemExcel extends GameResource { private ItemSubType ItemSubType; private ItemRarity Rarity; private int PileLimit; + private int PurposeType; private List ReturnItemIDList; diff --git a/src/main/java/emu/lunarcore/game/inventory/Inventory.java b/src/main/java/emu/lunarcore/game/inventory/Inventory.java index 67a5099..4dbf52a 100644 --- a/src/main/java/emu/lunarcore/game/inventory/Inventory.java +++ b/src/main/java/emu/lunarcore/game/inventory/Inventory.java @@ -84,14 +84,17 @@ public class Inventory extends BasePlayerManager { } public boolean addItem(int itemId, int count) { - ItemExcel excel = GameData.getItemExcelMap().get(itemId); + ItemExcel itemExcel = GameData.getItemExcelMap().get(itemId); - if (excel == null) { + if (itemExcel == null) { return false; } - - GameItem item = new GameItem(excel, count); - + + return addItem(itemExcel, count); + } + + public boolean addItem(ItemExcel itemExcel, int count) { + GameItem item = new GameItem(itemExcel, count); return addItem(item); }