aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index 041bf104..b94fac03 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -75,6 +75,11 @@ import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
import java.awt.*;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -2433,4 +2438,39 @@ public class Utils {
.resolveToItemStack(false);
return itemStack != null;
}
+
+ public static void copyToClipboard(String str) {
+ Toolkit.getDefaultToolkit().getSystemClipboard()
+ .setContents(new StringSelection(str), null);
+ }
+
+ public static void copyToClipboard(StringSelection stringSelection, ClipboardOwner owner) {
+ Toolkit.getDefaultToolkit().getSystemClipboard()
+ .setContents(stringSelection, owner);
+ }
+
+ private static String clipboardCache = "";
+ private static long lastClipboard = -1;
+
+ public static String getClipboard() {
+ if (System.currentTimeMillis() - lastClipboard < 500) {
+ return clipboardCache;
+ }
+ lastClipboard = System.currentTimeMillis();
+ try {
+ Transferable clipboard = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
+
+ if (clipboard != null && clipboard.isDataFlavorSupported(DataFlavor.stringFlavor)) {
+ String clipboardText = (String) clipboard.getTransferData(DataFlavor.stringFlavor);
+ clipboardCache = clipboardText;
+ return clipboardText;
+ } else {
+ clipboardCache = null;
+ return null;
+ }
+ } catch (UnsupportedFlavorException | IOException | HeadlessException | IllegalStateException ignored) {
+ clipboardCache = null;
+ return null;
+ }
+ }
}