From 730ce99fe4ac1fc1f175a48d28b2f5919418ec14 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Wed, 18 Jun 2025 17:57:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmap=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0debug=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/command/BukkitCommandManager.java | 10 ++- .../default/configuration/palm_tree.yml | 20 ++++-- .../default/configuration/templates.yml | 3 + .../block/custom/palm_door_bottom.png | Bin 0 -> 395 bytes .../textures/block/custom/palm_door_top.png | Bin 0 -> 382 bytes .../textures/block/custom/palm_trapdoor.png | Bin 0 -> 412 bytes .../core/pack/AbstractPackManager.java | 6 ++ .../command/parser/BlockStateParser.java | 64 ------------------ .../config/template/TemplateArguments.java | 2 +- .../config/template/TemplateManager.java | 2 +- 10 files changed, 31 insertions(+), 76 deletions(-) create mode 100644 common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_door_bottom.png create mode 100644 common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_door_top.png create mode 100644 common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_trapdoor.png delete mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/command/parser/BlockStateParser.java diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java index 87288628b..591499729 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.plugin.command.feature.*; import net.momirealms.craftengine.core.plugin.command.AbstractCommandManager; import net.momirealms.craftengine.core.plugin.command.CommandFeature; -import net.momirealms.craftengine.core.plugin.command.parser.BlockStateParser; import net.momirealms.craftengine.core.plugin.command.sender.Sender; import org.bukkit.command.CommandSender; import org.incendo.cloud.SenderMapper; @@ -18,7 +17,7 @@ import java.util.List; public class BukkitCommandManager extends AbstractCommandManager { private final BukkitCraftEngine plugin; - private final Index> INDEX; + private final Index> index; public BukkitCommandManager(BukkitCraftEngine plugin) { super(plugin, new LegacyPaperCommandManager<>( @@ -27,7 +26,7 @@ public class BukkitCommandManager extends AbstractCommandManager SenderMapper.identity() )); this.plugin = plugin; - this.INDEX = Index.create(CommandFeature::getFeatureID, List.of( + this.index = Index.create(CommandFeature::getFeatureID, List.of( new ReloadCommand(this, plugin), new GetItemCommand(this, plugin), new GiveItemCommand(this, plugin), @@ -59,7 +58,6 @@ public class BukkitCommandManager extends AbstractCommandManager )); final LegacyPaperCommandManager manager = (LegacyPaperCommandManager) getCommandManager(); manager.settings().set(ManagerSetting.ALLOW_UNSAFE_REGISTRATION, true); - manager.parserRegistry().registerParser(BlockStateParser.blockStateParser()); if (manager.hasCapability(CloudBukkitCapabilities.NATIVE_BRIGADIER)) { manager.registerBrigadier(); manager.brigadierManager().setNativeNumberSuggestions(true); @@ -70,11 +68,11 @@ public class BukkitCommandManager extends AbstractCommandManager @Override protected Sender wrapSender(CommandSender sender) { - return plugin.senderFactory().wrap(sender); + return this.plugin.senderFactory().wrap(sender); } @Override public Index> features() { - return INDEX; + return this.index; } } diff --git a/common-files/src/main/resources/resources/default/configuration/palm_tree.yml b/common-files/src/main/resources/resources/default/configuration/palm_tree.yml index eda2e9c33..a191bc56d 100644 --- a/common-files/src/main/resources/resources/default/configuration/palm_tree.yml +++ b/common-files/src/main/resources/resources/default/configuration/palm_tree.yml @@ -293,7 +293,7 @@ items: type: "minecraft:model" path: "minecraft:item/custom/palm_trapdoor" generation: - parent: "minecraft:block/custom/palm_trapdoor" + parent: "minecraft:block/custom/palm_trapdoor_bottom" behavior: type: block_item block: @@ -319,9 +319,21 @@ items: template: "default:block_state/trapdoor" arguments: base_block: acacia_trapdoor - model_bottom_path: "minecraft:block/birch_trapdoor_bottom" - model_open_path: "minecraft:block/birch_trapdoor_open" - model_top_path: "minecraft:block/birch_trapdoor_top" + model_bottom_path: "minecraft:block/custom/palm_trapdoor_bottom" + model_bottom_generation: + parent: "minecraft:block/template_orientable_trapdoor_bottom" + textures: + texture: "minecraft:block/custom/palm_trapdoor" + model_open_path: "minecraft:block/custom/palm_trapdoor_open" + model_open_generation: + parent: "minecraft:block/template_orientable_trapdoor_open" + textures: + texture: "minecraft:block/custom/palm_trapdoor" + model_top_path: "minecraft:block/custom/palm_trapdoor_top" + model_top_generation: + parent: "minecraft:block/template_orientable_trapdoor_top" + textures: + texture: "minecraft:block/custom/palm_trapdoor" recipes: default:palm_planks: diff --git a/common-files/src/main/resources/resources/default/configuration/templates.yml b/common-files/src/main/resources/resources/default/configuration/templates.yml index b1b09a658..0df24c5bf 100644 --- a/common-files/src/main/resources/resources/default/configuration/templates.yml +++ b/common-files/src/main/resources/resources/default/configuration/templates.yml @@ -984,16 +984,19 @@ templates#block_states: model: path: ${model_bottom_path} y: 90 + generation: ${model_bottom_generation} facing=east,half=bottom,open=true,waterlogged=false: state: "${base_block}[facing=east,half=bottom,open=true,powered=true,waterlogged=false]" model: path: ${model_open_path} y: 90 + generation: ${model_open_generation} facing=east,half=top,open=false,waterlogged=false: state: "${base_block}[facing=east,half=top,open=false,powered=true,waterlogged=false]" model: path: ${model_top_path} y: 90 + generation: ${model_top_generation} facing=east,half=top,open=true,waterlogged=false: state: "${base_block}[facing=east,half=top,open=true,powered=true,waterlogged=false]" model: diff --git a/common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_door_bottom.png b/common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_door_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..b21666d61b8d66727226d90eaeb9b5f8f7a4c3da GIT binary patch literal 395 zcmV;60d)R}P)Px$MM*?KR5*>LlCe(0P#A?jNw*sdiD(*}C<%c?1H|a&1K_|Lu;Jw3?i;zdx!DC> zjR^~jl*Klty-j){9gPmq+G;B#p6!13=H&m+xjR?aH=h?rAK23wX1f7EAUyz%&w4!F zj}vZL699&neO%iikRIA-VBp#g<^5gC)e1rv)XYNwqD7S9!xRTl{t}I~%vKWs*LE^f z>{Sm?GDOKR!(wT%+uiM$dQFg)*=}H2li$46M9Gl38+}huuZd*WSmkOZm&fXM3`)5- z>lK79{^ZJE<{QMjZo`umwrL^F1L>_Y5V}CgFlixLM7fFoPx$I7vi7R5*>Lk}*reKoo$#rU8dwD_A9T5R!se5Yo-n+1;Pv@95^>zYxUYZWrk$ zSQSALZ5LarxneHmHl+^XVp4lW^euOM_jvc-$18N(M^hCm0GyITHdL$@vSDw4tzv}~ z5kPuoV-f4!KVv&32Pq=j?OVKR{x`o~GjbiazIauKgTs?THnG!cPEA~ji2hJvom~}w zw5Vft{#o7#T&(w(M`Hmk*TiKw!QS6>ks_kJwoIqhoa*X2$;49!TH^K12pLXtkAA&o z1xL-rbFEro5dZ)H07*qoM6N<$f)l5umH+?% literal 0 HcmV?d00001 diff --git a/common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_trapdoor.png b/common-files/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_trapdoor.png new file mode 100644 index 0000000000000000000000000000000000000000..f19dbb4cbcf32fbb9e317a60fec3de5cefe1c1bc GIT binary patch literal 412 zcmV;N0b~A&P)Px$R!KxbR5*>LlCes|P!xv0CK*CQO@?GJf|3fQZi=(3;2VhV;NlawxjFPL1koqR zqOMZt;?!p99W-E4xzduM4)xxqZ4{|LgoOK_6aI6)Te~)A5rQUz6r)&0;H30Q~-tdLmtRF59P z4H`V%Urm*{jIr#Mlj$X@rIe#9GRt0BRw5*c=v7Aji@pF%D$A?aOgMu80000 configSection0) { Map config = castToMap(configSection0, false); + if (Config.debug() && (boolean) config.getOrDefault("debug", false)) { + this.plugin.logger().info(GsonHelper.get().toJson(this.plugin.templateManager().applyTemplates(id, config))); + } if ((boolean) config.getOrDefault("enable", true)) { parser.parseSection(cached.pack(), cached.filePath(), id, MiscUtils.castToMap(this.plugin.templateManager().applyTemplates(id, config), false)); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/command/parser/BlockStateParser.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/command/parser/BlockStateParser.java deleted file mode 100644 index 6830d19bd..000000000 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/command/parser/BlockStateParser.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.momirealms.craftengine.core.plugin.command.parser; - -import net.momirealms.craftengine.core.block.ImmutableBlockState; -import net.momirealms.craftengine.core.plugin.CraftEngine; -import net.momirealms.craftengine.core.plugin.command.CraftEngineCaptionKeys; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.incendo.cloud.caption.CaptionVariable; -import org.incendo.cloud.component.CommandComponent; -import org.incendo.cloud.context.CommandContext; -import org.incendo.cloud.context.CommandInput; -import org.incendo.cloud.exception.parsing.ParserException; -import org.incendo.cloud.parser.ArgumentParseResult; -import org.incendo.cloud.parser.ArgumentParser; -import org.incendo.cloud.parser.ParserDescriptor; -import org.incendo.cloud.suggestion.BlockingSuggestionProvider; -import org.incendo.cloud.suggestion.Suggestion; - -public class BlockStateParser implements ArgumentParser, BlockingSuggestionProvider.Strings { - - public static @NonNull ParserDescriptor blockStateParser() { - return ParserDescriptor.of(new BlockStateParser<>(), ImmutableBlockState.class); - } - - public static CommandComponent.@NonNull Builder blockStateComponent() { - return CommandComponent.builder().parser(blockStateParser()); - } - - @Override - public @NonNull ArgumentParseResult<@NonNull ImmutableBlockState> parse(@NonNull CommandContext<@NonNull C> commandContext, @NonNull CommandInput commandInput) { - String input = commandInput.readString(); - ImmutableBlockState state = net.momirealms.craftengine.core.block.BlockStateParser.deserialize(input); - if (state == null) { - return ArgumentParseResult.failure(new BlockStateParseException(input, commandContext)); - } - return ArgumentParseResult.success(state); - } - - @Override - public @NonNull Iterable<@NonNull String> stringSuggestions(@NonNull CommandContext commandContext, @NonNull CommandInput input) { - return CraftEngine.instance().blockManager().cachedSuggestions().stream().map(Suggestion::suggestion).toList(); - } - - public static final class BlockStateParseException extends ParserException { - - private final String input; - - public BlockStateParseException( - final @NonNull String input, - final @NonNull CommandContext context - ) { - super( - BlockStateParser.class, - context, - CraftEngineCaptionKeys.ARGUMENT_PARSE_FAILURE_BLOCK_STATE, - CaptionVariable.of("input", input) - ); - this.input = input; - } - - public @NonNull String input() { - return this.input; - } - } -} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java index 0586843f5..b920c0d68 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java @@ -36,7 +36,7 @@ public class TemplateArguments { public static TemplateArgument fromMap(Map map) { String type = (String) map.get("type"); if (type == null) { - return MapTemplateArgument.FACTORY.create(map); + return new MapTemplateArgument(map); } else { Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); TemplateArgumentFactory factory = BuiltInRegistries.TEMPLATE_ARGUMENT_FACTORY.getValue(key); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java index 0f7e64dd4..4d6419008 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java @@ -71,7 +71,7 @@ public interface TemplateManager extends Manageable { int separatorIndex = placeholderContent.indexOf(":-"); if (separatorIndex == -1) { this.placeholder = placeholderContent; - this.defaultValue = this.rawText; + this.defaultValue = null; } else { this.placeholder = placeholderContent.substring(0, separatorIndex); String defaultValueString = placeholderContent.substring(separatorIndex + 2);