Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fabric] Update to 1.21+ #84

Merged
merged 2 commits into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
plugins {
id 'fabric-loom' version '1.5-SNAPSHOT'
id 'fabric-loom' version '1.7-SNAPSHOT'
id 'maven-publish'
}

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21

archivesBaseName = project.archives_base_name + "-fabric"
version = project.minecraft_version + "-" + project.mod_version
Expand Down Expand Up @@ -54,8 +54,8 @@ processResources {
}

tasks.withType(JavaCompile).configureEach {
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
it.options.release = 17
// Minecraft 1.21 (1.20.6) upwards uses Java 21.
it.options.release = 21
}

java {
Expand Down
16 changes: 8 additions & 8 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ org.gradle.daemon=false

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.3
loader_version=0.15.7
minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
loader_version=0.16.5

# Mod Properties
mod_version = 0.3.2
maven_group = fonnymunkey
archives_base_name = simplehats

# Dependencies
fabric_version=0.96.1+1.20.4
trinkets_version=3.8.0
cloth_config_version=13.0.121
cc_version=5.4.0
modmenu_version=9.0.0
fabric_version=0.104.0+1.21.1
trinkets_version=3.10.0
cloth_config_version=15.0.140
cc_version=6.1.1
modmenu_version=11.0.2
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
8 changes: 4 additions & 4 deletions src/main/java/fonnymunkey/simplehats/SimpleHats.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.loot.v2.LootTableEvents;
import net.fabricmc.fabric.api.loot.v3.LootTableEvents;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
Expand All @@ -35,9 +35,9 @@ public class SimpleHats implements ModInitializer {
public static Logger logger = LogManager.getLogger();
public static ModConfig config;

public static RegistryKey<ItemGroup> HAT_TAB = RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier(modId, "hat_group"));
public static RegistryKey<ItemGroup> HAT_TAB = RegistryKey.of(RegistryKeys.ITEM_GROUP, Identifier.of(modId, "hat_group"));

public static final TagKey<Item> ALL_HATS = TagKey.of(RegistryKeys.ITEM, new Identifier(modId, "all_hats"));
public static final TagKey<Item> ALL_HATS = TagKey.of(RegistryKeys.ITEM, Identifier.of(modId, "all_hats"));

@Override
public void onInitialize() {
Expand Down Expand Up @@ -108,7 +108,7 @@ public void onInitialize() {

FabricDefaultAttributeRegistry.register(ModRegistry.HATDISPLAYENTITY, HatDisplay.createLivingAttributes());

LootTableEvents.MODIFY.register((resourceManager, lootManager, id, tableBuilder, source) -> {
LootTableEvents.MODIFY.register((id, tableBuilder, source, registryLookup) -> {
if(SimpleHats.config.common.enableChestLoot && ModRegistry.LOOT_HATINJECT_CHEST.contains(id)) {
LootPool.Builder pool = LootPool.builder()
.with(ItemEntry.builder(ModRegistry.HATBAG_COMMON).weight(SimpleHats.config.common.chestCommonWeight))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static TexturedModelData getTexturedModelData() {
public void setAngles(HatDisplay entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { }

@Override
public void render(MatrixStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bb_main.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
public void render(MatrixStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, int color) {
bb_main.render(poseStack, vertexConsumer, packedLight, packedOverlay, color);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis;
public class HatDisplayRenderer extends LivingEntityRenderer<HatDisplay, HatDisplayModel<HatDisplay>> {
public static final Identifier HATDISPLAY_TEXTURE = new Identifier(SimpleHats.modId, "textures/entity/hatdisplay.png");
public static final Identifier HATDISPLAY_TEXTURE = Identifier.of(SimpleHats.modId, "textures/entity/hatdisplay.png");
public static final EntityModelLayer HATDISPLAY_LOCATION = new EntityModelLayer(HATDISPLAY_TEXTURE, "main");

public HatDisplayRenderer(EntityRendererFactory.Context context) {
Expand All @@ -22,7 +22,8 @@ public Identifier getTexture(HatDisplay entity) {
return HATDISPLAY_TEXTURE;
}

protected void setupTransforms(HatDisplay entityLiving, MatrixStack matrixStack, float ageInTicks, float rotationYaw, float partialTicks) {
@Override
protected void setupTransforms(HatDisplay entityLiving, MatrixStack matrixStack, float animationProgress, float rotationYaw, float partialTicks, float scale) {
matrixStack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(180.0F - rotationYaw));
float f = (float)(entityLiving.getWorld().getTime() - entityLiving.lastHit) + partialTicks;
if(f < 5.0F) matrixStack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(MathHelper.sin(f / 1.5F * (float)Math.PI) * 3.0F));
Expand Down
21 changes: 11 additions & 10 deletions src/main/java/fonnymunkey/simplehats/common/entity/HatDisplay.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtElement;
import net.minecraft.nbt.NbtList;
import net.minecraft.nbt.NbtOps;
import net.minecraft.particle.BlockStateParticleEffect;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.registry.tag.DamageTypeTags;
Expand Down Expand Up @@ -93,8 +95,7 @@ public void writeCustomDataToNbt(NbtCompound compound) {
NbtList listTag = new NbtList();

ItemStack itemStack = this.hatItemSlots.get(0);
NbtCompound compoundTag = new NbtCompound();
if(!itemStack.isEmpty()) itemStack.writeNbt(compoundTag);
NbtElement compoundTag = ItemStack.CODEC.encodeStart(NbtOps.INSTANCE, itemStack).mapOrElse(e -> e, $ -> new NbtCompound());
listTag.add(compoundTag);

compound.put("HatItem", listTag);
Expand All @@ -105,7 +106,7 @@ public void readCustomDataFromNbt(NbtCompound compound) {
super.readCustomDataFromNbt(compound);
if(compound.contains("HatItem", 9)) {
NbtList listTag = compound.getList("HatItem", 10);
this.hatItemSlots.set(0, ItemStack.fromNbt(listTag.getCompound(0)));
this.hatItemSlots.set(0, ItemStack.fromNbt(this.getRegistryManager(), listTag.getFirst()).orElse(ItemStack.EMPTY));
}
}

Expand Down Expand Up @@ -275,7 +276,7 @@ private void breakAndDropItem(DamageSource source) {

private void onBreak(DamageSource source) {
this.playBreakSound();
this.drop(source);
this.drop((ServerWorld) this.getWorld(), source);

ItemStack itemStack = this.hatItemSlots.get(0);
if(!itemStack.isEmpty()) {
Expand All @@ -296,8 +297,8 @@ protected float turnHead(float f1, float f2) {
}

@Override
protected float getUnscaledRidingOffset(Entity vehicle) {
return 0.1F;
public Vec3d getVehicleAttachmentPos(Entity vehicle) {
return new Vec3d(0.0, 0.1, 0.0);
}

@Override
Expand Down Expand Up @@ -351,7 +352,7 @@ public boolean isMobOrPlayer() {
}

@Override
public EntityDimensions getDimensions(EntityPose pose) {
public EntityDimensions getBaseDimensions(EntityPose pose) {
return this.getType().getDimensions();
}

Expand All @@ -370,8 +371,8 @@ public void onTrackedDataSet(TrackedData<?> pKey) {
}

@Override
protected void initDataTracker() {
super.initDataTracker();
this.dataTracker.startTracking(DATA_CLIENT_FLAGS, (byte)0);
protected void initDataTracker(DataTracker.Builder builder) {
super.initDataTracker(builder);
builder.add(DATA_CLIENT_FLAGS, (byte)0);
}
}
56 changes: 31 additions & 25 deletions src/main/java/fonnymunkey/simplehats/common/init/ModRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@
import net.minecraft.entity.EntityType;
import net.minecraft.entity.SpawnGroup;
import net.minecraft.item.Item;
import net.minecraft.loot.LootTable;
import net.minecraft.loot.LootTables;
import net.minecraft.recipe.RecipeSerializer;
import net.minecraft.recipe.SpecialRecipeSerializer;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.tag.ItemTags;
import net.minecraft.util.Identifier;
import net.minecraft.util.Rarity;
import org.apache.logging.log4j.Level;
Expand All @@ -35,32 +38,35 @@ public class ModRegistry {
////
//Items
////
public static final BagItem HATBAG_COMMON = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_common"), new BagItem(Rarity.COMMON));
public static final BagItem HATBAG_UNCOMMON = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_uncommon"), new BagItem(Rarity.UNCOMMON));
public static final BagItem HATBAG_RARE = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_rare"), new BagItem(Rarity.RARE));
public static final BagItem HATBAG_EPIC = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_epic"), new BagItem(Rarity.EPIC));
public static final BagItem HATBAG_EASTER = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_easter"), new BagItem(HatSeason.EASTER));
public static final BagItem HATBAG_SUMMER = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_summer"), new BagItem(HatSeason.SUMMER));
public static final BagItem HATBAG_HALLOWEEN = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_halloween"), new BagItem(HatSeason.HALLOWEEN));
public static final BagItem HATBAG_FESTIVE = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatbag_festive"), new BagItem(HatSeason.FESTIVE));
public static final Item HATSCRAPS_COMMON = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_common"), new Item(new Item.Settings().rarity(Rarity.COMMON)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_UNCOMMON = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_uncommon"), new Item(new Item.Settings().rarity(Rarity.UNCOMMON)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_RARE = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_rare"), new Item(new Item.Settings().rarity(Rarity.RARE)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_EASTER = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_easter"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_SUMMER = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_summer"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_HALLOWEEN = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_halloween"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_FESTIVE = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatscraps_festive"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATICON = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "haticon"), new Item(new Item.Settings()));//.group(SimpleHats.HAT_TAB)));
public static final HatDisplayItem HATDISPLAYITEM = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "hatdisplay"), new HatDisplayItem(new Item.Settings()));//.group(SimpleHats.HAT_TAB)));
public static final HatItem HATSPECIAL = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, "special"), new HatItem(new HatEntry("special", Rarity.EPIC, 0)));
public static final BagItem HATBAG_COMMON = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_common"), new BagItem(Rarity.COMMON));
public static final BagItem HATBAG_UNCOMMON = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_uncommon"), new BagItem(Rarity.UNCOMMON));
public static final BagItem HATBAG_RARE = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_rare"), new BagItem(Rarity.RARE));
public static final BagItem HATBAG_EPIC = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_epic"), new BagItem(Rarity.EPIC));
public static final BagItem HATBAG_EASTER = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_easter"), new BagItem(HatSeason.EASTER));
public static final BagItem HATBAG_SUMMER = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_summer"), new BagItem(HatSeason.SUMMER));
public static final BagItem HATBAG_HALLOWEEN = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_halloween"), new BagItem(HatSeason.HALLOWEEN));
public static final BagItem HATBAG_FESTIVE = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatbag_festive"), new BagItem(HatSeason.FESTIVE));
public static final Item HATSCRAPS_COMMON = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_common"), new Item(new Item.Settings().rarity(Rarity.COMMON)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_UNCOMMON = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_uncommon"), new Item(new Item.Settings().rarity(Rarity.UNCOMMON)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_RARE = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_rare"), new Item(new Item.Settings().rarity(Rarity.RARE)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_EASTER = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_easter"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_SUMMER = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_summer"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_HALLOWEEN = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_halloween"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATSCRAPS_FESTIVE = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatscraps_festive"), new Item(new Item.Settings().rarity(Rarity.EPIC)));//.group(SimpleHats.HAT_TAB)));
public static final Item HATICON = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "haticon"), new Item(new Item.Settings()));//.group(SimpleHats.HAT_TAB)));
public static final HatDisplayItem HATDISPLAYITEM = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "hatdisplay"), new HatDisplayItem(new Item.Settings()));//.group(SimpleHats.HAT_TAB)));
public static final HatItem HATSPECIAL = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, "special"), new HatItem(new HatEntry("special", Rarity.EPIC, 0)));

public static void registerHats() {
for(HatEntry entry : HatJson.getHatList()) {
HatItem hat = entry.getHatDyeSettings().getUseDye() ? new HatItemDyeable(entry) : new HatItem(entry);
hat = Registry.register(Registries.ITEM, new Identifier(SimpleHats.modId, entry.getHatName()), hat);
hat = Registry.register(Registries.ITEM, Identifier.of(SimpleHats.modId, entry.getHatName()), hat);
ModRegistry.hatList.add(hat);

if(hat instanceof HatItemDyeable) CauldronBehavior.WATER_CAULDRON_BEHAVIOR.map().put((HatItemDyeable)hat, CauldronBehavior.CLEAN_DYEABLE_ITEM);
if(hat instanceof HatItemDyeable) {
CauldronBehavior.WATER_CAULDRON_BEHAVIOR.map().put((HatItemDyeable)hat, CauldronBehavior.CLEAN_DYEABLE_ITEM);
TagInjector.inject(Registries.ITEM, ItemTags.DYEABLE.id(), hat);
}
}
SimpleHats.logger.log(Level.INFO, "Generated " + ModRegistry.hatList.size() + " hat items from hat entries.");

Expand All @@ -70,17 +76,17 @@ public static void registerHats() {
////
//Entity Registry
////
public static final EntityType<HatDisplay> HATDISPLAYENTITY = Registry.register(Registries.ENTITY_TYPE, new Identifier(SimpleHats.modId, "hatdisplay"), EntityType.Builder.<HatDisplay>create(HatDisplay::new, SpawnGroup.MISC).setDimensions(0.75F, 0.8125F).maxTrackingRange(10).build("hatdisplay"));
public static final EntityType<HatDisplay> HATDISPLAYENTITY = Registry.register(Registries.ENTITY_TYPE, Identifier.of(SimpleHats.modId, "hatdisplay"), EntityType.Builder.<HatDisplay>create(HatDisplay::new, SpawnGroup.MISC).dimensions(0.75F, 0.8125F).maxTrackingRange(10).build("hatdisplay"));
////
//Recipe Registry
////
public static final RecipeSerializer<?> HATSCRAP_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER, new Identifier(SimpleHats.modId, "custom_hatscraps"), new SpecialRecipeSerializer<>(HatScrapRecipe::new));
public static final RecipeSerializer<?> HATVARIANTS_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER, new Identifier(SimpleHats.modId, "custom_hatvariants"), new SpecialRecipeSerializer<>(HatVariantRecipe::new));
public static final RecipeSerializer<?> HATSCRAP_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER, Identifier.of(SimpleHats.modId, "custom_hatscraps"), new SpecialRecipeSerializer<>(HatScrapRecipe::new));
public static final RecipeSerializer<?> HATVARIANTS_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER, Identifier.of(SimpleHats.modId, "custom_hatvariants"), new SpecialRecipeSerializer<>(HatVariantRecipe::new));

////
//Loot registry
////
public static final List<Identifier> LOOT_HATINJECT_CHEST = Arrays.asList(
public static final List<RegistryKey<LootTable>> LOOT_HATINJECT_CHEST = Arrays.asList(
LootTables.ABANDONED_MINESHAFT_CHEST,
LootTables.NETHER_BRIDGE_CHEST,
LootTables.STRONGHOLD_LIBRARY_CHEST,
Expand All @@ -98,7 +104,7 @@ public static void registerHats() {
LootTables.PILLAGER_OUTPOST_CHEST,
LootTables.BASTION_TREASURE_CHEST
);
public static final List<Identifier> LOOT_HATINJECT_ENTITY = Arrays.asList(
public static final List<RegistryKey<LootTable>> LOOT_HATINJECT_ENTITY = Arrays.asList(
EntityType.BLAZE.getLootTableId(),
EntityType.CAVE_SPIDER.getLootTableId(),
EntityType.CREEPER.getLootTableId(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public BagItem(HatEntry.HatSeason hatSeason) {
this.rarity = Rarity.EPIC;
}

public static SoundEvent getUnwrapFinishSound() { return SoundEvents.ITEM_ARMOR_EQUIP_GENERIC; }
public static SoundEvent getUnwrapFinishSound() { return SoundEvents.ITEM_ARMOR_EQUIP_GENERIC.value(); }

@Override
public TypedActionResult<ItemStack> use(World level, PlayerEntity player, Hand hand) {
Expand Down
Loading
Loading