Merge branch 'develop-textures' into develop
# Conflicts: # .idea/modules.xml # src/main/java/eu/mhsl/minecraft/pixelpics/Main.java # src/main/java/eu/mhsl/minecraft/pixelpics/render/raytrace/AdvancedRaytracer.java # src/main/java/eu/mhsl/minecraft/pixelpics/render/raytrace/DefaultRaytracer.java # src/main/java/eu/mhsl/minecraft/pixelpics/render/registry/AdvancedModelRegistry.java # src/main/resources/plugin.yml
This commit is contained in:
@@ -1,11 +1,22 @@
|
||||
package eu.mhsl.minecraft.pixelpics;
|
||||
package eu.mhsl.minecraft.pixelpic;
|
||||
|
||||
import eu.mhsl.minecraft.pixelpics.commands.PixelPicsCommand;
|
||||
import eu.mhsl.minecraft.pixelpics.render.render.DefaultScreenRenderer;
|
||||
import eu.mhsl.minecraft.pixelpics.render.render.Renderer;
|
||||
import eu.mhsl.minecraft.pixelpic.commands.PixelPicCommand;
|
||||
import eu.mhsl.minecraft.pixelpic.render.render.DefaultScreenRenderer;
|
||||
import eu.mhsl.minecraft.pixelpic.render.render.Renderer;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.Enumeration;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
public final class Main extends JavaPlugin {
|
||||
private static Main instance;
|
||||
private Renderer screenRenderer;
|
||||
@@ -13,68 +24,78 @@ public final class Main extends JavaPlugin {
|
||||
@Override
|
||||
public void onEnable() {
|
||||
instance = this;
|
||||
Bukkit.getPluginCommand("pixelPics").setExecutor(new PixelPicsCommand());
|
||||
//
|
||||
// Bukkit.getPluginCommand("test2").setExecutor((sender, command, label, args) -> {
|
||||
// if(!(sender instanceof Player player)) return false;
|
||||
// Bukkit.broadcast(Component.text("HI"));
|
||||
//
|
||||
// Resolution.Pixels pixels = Resolution.Pixels._256P;
|
||||
// Resolution.AspectRatio aspectRatio = Resolution.AspectRatio._1_1;
|
||||
// Resolution resolution = new Resolution(pixels, aspectRatio);
|
||||
// BufferedImage image = screenRenderer.render((Player) sender, resolution);
|
||||
// Bukkit.broadcast(Component.text(image.toString()));
|
||||
//
|
||||
// File file = new File(getDataFolder(), "Bild" + ".png");
|
||||
// try {
|
||||
// getDataFolder().mkdir();
|
||||
// ImageIO.write(image, "png", file);
|
||||
// } catch (Exception e) {
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// ItemStack map = new ItemStack(Material.FILLED_MAP, 1);
|
||||
// MapMeta meta = (MapMeta) map.getItemMeta();
|
||||
// MapView mapView = Bukkit.createMap(Bukkit.getWorlds().getFirst());
|
||||
// mapView.addRenderer(new ImageMapRenderer(image, 0, 0));
|
||||
// meta.setMapView(mapView);
|
||||
// map.setItemMeta(meta);
|
||||
// player.getInventory().addItem(map);
|
||||
//
|
||||
// ItemStack map2 = new ItemStack(Material.FILLED_MAP, 1);
|
||||
// MapMeta meta1 = (MapMeta) map2.getItemMeta();
|
||||
// MapView mapView4 = Bukkit.createMap(Bukkit.getWorlds().getFirst());
|
||||
// mapView4.addRenderer(new ImageMapRenderer(image, 1, 0));
|
||||
// meta1.setMapView(mapView4);
|
||||
// map2.setItemMeta(meta1);
|
||||
// player.getInventory().addItem(map2);
|
||||
//
|
||||
// ItemStack map3 = new ItemStack(Material.FILLED_MAP, 1);
|
||||
// MapMeta meta2 = (MapMeta) map3.getItemMeta();
|
||||
// MapView mapView3 = Bukkit.createMap(Bukkit.getWorlds().getFirst());
|
||||
// mapView3.addRenderer(new ImageMapRenderer(image, 0, 1));
|
||||
// meta2.setMapView(mapView3);
|
||||
// map3.setItemMeta(meta2);
|
||||
// player.getInventory().addItem(map3);
|
||||
//
|
||||
// ItemStack map4 = new ItemStack(Material.FILLED_MAP, 1);
|
||||
// MapMeta meta3 = (MapMeta) map4.getItemMeta();
|
||||
// MapView mapView2 = Bukkit.createMap(Bukkit.getWorlds().getFirst());
|
||||
// mapView2.addRenderer(new ImageMapRenderer(image, 1, 1));
|
||||
// meta3.setMapView(mapView2);
|
||||
// map4.setItemMeta(meta3);
|
||||
// player.getInventory().addItem(map4);
|
||||
//
|
||||
// player.updateInventory();
|
||||
//
|
||||
// return true;
|
||||
// });
|
||||
extractJsonResources();
|
||||
|
||||
Bukkit.getPluginCommand("pixelPic").setExecutor(new PixelPicCommand());
|
||||
|
||||
Bukkit.getPluginCommand("test").setExecutor((sender, command, label, args) -> {
|
||||
Material.getMaterial("acacia_button");
|
||||
Bukkit.broadcast(Component.text(Material.STONE.getBlockTranslationKey().replace("block.minecraft.", "")));
|
||||
|
||||
if(!(sender instanceof Player player))
|
||||
throw new IllegalStateException("Dieser Command kann nur von einem Spieler ausgeführt werden!");
|
||||
|
||||
File blockDir = new File(getDataFolder(), "models/block");
|
||||
for (File file : blockDir.listFiles()) {
|
||||
String blockName = file.getName().substring(0, file.getName().lastIndexOf('.'));
|
||||
Material material = Material.getMaterial(blockName.toUpperCase());
|
||||
System.out.println(material);
|
||||
if(material == null) {
|
||||
System.out.println(blockName);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
}
|
||||
|
||||
public void extractJsonResources() {
|
||||
String resourcePath = "models/block/"; // Pfad im JAR
|
||||
File outputDir = new File(getDataFolder(), resourcePath);
|
||||
if (outputDir.exists()) return;
|
||||
outputDir.mkdirs();
|
||||
|
||||
try {
|
||||
URL jarUrl = getClass().getProtectionDomain().getCodeSource().getLocation();
|
||||
File jarFile = new File(jarUrl.toURI());
|
||||
|
||||
try (JarFile jar = new JarFile(jarFile)) {
|
||||
Enumeration<JarEntry> entries = jar.entries();
|
||||
|
||||
while (entries.hasMoreElements()) {
|
||||
JarEntry entry = entries.nextElement();
|
||||
String entryName = entry.getName();
|
||||
|
||||
// Nur JSON-Dateien im gewünschten Ordner
|
||||
if (entryName.startsWith(resourcePath) && entryName.endsWith(".json")) {
|
||||
InputStream in = getResource(entryName);
|
||||
if (in == null) continue;
|
||||
|
||||
File outFile = new File(getDataFolder(), entryName);
|
||||
outFile.getParentFile().mkdirs(); // Ordnerstruktur sicherstellen
|
||||
|
||||
try (OutputStream out = new FileOutputStream(outFile)) {
|
||||
byte[] buffer = new byte[1024];
|
||||
int len;
|
||||
while ((len = in.read(buffer)) != -1) {
|
||||
out.write(buffer, 0, len);
|
||||
}
|
||||
System.out.println("Extrahiert: " + entryName);
|
||||
}
|
||||
|
||||
in.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException | URISyntaxException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Renderer getScreenRenderer() {
|
||||
if(this.screenRenderer == null) this.screenRenderer = new DefaultScreenRenderer();
|
||||
return this.screenRenderer;
|
||||
|
||||
Reference in New Issue
Block a user