Bom como o titulo diz quero saber como coloca aquelas imagens que nem no hypix... e outros servidores '-' ... Pode ser algum plugin ou code (Preferencialmente que eu prefiro ) ou até como fazer '-', desde ja agradeço
@EDIT 2
Com o code que tenho ao reiniciar as imagens somem ... gostaria de saber se tem como pegar a data do mapa que esta sendo renderizado .... .-. (No MapInitializeEvent)
@Edit
Com um code consegui o seguinte:
Porém para os outros não carrega rapido na moldura ;-; alguém sabe resolver?
public class ImageRenderer extends MapRenderer {
// So fancy.
private SoftReference<BufferedImage> cacheImage;
private boolean hasRendered = false;
public ImageRenderer(String url) throws IOException {
this.cacheImage = new SoftReference<BufferedImage>(getImage(url));
}
@Override
public void render(MapView view, MapCanvas canvas, Player player){
if(this.hasRendered){
return;
}
if(this.cacheImage.get() != null){
canvas.drawImage(0, 0, this.cacheImage.get());
this.hasRendered = true;
}else{
player.sendMessage("Attempted to render the image, but the cached image was null!");
this.hasRendered = true;
}
}
public BufferedImage getImage(String url) throws IOException{
boolean useCache = ImageIO.getUseCache();
// Temporarily disable cache, if it isn't already,
// so we can get the latest image.
ImageIO.setUseCache(false);
BufferedImage image = resize(new URL(url), new Dimension(128,128));
// TODO find import for RenderUtils
//RenderUtils.resizeImage(image);
// Renable it with the old value.
ImageIO.setUseCache(useCache);
return image;
}
public BufferedImage resize(final URL url, final Dimension size) throws IOException{
final BufferedImage image = ImageIO.read(url);
final BufferedImage resized = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB);
final Graphics2D g = resized.createGraphics();
g.drawImage(image, 0, 0, size.width, size.height, null);
g.dispose();
return resized;
}
}
Pra renderizar demora se a pessoa não tiver o mapa na mão .-.
Pergunta
Solitario
Bom como o titulo diz quero saber como coloca aquelas imagens que nem no hypix... e outros servidores '-' ... Pode ser algum plugin ou code (Preferencialmente que eu prefiro
) ou até como fazer '-', desde ja agradeço
@EDIT 2
Com o code que tenho ao reiniciar as imagens somem ... gostaria de saber se tem como pegar a data do mapa que esta sendo renderizado .... .-. (No MapInitializeEvent)
@Edit
Com um code consegui o seguinte:
Porém para os outros não carrega rapido na moldura ;-; alguém sabe resolver?
Code:
MapView view = Bukkit.getMap(player.getItemInHand().getDurability()); Iterator<MapRenderer> iter = view.getRenderers().iterator(); while(iter.hasNext()){ view.removeRenderer(iter.next()); } try{ ImageRenderer renderer = new ImageRenderer(args[0]); view.addRenderer(renderer); player.sendMessage("Renderizando URL " + args[0] + "!"); }catch (IOException e){ player.sendMessage("A url esta correta?"); }public class ImageRenderer extends MapRenderer { // So fancy. private SoftReference<BufferedImage> cacheImage; private boolean hasRendered = false; public ImageRenderer(String url) throws IOException { this.cacheImage = new SoftReference<BufferedImage>(getImage(url)); } @Override public void render(MapView view, MapCanvas canvas, Player player){ if(this.hasRendered){ return; } if(this.cacheImage.get() != null){ canvas.drawImage(0, 0, this.cacheImage.get()); this.hasRendered = true; }else{ player.sendMessage("Attempted to render the image, but the cached image was null!"); this.hasRendered = true; } } public BufferedImage getImage(String url) throws IOException{ boolean useCache = ImageIO.getUseCache(); // Temporarily disable cache, if it isn't already, // so we can get the latest image. ImageIO.setUseCache(false); BufferedImage image = resize(new URL(url), new Dimension(128,128)); // TODO find import for RenderUtils //RenderUtils.resizeImage(image); // Renable it with the old value. ImageIO.setUseCache(useCache); return image; } public BufferedImage resize(final URL url, final Dimension size) throws IOException{ final BufferedImage image = ImageIO.read(url); final BufferedImage resized = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB); final Graphics2D g = resized.createGraphics(); g.drawImage(image, 0, 0, size.width, size.height, null); g.dispose(); return resized; } }Pra renderizar demora se a pessoa não tiver o mapa na mão .-.
Também em alguns links da isso:

Editado por SolitarioLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados