aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-08-14 07:13:44 +1000
committerGitHub <noreply@github.com>2024-08-13 23:13:44 +0200
commita5bd7d78d53b8bc10349e431a878f721f3624756 (patch)
tree097d133f0dfde3c80ae98997187372e9f0dce05c
parentd46fd8b116831ba0f03a6d57177df5de752f96bc (diff)
downloadnotenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.tar.gz
notenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.tar.bz2
notenoughupdates-a5bd7d78d53b8bc10349e431a878f721f3624756.zip
meta: edit mode improvements (#1320)
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java7
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java14
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java1
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/ApiData.java20
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"