cleanup
This commit is contained in:
1 parent
bf7e52138d
commit
3f0814639d
5 files changed
+68
-41
No files matched your search
@@ -1,6 +1,6 @@
|
||||
package eu.mhsl.minecraft.pixelpics.commands;
|
||||
|
||||
import eu.mhsl.minecraft.pixelpics.ImageMapRenderer;
|
||||
import eu.mhsl.minecraft.pixelpics.utils.ImageMapRenderer;
|
||||
import eu.mhsl.minecraft.pixelpics.Main;
|
||||
import eu.mhsl.minecraft.pixelpics.render.render.Resolution;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -12,11 +12,14 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.MapMeta;
|
||||
import org.bukkit.map.MapView;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PixelPicsCommand implements CommandExecutor {
|
||||
@Override
|
||||
@@ -24,33 +27,38 @@ public class PixelPicsCommand implements CommandExecutor {
|
||||
if(!(sender instanceof Player player))
|
||||
throw new IllegalStateException("Dieser Command kann nur von einem Spieler ausgeführt werden!");
|
||||
|
||||
Resolution.Pixels pixels = Resolution.Pixels._128P;
|
||||
Resolution.AspectRatio aspectRatio = Resolution.AspectRatio._1_1;
|
||||
Resolution resolution = new Resolution(pixels, aspectRatio);
|
||||
if(args.length > 0)
|
||||
return false;
|
||||
|
||||
BufferedImage image = Main.getInstance().getScreenRenderer().render(player, resolution);
|
||||
// render image
|
||||
Resolution resolution = new Resolution(Resolution.Pixels._128P, Resolution.AspectRatio._1_1);
|
||||
BufferedImage image = Main.getInstance().getScreenRenderer().render(player.getEyeLocation(), resolution);
|
||||
|
||||
File file = new File(Main.getInstance().getDataFolder(), "Bild" + ".png");
|
||||
// save image
|
||||
UUID imageId = UUID.randomUUID();
|
||||
File imageFolder = new File(Main.getInstance().getDataFolder(), "images");
|
||||
try {
|
||||
Main.getInstance().getDataFolder().mkdir();
|
||||
ImageIO.write(image, "png", file);
|
||||
} catch (Exception e) {
|
||||
return true;
|
||||
if(!imageFolder.exists() && !imageFolder.mkdirs())
|
||||
throw new IOException("Failed to create folders for image output!");
|
||||
|
||||
ImageIO.write(image, "png", new File(imageFolder, String.format("%s.png", imageId)));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Failed to save image to disk!");
|
||||
}
|
||||
|
||||
// image item
|
||||
ItemStack map = new ItemStack(Material.FILLED_MAP, 1);
|
||||
MapMeta meta = (MapMeta) map.getItemMeta();
|
||||
meta.getPersistentDataContainer().set(Main.getInstance().pictureIdFlag, PersistentDataType.STRING, imageId.toString());
|
||||
|
||||
// display image
|
||||
MapView mapView = Bukkit.createMap(Bukkit.getWorlds().getFirst());
|
||||
mapView.getRenderers().forEach(mapView::removeRenderer);
|
||||
mapView.addRenderer(new ImageMapRenderer(image));
|
||||
|
||||
meta.setMapView(mapView);
|
||||
|
||||
map.setItemMeta(meta);
|
||||
|
||||
player.getInventory().addItem(map);
|
||||
player.updateInventory();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user