Workaround Spout custom block URL-that-are-temp-filename insanity

This commit is contained in:
Mike Primm 2012-01-26 17:12:49 -06:00
parent aae09c54db
commit a1e27a63ed

View File

@ -41,11 +41,33 @@ public class SpoutPluginBlocks {
File imgfile = new File(f, blkid + ".png"); File imgfile = new File(f, blkid + ".png");
BufferedImage img = null; BufferedImage img = null;
boolean urlloaded = false; boolean urlloaded = false;
String txname = bd.getTexureURL();
try { try {
URL url = new URL(bd.getTexureURL()); URL url = new URL(txname);
img = ImageIO.read(url); /* Load skin for player */ img = ImageIO.read(url); /* Load skin for player */
urlloaded = true; urlloaded = true;
} catch (IOException iox) { } catch (IOException iox) {
if(txname.startsWith("http") == false) { /* Not URL - try file */
File tf = new File(txname);
if(tf.exists() == false) {
/* Horrible hack - try to find temp file (some SpoutMaterials versions) */
try {
File tmpf = File.createTempFile("dynmap", "test");
tf = new File(tmpf.getParent(), txname);
tmpf.delete();
} catch (IOException iox2) {}
}
if(tf.exists()) {
try {
img = ImageIO.read(tf);
urlloaded = true;
} catch (IOException iox3) {
}
}
}
if(img == null) {
Log.severe("Error loading texture for custom block '" + blkid + "' (" + b.getCustomId() + ") from " + bd.getTexureURL() + "(" + iox.getMessage() + ")"); Log.severe("Error loading texture for custom block '" + blkid + "' (" + b.getCustomId() + ") from " + bd.getTexureURL() + "(" + iox.getMessage() + ")");
if(imgfile.exists()) { if(imgfile.exists()) {
try { try {
@ -56,6 +78,7 @@ public class SpoutPluginBlocks {
} }
} }
} }
}
if(img != null) { if(img != null) {
try { try {
if(urlloaded) if(urlloaded)