9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-30 20:39:10 +00:00

feat(core): 添加进度

This commit is contained in:
jhqwqmc
2025-04-21 17:11:21 +08:00
parent bd96f73b5a
commit 8699a196d6
11 changed files with 112 additions and 4 deletions

View File

@@ -0,0 +1,58 @@
package net.momirealms.craftengine.bukkit.advancement;
import com.google.gson.JsonElement;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
import net.momirealms.craftengine.core.advancement.AbstractAdvancementManager;
import net.momirealms.craftengine.core.pack.LoadingSequence;
import net.momirealms.craftengine.core.pack.Pack;
import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser;
import net.momirealms.craftengine.core.plugin.locale.TranslationManager;
import net.momirealms.craftengine.core.util.GsonHelper;
import net.momirealms.craftengine.core.util.Key;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
public class BukkitAdvancementManager extends AbstractAdvancementManager {
private final BukkitCraftEngine plugin;
private final AdvancementParser advancementParser;
private final Map<Key, JsonElement> advancements = new HashMap<>();
public BukkitAdvancementManager(BukkitCraftEngine plugin) {
super(plugin);
this.plugin = plugin;
this.advancementParser = new AdvancementParser();
}
@Override
public ConfigSectionParser parser() {
return this.advancementParser;
}
public class AdvancementParser implements ConfigSectionParser {
public static final String[] CONFIG_SECTION_NAME = new String[] {"advancements", "advancement"};
@Override
public String[] sectionId() {
return CONFIG_SECTION_NAME;
}
@Override
public int loadingSequence() {
return LoadingSequence.ADVANCEMENT;
}
@Override
public void parseSection(Pack pack, Path path, Key id, Map<String, Object> section) {
if (advancements.containsKey(id)) {
TranslationManager.instance().log("warning.config.advancement.duplicated", path.toString(), id.toString());
return;
}
JsonElement jsonTree = GsonHelper.get().toJsonTree(section);
FastNMS.INSTANCE.registerAdvancement(id.decompose(), jsonTree);
advancements.put(id, jsonTree);
}
}
}

View File

@@ -1,6 +1,7 @@
package net.momirealms.craftengine.bukkit.plugin;
import net.momirealms.antigrieflib.AntiGriefLib;
import net.momirealms.craftengine.bukkit.advancement.BukkitAdvancementManager;
import net.momirealms.craftengine.bukkit.api.event.CraftEngineReloadEvent;
import net.momirealms.craftengine.bukkit.block.BukkitBlockManager;
import net.momirealms.craftengine.bukkit.block.behavior.BukkitBlockBehaviors;
@@ -156,6 +157,7 @@ public class BukkitCraftEngine extends CraftEngine {
super.soundManager = new BukkitSoundManager(this);
super.vanillaLootManager = new BukkitVanillaLootManager(this);
super.fontManager = new BukkitFontManager(this);
super.advancementManager = new BukkitAdvancementManager(this);
super.onPluginEnable();
// compatibility
// register expansion
@@ -245,6 +247,11 @@ public class BukkitCraftEngine extends CraftEngine {
return (BukkitBlockManager) blockManager;
}
@Override
public BukkitAdvancementManager advancementManager() {
return (BukkitAdvancementManager) advancementManager;
}
@Override
public BukkitFurnitureManager furnitureManager() {
return (BukkitFurnitureManager) furnitureManager;