Ir para conteúdo
  • 0

[Bukkit code/Plugin] Como coloca imagens tipo em nos frame (Fazem que nem um muro)


Solitario

Pergunta

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 <3) 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:

 Kl6JGCn.png

 

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:

WEXBTah.png

Editado por Solitario
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

FramePicture

Não estou conseguindo usar (Versão do servidor: spigot1649 - 1.7.10 - Protocolhack 1.7.x - 1.8.x) Versão que tou usando do pl: v1.7.3  e ProtocolLib: 3.4.0

 

@edit

 

Erro:

 

 

[18:03:28] [Thread-12/INFO]: [FramePicture] Image plugins\FramePicture\images\PPJTPsP.jpg was downloaded!
[18:03:29] [Server thread/WARN]: [FramePicture] Task #18 for FramePicture v1.7.3 generated an exception
java.lang.NoSuchMethodError: net.minecraft.server.v1_7_R4.PacketPlayOutMap.<init>(I[B)V
	at de.howaner.FramePicture.util.Frame.sendMapData(Frame.java:148) ~[?:?]
	at de.howaner.FramePicture.util.Frame.sendTo(Frame.java:107) ~[?:?]
	at de.howaner.FramePicture.FrameManager.sendFrame(FrameManager.java:180) ~[?:?]
	at de.howaner.FramePicture.FrameManager.addFrame(FrameManager.java:209) ~[?:?]
	at de.howaner.FramePicture.listener.FrameListener$1.downloadSuccess(FrameListener.java:101) ~[?:?]
	at de.howaner.FramePicture.util.PictureDatabase$2$1.run(PictureDatabase.java:165) ~[?:?]
	at de.howaner.FramePicture.util.PictureDatabase$1.run(PictureDatabase.java:33) ~[?:?]
	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] 

 

 

Editado por Solitario
Link para o comentário
Compartilhar em outros sites

Não estou conseguindo usar (Versão do servidor: spigot1649 - 1.7.10 - Protocolhack 1.7.x - 1.8.x) Versão que tou usando do pl: v1.7.3  e ProtocolLib: 3.4.0

 

@edit

 

Erro:

 

 

[18:03:28] [Thread-12/INFO]: [FramePicture] Image plugins\FramePicture\images\PPJTPsP.jpg was downloaded!
[18:03:29] [Server thread/WARN]: [FramePicture] Task #18 for FramePicture v1.7.3 generated an exception
java.lang.NoSuchMethodError: net.minecraft.server.v1_7_R4.PacketPlayOutMap.<init>(I[B)V
	at de.howaner.FramePicture.util.Frame.sendMapData(Frame.java:148) ~[?:?]
	at de.howaner.FramePicture.util.Frame.sendTo(Frame.java:107) ~[?:?]
	at de.howaner.FramePicture.FrameManager.sendFrame(FrameManager.java:180) ~[?:?]
	at de.howaner.FramePicture.FrameManager.addFrame(FrameManager.java:209) ~[?:?]
	at de.howaner.FramePicture.listener.FrameListener$1.downloadSuccess(FrameListener.java:101) ~[?:?]
	at de.howaner.FramePicture.util.PictureDatabase$2$1.run(PictureDatabase.java:165) ~[?:?]
	at de.howaner.FramePicture.util.PictureDatabase$1.run(PictureDatabase.java:33) ~[?:?]
	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
	at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot1710.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] 

 

 

esse plugin n suporta 1.7.10, mas tenho uma versão aqui que suporta 1.8 vc pode tentar usa-la

http://www.mediafire.com/file/grdos9ssmld9y8n/FramePicture.jar

Link para o comentário
Compartilhar em outros sites

esse plugin n suporta 1.7.10, mas tenho uma versão aqui que suporta 1.8 vc pode tentar usa-la

http://www.mediafire.com/file/grdos9ssmld9y8n/FramePicture.jar

preciso pra 1.7.10 ;-;

 

@Edit

 

Com um code consegui o seguinte:

 Kl6JGCn.png

 

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;
    }
    
    

 
} 

 

 

 

@edit2:

Pra renderizar demora se a pessoa não tiver o mapa na mão .-.

Editado por Solitario
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...