diff --git a/src/main/java/dev/anvilcraft/guideme/command/GetHandCommand.java b/src/main/java/dev/anvilcraft/guideme/command/GetHandCommand.java index bac7403..c716d6f 100644 --- a/src/main/java/dev/anvilcraft/guideme/command/GetHandCommand.java +++ b/src/main/java/dev/anvilcraft/guideme/command/GetHandCommand.java @@ -7,6 +7,7 @@ import net.minecraft.core.Holder; import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.TagKey; @@ -38,10 +39,11 @@ private static int showInfo(CommandContext ctx) { ItemStack itemStack = player.getMainHandItem(); Item item = itemStack.getItem(); + components.add(Component.nullToEmpty("==========")); // Item ID - Component itemMessage = Component.translatable("command.ac_guideme.item", item.toString()) + MutableComponent itemMessage = Component.translatable("command.ac_guideme.item", item.toString()) .withStyle(ChatFormatting.GREEN, ChatFormatting.BOLD); components.add(copy(itemMessage, item.toString())); @@ -51,9 +53,9 @@ private static int showInfo(CommandContext ctx) { components.add(copy(countMessage, String.valueOf(count))); // Mod - String modInfo = getMod(item.toString()); - Component ModMessage = Component.translatable("command.ac_guideme.mod", modInfo).withStyle(ChatFormatting.RED); - components.add(copy(ModMessage, modInfo)); + String modId = item.getCreatorModId(itemStack); + Component ModMessage = Component.translatable("command.ac_guideme.mod", modId).withStyle(ChatFormatting.RED); + components.add(copy(ModMessage, modId)); // Item Tag Holder itemHolder = itemStack.getItemHolder(); @@ -92,15 +94,9 @@ private static int showInfo(CommandContext ctx) { return returnValue.get(); } - private static Component copy(Component c, String info) { + private static Component copy(Component component, String info) { return Component.literal("- ") .withStyle(Style.EMPTY.withClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, info))) - .append(c); - } - - private static String getMod(String item) { - if (!item.contains(":")) return item; - String[] parts = item.split(":", 2); - return parts[0]; + .append(component); } } \ No newline at end of file diff --git a/src/main/java/dev/anvilcraft/guideme/guide/RecipeTypeContributions.java b/src/main/java/dev/anvilcraft/guideme/guide/RecipeTypeContributions.java index edbfe2b..340d6d3 100644 --- a/src/main/java/dev/anvilcraft/guideme/guide/RecipeTypeContributions.java +++ b/src/main/java/dev/anvilcraft/guideme/guide/RecipeTypeContributions.java @@ -23,6 +23,7 @@ import dev.anvilcraft.guideme.guide.recipe.LytSuperHeatingRecipe; import dev.anvilcraft.guideme.guide.recipe.LytTimeWarpRecipe; import dev.anvilcraft.guideme.guide.recipe.LytUnpackRecipe; +import dev.anvilcraft.guideme.guide.recipe.vanilla.VanillaRecipes; import dev.dubhe.anvilcraft.init.reicpe.ModRecipeTypes; import dev.dubhe.anvilcraft.recipe.ChargerChargingRecipe; import dev.dubhe.anvilcraft.recipe.JewelCraftingRecipe; @@ -54,6 +55,7 @@ import net.minecraft.network.chat.Style; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeType; import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; @@ -64,6 +66,10 @@ public class RecipeTypeContributions implements RecipeTypeMappingSupplier { @Override public void collect(RecipeTypeMappings mappings) { + // Vanilla + mappings.add(RecipeType.STONECUTTING, VanillaRecipes::createStonecutter); + + // Anvil mappings.add(ModRecipeTypes.BLOCK_COMPRESS_TYPE.get(), RecipeTypeContributions::blockCompress); mappings.add(ModRecipeTypes.BLOCK_CRUSH_TYPE.get(), RecipeTypeContributions::blockCrush); mappings.add(ModRecipeTypes.BLOCK_SMEAR_TYPE.get(), RecipeTypeContributions::blockSmear); diff --git a/src/main/java/dev/anvilcraft/guideme/guide/recipe/vanilla/VanillaRecipes.java b/src/main/java/dev/anvilcraft/guideme/guide/recipe/vanilla/VanillaRecipes.java new file mode 100644 index 0000000..de79f48 --- /dev/null +++ b/src/main/java/dev/anvilcraft/guideme/guide/recipe/vanilla/VanillaRecipes.java @@ -0,0 +1,22 @@ +package dev.anvilcraft.guideme.guide.recipe.vanilla; + +import guideme.document.block.LytSlotGrid; +import guideme.document.block.recipes.LytStandardRecipeBox; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.StonecutterRecipe; +import net.minecraft.world.level.block.Blocks; + +public class VanillaRecipes { + + private VanillaRecipes() { + } + + public static LytStandardRecipeBox createStonecutter(RecipeHolder recipe) { + return LytStandardRecipeBox.builder() + .title(Blocks.STONECUTTER.asItem().getDescription().getString()) + .icon(Blocks.STONECUTTER) + .input(LytSlotGrid.row(recipe.value().getIngredients(), true)) + .outputFromResultOf(recipe) + .build(recipe); + } +}