aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
diff options
context:
space:
mode:
authorDoKM <mcazzyman@gmail.com>2021-08-13 13:06:47 +0200
committerDoKM <mcazzyman@gmail.com>2021-08-13 13:06:47 +0200
commit4cd0aad40adda684235ead5defa84d880a3f447d (patch)
treec0de44f73810a43a6d10f642e6e3a2a3aaddb849 /src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
parent20876c7a8a15aad04cf99c9f4214e0f8b6a462b2 (diff)
downloadnotenoughupdates-4cd0aad40adda684235ead5defa84d880a3f447d.tar.gz
notenoughupdates-4cd0aad40adda684235ead5defa84d880a3f447d.tar.bz2
notenoughupdates-4cd0aad40adda684235ead5defa84d880a3f447d.zip
Add load and save to/from clipboard for invbuttons and neuec
Clipboard should be a base64 encoded javaarray
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java84
1 files changed, 81 insertions, 3 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
index 1260dbd2..02f64f82 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
@@ -1,8 +1,6 @@
package io.github.moulberry.notenoughupdates.miscgui;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
+import com.google.gson.*;
import com.google.gson.annotations.Expose;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.core.GlScissorStack;
@@ -25,15 +23,22 @@ import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
+import java.awt.*;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.*;
+import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
+import static io.github.moulberry.notenoughupdates.miscgui.GuiEnchantColour.custom_ench_colour;
+
public class GuiInvButtonEditor extends GuiScreen {
private static final ResourceLocation INVENTORY = new ResourceLocation("minecraft:textures/gui/container/inventory.png");
@@ -284,6 +289,13 @@ public class GuiInvButtonEditor extends GuiScreen {
fontRendererObj.drawString("+", x+6, y+5, 0xffcccccc);
}
}
+ Minecraft.getMinecraft().getTextureManager().bindTexture(custom_ench_colour);
+ GlStateManager.color(1, 1, 1, 1);
+ Utils.drawTexturedRect(guiLeft-88-2-22, guiTop+2, 88, 20, 64/217f, 152/217f, 48/78f, 68/78f, GL11.GL_NEAREST);
+ Utils.drawTexturedRect(guiLeft-88-2-22, guiTop+2+24, 88, 20, 64/217f, 152/217f, 48/78f, 68/78f, GL11.GL_NEAREST);
+ Utils.drawStringCenteredScaledMaxWidth("Load preset from clipboard", fontRendererObj, guiLeft-44-2-22, guiTop+12, false, 86, 4210752);
+ Utils.drawStringCenteredScaledMaxWidth("Save preset to clipboard", fontRendererObj, guiLeft-44-2-22, guiTop+12+24, false, 86, 4210752);
+ GlStateManager.color(1, 1, 1, 1);
if(presets != null) {
Minecraft.getMinecraft().getTextureManager().bindTexture(EDITOR);
@@ -557,6 +569,72 @@ public class GuiInvButtonEditor extends GuiScreen {
}
}
+ if(mouseX > guiLeft-2-88-22 && mouseX< guiLeft-2-22) {
+ if (mouseY > guiTop + 2 && mouseY < guiTop + 22) {
+
+// String result = NotEnoughUpdates.INSTANCE.config.hidden.enchantColours.toString();
+// String base64String = Base64.getEncoder().encodeToString(result.getBytes(StandardCharsets.UTF_8));
+
+ String base64;
+
+ try {
+ base64 = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
+ } catch (HeadlessException | IOException | UnsupportedFlavorException e) {
+ return;
+ }
+ String jsonString;
+ try {
+ jsonString = new String(Base64.getDecoder().decode(base64));
+ } catch (IllegalArgumentException e) {
+ return;
+
+ }
+ JsonArray presetArray;
+ try {
+ presetArray = new JsonParser().parse(jsonString).getAsJsonArray();
+ } catch (IllegalStateException | JsonParseException e) {
+ return;
+ }
+
+
+ List<NEUConfig.InventoryButton> buttons = new ArrayList<>();
+ System.out.println(presetArray.size());
+ try {
+ for (int i = 0; i < presetArray.size(); i++) {
+
+
+ JsonElement shittyO = presetArray.get(i);
+ JsonElement lessShittyO = new JsonParser().parse(shittyO.getAsString());
+ if (lessShittyO.isJsonObject()) {
+ JsonObject o = lessShittyO.getAsJsonObject();
+ NEUConfig.InventoryButton button = NotEnoughUpdates.INSTANCE.manager.gson.fromJson(o, NEUConfig.InventoryButton.class);
+ buttons.add(button);
+ }
+
+ }
+
+ NotEnoughUpdates.INSTANCE.config.hidden.inventoryButtons = buttons;
+ return;
+ } catch(JsonParseException | ClassCastException | IllegalStateException e){
+ return;
+ }
+
+
+ } else if (mouseY > guiTop + 26 && mouseY < guiTop + 26 + 20) {
+
+ List<NEUConfig.InventoryButton> result = NotEnoughUpdates.INSTANCE.config.hidden.inventoryButtons;
+ JsonArray jsonArray = new JsonArray();
+
+ for (int i = 0; i < result.size(); i++) {
+
+ jsonArray.add(new JsonPrimitive(NotEnoughUpdates.INSTANCE.manager.gson.toJson(result.get(i), NEUConfig.InventoryButton.class)));
+ }
+ String base64String = Base64.getEncoder().encodeToString(jsonArray.toString().getBytes(StandardCharsets.UTF_8));
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(base64String), null);
+ return;
+ }
+ }
+
if(editingButton == null) {
int index = 0;
for(List<NEUConfig.InventoryButton> buttons : presets.values()) {