aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscgui
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-07-08 23:40:46 +1000
committerGitHub <noreply@github.com>2024-07-08 15:40:46 +0200
commitd929b60c6817be79a85513635a733384567217bd (patch)
treebe5e5d3d7ddde7ddc4820e5f2eec4d8255ef75bc /src/main/java/io/github/moulberry/notenoughupdates/miscgui
parent24b755c74439ec10860402c34b83e0ec9bb90c28 (diff)
downloadnotenoughupdates-d929b60c6817be79a85513635a733384567217bd.tar.gz
notenoughupdates-d929b60c6817be79a85513635a733384567217bd.tar.bz2
notenoughupdates-d929b60c6817be79a85513635a733384567217bd.zip
meta: Add clipboard caching (#1229)
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscgui')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java23
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java32
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java3
3 files changed, 17 insertions, 41 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
index 86ea09f9..395a045f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
@@ -40,10 +40,6 @@ 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.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -524,12 +520,9 @@ public class GuiEnchantColour extends GuiScreen {
}
private boolean validShareContents() {
- try {
- String base64 = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
- return Objects.equals(TemplateUtil.getTemplatePrefix(base64), sharePrefix);
- } catch (HeadlessException | IOException | UnsupportedFlavorException | IllegalStateException e) {
- return false;
- }
+ String base64 = Utils.getClipboard();
+ if (base64 == null) return false;
+ return Objects.equals(TemplateUtil.getTemplatePrefix(base64), sharePrefix);
}
@Override
@@ -630,13 +623,9 @@ public class GuiEnchantColour extends GuiScreen {
if (mouseX > guiLeft + xSize + 3 && mouseX < guiLeft + xSize + 3 + 88) {
if (mouseY > guiTopSidebar + 2 && mouseY < guiTopSidebar + 20 + 2) {
- String base64;
- try {
- base64 = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
- } catch (HeadlessException | IOException | UnsupportedFlavorException e) {
- return;
- }
+ String base64 = Utils.getClipboard();
+ if (base64 == null) return;
JsonArray presetArray = TemplateUtil.maybeDecodeTemplate(sharePrefix, base64, JsonArray.class);
ArrayList<String> presetList = new ArrayList<>();
@@ -663,7 +652,7 @@ public class GuiEnchantColour extends GuiScreen {
}
String base64String = TemplateUtil.encodeTemplate(sharePrefix, jsonArray);
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(base64String), null);
+ Utils.copyToClipboard(base64String);
} else if (mouseY > guiTopSidebar + 2 + (24 * 2) && mouseY < guiTopSidebar + 20 + 2 + 24 * 2) {
NotEnoughUpdates.INSTANCE.config.hidden.enchantColours = NEUConfig.createDefaultEnchantColours();
}
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 2e3c7dce..e6125101 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java
@@ -45,10 +45,6 @@ import net.minecraft.util.ResourceLocation;
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;
@@ -680,19 +676,16 @@ public class GuiInvButtonEditor extends GuiScreen {
}
private boolean validShareContents() {
- try {
- String base64 = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
+ String base64 = Utils.getClipboard();
+ if (base64 == null) return false;
- if (base64.length() <= sharePrefix.length()) return false;
+ if (base64.length() <= sharePrefix.length()) return false;
- base64 = base64.trim();
+ base64 = base64.trim();
- try {
- return new String(Base64.getDecoder().decode(base64)).startsWith(sharePrefix);
- } catch (IllegalArgumentException e) {
- return false;
- }
- } catch (HeadlessException | IOException | UnsupportedFlavorException | IllegalStateException e) {
+ try {
+ return new String(Base64.getDecoder().decode(base64)).startsWith(sharePrefix);
+ } catch (IllegalArgumentException e) {
return false;
}
}
@@ -806,13 +799,8 @@ public class GuiInvButtonEditor extends GuiScreen {
if (mouseX > guiLeft - 2 - 88 - 22 && mouseX < guiLeft - 2 - 22) {
if (mouseY > guiTop + 2 && mouseY < guiTop + 22) {
- String base64;
-
- try {
- base64 = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
- } catch (HeadlessException | IOException | UnsupportedFlavorException e) {
- return;
- }
+ String base64 = Utils.getClipboard();
+ if (base64 == null) return;
if (base64.length() <= sharePrefix.length()) return;
@@ -871,7 +859,7 @@ public class GuiInvButtonEditor extends GuiScreen {
}
String base64String = Base64.getEncoder().encodeToString((sharePrefix +
jsonArray).getBytes(StandardCharsets.UTF_8));
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(base64String), null);
+ Utils.copyToClipboard(base64String);
return;
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java
index 4dcb1ec2..a7b914b6 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java
@@ -21,7 +21,6 @@ package io.github.moulberry.notenoughupdates.miscgui.minionhelper;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.auction.APIManager;
-import io.github.moulberry.notenoughupdates.core.util.MiscUtils;
import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewLine;
import io.github.moulberry.notenoughupdates.miscgui.minionhelper.requirements.MinionRequirement;
import io.github.moulberry.notenoughupdates.miscgui.minionhelper.sources.CraftingSource;
@@ -138,7 +137,7 @@ public class Minion extends OverviewLine {
String bazaarName = resource.get().getKey();
int totalAmount = resource.get().getValue();
- MiscUtils.copyToClipboard(String.valueOf(totalAmount));
+ Utils.copyToClipboard(String.valueOf(totalAmount));
ItemStack itemStack = new ItemResolutionQuery(NotEnoughUpdates.INSTANCE.manager).withKnownInternalName(
bazaarName).resolveToItemStack();
if (itemStack != null) {