diff options
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.java | 40 |
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; + } + } } |
