mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-02 05:27:42 -05:00
@@ -31,6 +31,7 @@ import dev.architectury.utils.Env;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.advancements.Advancement;
|
||||
import net.minecraft.client.gui.screens.inventory.AnvilScreen;
|
||||
import net.minecraft.core.Position;
|
||||
import net.minecraft.core.Vec3i;
|
||||
@@ -192,7 +193,7 @@ public class DebugEvents {
|
||||
TestMod.SINK.accept("Player cloned: " + newPlayer.getScoreboardName() + logSide(newPlayer.level()));
|
||||
});
|
||||
PlayerEvent.PLAYER_ADVANCEMENT.register((player, advancement) -> {
|
||||
TestMod.SINK.accept(player.getScoreboardName() + " was awarded with %s" + logSide(player.level()), advancement.getChatComponent().getString());
|
||||
TestMod.SINK.accept(player.getScoreboardName() + " was awarded with %s" + logSide(player.level()), Advancement.name(advancement));
|
||||
});
|
||||
PlayerEvent.CRAFT_ITEM.register((player, constructed, inventory) -> {
|
||||
TestMod.SINK.accept(player.getScoreboardName() + " crafts " + Component.translatable(constructed.getDescriptionId()).getString() + logSide(player.level()));
|
||||
|
||||
@@ -19,29 +19,28 @@
|
||||
|
||||
package dev.architectury.test.recipes;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.GsonHelper;
|
||||
import net.minecraft.world.item.crafting.CraftingBookCategory;
|
||||
import net.minecraft.world.item.crafting.CustomRecipe;
|
||||
import net.minecraft.world.item.crafting.FireworkRocketRecipe;
|
||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||
|
||||
import java.util.Objects;
|
||||
import net.minecraft.world.item.crafting.*;
|
||||
|
||||
public class TestRecipeSerializer implements RecipeSerializer<CustomRecipe> {
|
||||
private static final Codec<CustomRecipe> CODEC = RecordCodecBuilder.create(instance ->
|
||||
instance.group(CraftingBookCategory.CODEC.fieldOf("category")
|
||||
.orElse(CraftingBookCategory.MISC)
|
||||
.forGetter(CraftingRecipe::category)
|
||||
).apply(instance, FireworkRocketRecipe::new)
|
||||
);
|
||||
|
||||
@Override
|
||||
public CustomRecipe fromJson(ResourceLocation id, JsonObject json) {
|
||||
CraftingBookCategory category = Objects.requireNonNullElse(
|
||||
CraftingBookCategory.CODEC.byName(GsonHelper.getAsString(json, "category", null)), CraftingBookCategory.MISC);
|
||||
return new FireworkRocketRecipe(id, category);
|
||||
public Codec<CustomRecipe> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CustomRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buf) {
|
||||
public CustomRecipe fromNetwork(FriendlyByteBuf buf) {
|
||||
CraftingBookCategory category = buf.readEnum(CraftingBookCategory.class);
|
||||
return new FireworkRocketRecipe(id, category);
|
||||
return new FireworkRocketRecipe(category);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user