mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2026-01-04 15:41:38 +00:00
Refactor events
This commit is contained in:
@@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.font.Font;
|
||||
import net.momirealms.craftengine.core.pack.generator.ModelGeneration;
|
||||
import net.momirealms.craftengine.core.pack.generator.ModelGenerator;
|
||||
import net.momirealms.craftengine.core.pack.model.ItemModel;
|
||||
import net.momirealms.craftengine.core.platform.Platform;
|
||||
import net.momirealms.craftengine.core.plugin.CraftEngine;
|
||||
import net.momirealms.craftengine.core.plugin.PluginProperties;
|
||||
import net.momirealms.craftengine.core.plugin.config.ConfigManager;
|
||||
@@ -29,6 +28,7 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
import static net.momirealms.craftengine.core.util.MiscUtils.castToMap;
|
||||
|
||||
@@ -36,14 +36,14 @@ public class PackManagerImpl implements PackManager {
|
||||
private static final String LEGACY_TEMPLATES = PluginProperties.getValue("legacy-templates").replace(".", "_");
|
||||
private static final String LATEST_TEMPLATES = PluginProperties.getValue("latest-templates").replace(".", "_");
|
||||
private final CraftEngine plugin;
|
||||
private final Platform platform;
|
||||
private final BiConsumer<Path, Path> eventDispatcher;
|
||||
private final Map<String, Pack> loadedPacks = new HashMap<>();
|
||||
private final Map<String, ConfigSectionParser> sectionParsers = new HashMap<>();
|
||||
private final TreeMap<ConfigSectionParser, List<CachedConfig>> cachedConfigs = new TreeMap<>();
|
||||
|
||||
public PackManagerImpl(CraftEngine plugin, Platform platform) {
|
||||
public PackManagerImpl(CraftEngine plugin, BiConsumer<Path, Path> eventDispatcher) {
|
||||
this.plugin = plugin;
|
||||
this.platform = platform;
|
||||
this.eventDispatcher = eventDispatcher;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -234,17 +234,17 @@ public class PackManagerImpl implements PackManager {
|
||||
|
||||
@Override
|
||||
public void generateResourcePack() {
|
||||
plugin.logger().info("Generating resource pack...");
|
||||
this.plugin.logger().info("Generating resource pack...");
|
||||
long start = System.currentTimeMillis();
|
||||
// get the target location
|
||||
Path generatedPackPath = plugin.dataFolderPath()
|
||||
Path generatedPackPath = this.plugin.dataFolderPath()
|
||||
.resolve("generated")
|
||||
.resolve("resource_pack");
|
||||
|
||||
try {
|
||||
org.apache.commons.io.FileUtils.deleteDirectory(generatedPackPath.toFile());
|
||||
} catch (IOException e) {
|
||||
plugin.logger().severe("Error deleting previous resource pack", e);
|
||||
this.plugin.logger().severe("Error deleting previous resource pack", e);
|
||||
}
|
||||
|
||||
// firstly merge existing folders
|
||||
@@ -252,35 +252,35 @@ public class PackManagerImpl implements PackManager {
|
||||
List<Path> duplicated = FileUtils.mergeFolder(loadedPacks().stream().map(Pack::resourcePackFolder).toList(), generatedPackPath);
|
||||
if (!duplicated.isEmpty()) {
|
||||
for (Path path : duplicated) {
|
||||
plugin.logger().warn("Duplicated files - " + path.toAbsolutePath());
|
||||
this.plugin.logger().warn("Duplicated files - " + path.toAbsolutePath());
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
plugin.logger().severe("Error merging resource pack", e);
|
||||
this.plugin.logger().severe("Error merging resource pack", e);
|
||||
}
|
||||
|
||||
this.generateFonts(generatedPackPath);
|
||||
this.generateLegacyItemOverrides(generatedPackPath);
|
||||
this.generateModernItemOverrides(generatedPackPath);
|
||||
this.generateBlockOverrides(generatedPackPath);
|
||||
this.generateItemModels(generatedPackPath, plugin.itemManager());
|
||||
this.generateItemModels(generatedPackPath, plugin.blockManager());
|
||||
this.generateItemModels(generatedPackPath, this.plugin.itemManager());
|
||||
this.generateItemModels(generatedPackPath, this.plugin.blockManager());
|
||||
this.generateSounds(generatedPackPath);
|
||||
|
||||
Path zipFile = plugin.dataFolderPath()
|
||||
Path zipFile = this.plugin.dataFolderPath()
|
||||
.resolve("generated")
|
||||
.resolve("resource_pack.zip");
|
||||
|
||||
try {
|
||||
ZipUtils.zipDirectory(generatedPackPath, zipFile);
|
||||
} catch (IOException e) {
|
||||
plugin.logger().severe("Error zipping resource pack", e);
|
||||
this.plugin.logger().severe("Error zipping resource pack", e);
|
||||
}
|
||||
|
||||
long end = System.currentTimeMillis();
|
||||
plugin.logger().info("Finished generating resource pack in " + (end - start) + "ms");
|
||||
this.plugin.logger().info("Finished generating resource pack in " + (end - start) + "ms");
|
||||
|
||||
platform.asyncGenerateResourcePackEvent(generatedPackPath, zipFile);
|
||||
this.eventDispatcher.accept(generatedPackPath, zipFile);
|
||||
}
|
||||
|
||||
private void generateSounds(Path generatedPackPath) {
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
package net.momirealms.craftengine.core.platform;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
public interface Platform {
|
||||
|
||||
void asyncGenerateResourcePackEvent(Path generatedPackPath, Path zipFile);
|
||||
}
|
||||
@@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.item.ItemManager;
|
||||
import net.momirealms.craftengine.core.item.recipe.RecipeManager;
|
||||
import net.momirealms.craftengine.core.pack.PackManager;
|
||||
import net.momirealms.craftengine.core.pack.PackManagerImpl;
|
||||
import net.momirealms.craftengine.core.platform.Platform;
|
||||
import net.momirealms.craftengine.core.plugin.classpath.ClassPathAppender;
|
||||
import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager;
|
||||
import net.momirealms.craftengine.core.plugin.command.sender.SenderFactory;
|
||||
@@ -35,7 +34,6 @@ public abstract class CraftEngine implements Plugin {
|
||||
public static final String MOD_CLASS = "net.momirealms.craftengine.mod.CraftEnginePlugin";
|
||||
public static final String NAMESPACE = "craftengine";
|
||||
private static CraftEngine instance;
|
||||
protected Platform platform;
|
||||
protected DependencyManager dependencyManager;
|
||||
protected SchedulerAdapter<?> scheduler;
|
||||
protected NetworkManager networkManager;
|
||||
@@ -101,7 +99,6 @@ public abstract class CraftEngine implements Plugin {
|
||||
@Override
|
||||
public void enable() {
|
||||
this.networkManager.enable();
|
||||
this.packManager = new PackManagerImpl(this, this.platform);
|
||||
this.fontManager = new FontManagerImpl(this);
|
||||
this.templateManager = new TemplateManagerImpl(this);
|
||||
this.commandManager.registerDefaultFeatures();
|
||||
|
||||
Reference in New Issue
Block a user