diff options
| author | NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> | 2024-08-14 07:13:44 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-13 23:13:44 +0200 |
| commit | a5bd7d78d53b8bc10349e431a878f721f3624756 (patch) | |
| tree | 097d133f0dfde3c80ae98997187372e9f0dce05c | |
| parent | d46fd8b116831ba0f03a6d57177df5de752f96bc (diff) | |
| download | notenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.tar.gz notenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.tar.bz2 notenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.zip | |
meta: edit mode improvements (#1320)
4 files changed, 39 insertions, 3 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 402a04ce..524fa71c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -312,7 +312,7 @@ public class NEUManager { * loreWordMap. These maps are used in the searching algorithm. */ public void loadItem(String internalName) { - itemstackCache.remove(internalName); + removeItemFromCache(internalName); try { JsonObject json = getJsonFromFile(getItemFileForInternalName(internalName)); if (json == null) { @@ -1690,4 +1690,9 @@ public class NEUManager { displayNameCache.put(internalName, displayName); return displayName; } + + public void removeItemFromCache(String internalName) { + itemstackCache.remove(internalName); + displayNameCache.remove(internalName); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 1a56bf1a..5bb0965e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -40,6 +40,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.SunTzu; import io.github.moulberry.notenoughupdates.miscgui.NeuSearchCalculator; import io.github.moulberry.notenoughupdates.miscgui.itemcustomization.GuiItemCustomize; import io.github.moulberry.notenoughupdates.miscgui.pricegraph.GuiPriceGraph; +import io.github.moulberry.notenoughupdates.options.separatesections.ApiData; import io.github.moulberry.notenoughupdates.recipes.CraftingRecipe; import io.github.moulberry.notenoughupdates.util.Calculator; import io.github.moulberry.notenoughupdates.util.Constants; @@ -1156,14 +1157,23 @@ public class NEUOverlay extends Gui { Utils.pushGuiScale(-1); } if (internalname.get() != null) { + ApiData apiData = NotEnoughUpdates.INSTANCE.config.apiData; if (itemstack.get() != null) { - if (NotEnoughUpdates.INSTANCE.config.apiData.repositoryEditing && Keyboard.getEventCharacter() == 'k') { + if (apiData.repositoryEditing && Keyboard.getEventKey() == apiData.repositoryEditingKeybind) { Minecraft.getMinecraft().displayGuiScreen(new NEUItemEditor( internalname.get(), manager.getJsonForItem(itemstack.get()) )); return true; } + if (apiData.repositoryEditing && Keyboard.getEventKey() == apiData.instantEditKeybind) { + if (NEUItemEditor.saveOnly(internalname.get(), manager.getJsonForItem(itemstack.get()))) { + Utils.addChatMessage("§aSaved " + internalname.get() + " to repository."); + } else { + Utils.addChatMessage("§cFailed to save " + internalname.get() + " to repository."); + } + return true; + } } JsonObject item = manager.getItemInformation().get(internalname.get()); if (item != null) { @@ -1184,7 +1194,7 @@ public class NEUOverlay extends Gui { Minecraft.getMinecraft().thePlayer.inventory.addItemStackToInventory( manager.jsonToStack(item)); } - } else if (NotEnoughUpdates.INSTANCE.config.apiData.repositoryEditing && + } else if (apiData.repositoryEditing && keyPressed == Keyboard.KEY_K) { if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { var externalEditorCommand = NotEnoughUpdates.INSTANCE.config.hidden.externalEditor; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java index b2db6598..f25f119a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java @@ -234,6 +234,7 @@ public class NEUItemEditor extends GuiScreen { if (infoA.length == 0 || infoA[0].isEmpty()) { infoA = new String[0]; } + NotEnoughUpdates.INSTANCE.manager.removeItemFromCache(internalName.get()); return NotEnoughUpdates.INSTANCE.manager.writeItemJson( item, internalName.get(), diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/ApiData.java b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/ApiData.java index f081c231..0bfd88d4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/ApiData.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/ApiData.java @@ -24,8 +24,10 @@ import io.github.moulberry.moulconfig.annotations.ConfigAccordionId; import io.github.moulberry.moulconfig.annotations.ConfigEditorAccordion; import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; import io.github.moulberry.moulconfig.annotations.ConfigEditorText; import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; public class ApiData { @@ -111,6 +113,24 @@ public class ApiData { public boolean repositoryEditing = false; @Expose + @ConfigAccordionId(id = 0) + @ConfigOption( + name = "Edit Mode Keybind", + desc = "Keybind to open the item editor GUI" + ) + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_K) + public int repositoryEditingKeybind = Keyboard.KEY_K; + + @Expose + @ConfigAccordionId(id = 0) + @ConfigOption( + name = "Instant Edit Keybind", + desc = "Edits the item without opening the GUI" + ) + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int instantEditKeybind = Keyboard.KEY_NONE; + + @Expose @ConfigOption( name = "Lowestbin API", desc = "§4Do §lNOT §r§4change this, unless you know exactly what you are doing\n§fDefault: §amoulberry.codes" |
