- 48
- 2
- 3
Пишу мод, который позволит отправлять картинки в чат майнкрафта (с головой у меня проблем нет). Работает так: копируешь картинку в буфер (ctrl c) вставляешь в чат (ctrl v), жмешь enter. Поначалу получал хеадлес ехептион, потом вписал System.setProperty("java.awt.headless", "false"); в конструктор главного класса мода, все заработало. Скинул другу, чтобы тот протестил, у него хеадлес ехептион даже с System.setProperty("java.awt.headless", "false");. Пробовали -Djava.awt.headless=false в аргументы VM в лаунчере. Пробовали JAVA_OPTS в системных переменных. Пробовал пихать System.setProperty("java.awt.headless", "false") в FMLInitEvent, в начало метода copyTo
Ему не помогло, мне помогло. Я еще думаю над тем, достойно ли общество таких продвинутых технологий (стоит ли выкладывать мод в открытый доступ), но если эти технологии будут выдавать headlessException у каждого второго юзера, то стоит ли их вообще выкладывать? В общем, заранее спасибо за ответы, если таковые будут
copyTo method (паста с инета):
public static String copyTo(String filename) {
try {
Transferable content = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
if (content == null) {
System.err.println("error: nothing found in clipboard");
return "";
}
if (!content.isDataFlavorSupported(DataFlavor.imageFlavor)) {
System.err.println("error: no image found in clipbaord");
return "";
}
BufferedImage img = (BufferedImage) content.getTransferData(DataFlavor.imageFlavor);
String ext = ext(filename);
if (ext == null) {
ext = "png";
filename += "." + ext;
}
File outfile = new File(ChatPhoto.pathToDir + filename);
ImageIO.write(img, ext, outfile);
//System.err.println("image copied to: " + outfile.getAbsolutePath());
mc.player.sendMessage(new StringTextComponent("§aФотография создана: " + outfile.getPath()), mc.player.getUniqueID());
// System.out.println(outfile.getAbsolutePath());
return outfile.getAbsolutePath();
} catch (Exception ex) {
ex.printStackTrace();
mc.player.sendMessage(new StringTextComponent("§cОшибка чтения фотографии из буфера"), mc.player.getUniqueID());
return "";
}
}
- Краш-лог
-
java.awt.HeadlessException
at java.desktop/sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:216)
Краш-лог:
java.awt.HeadlessException
at java.desktop/sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:216)