diff --git a/gradle.properties b/gradle.properties index 5810807..5ac210f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop - minecraft_version=1.19.2 - yarn_mappings=1.19.2+build.8 - loader_version=0.14.9 + minecraft_version=1.19.4 + yarn_mappings=1.19.4+build.1 + loader_version=0.14.17 # Mod Properties - mod_version = 0.4 + mod_version = 0.5 maven_group = com.github.zly2006 archives_base_name = carpet-sls-addition diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/ServerMain.java b/src/main/java/com/github/zly2006/carpetslsaddition/ServerMain.java index f74b64d..d241f8d 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/ServerMain.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/ServerMain.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.ShapedRecipe; +import net.minecraft.recipe.book.CraftingRecipeCategory; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.CommandManager; import net.minecraft.server.command.ServerCommandSource; @@ -69,7 +70,7 @@ public class ServerMain implements ModInitializer, CarpetExtension { ingredients.set(2, Ingredient.ofItems(Items.OBSIDIAN)); ingredients.set(4, Ingredient.ofItems(Items.STICK)); ingredients.set(7, Ingredient.ofItems(Items.STICK)); - server.getRecipeManager().setRecipes(List.of(new ShapedRecipe(new Identifier(MOD_ID, "recipe.obsidian_pickaxe"), MOD_ID, 3, 3, ingredients, stack))); + server.getRecipeManager().setRecipes(List.of(new ShapedRecipe(new Identifier(MOD_ID, "recipe.obsidian_pickaxe"), MOD_ID, CraftingRecipeCategory.EQUIPMENT, 3, 3, ingredients, stack))); } } diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/carpet/MixinFakePlayer.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/carpet/MixinFakePlayer.java index 37acedc..1e239af 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/carpet/MixinFakePlayer.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/carpet/MixinFakePlayer.java @@ -4,7 +4,7 @@ import carpet.patches.EntityPlayerMPFake; import com.github.zly2006.carpetslsaddition.SLSCarpetSettings; import com.mojang.authlib.GameProfile; import net.minecraft.util.UserCache; -import net.minecraft.util.dynamic.DynamicSerializableUuid; +import net.minecraft.util.Uuids; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -17,7 +17,7 @@ public class MixinFakePlayer { @Redirect(method = "createFake", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/UserCache;findByName(Ljava/lang/String;)Ljava/util/Optional;")) private static Optional onCreate(UserCache instance, String name) { if (SLSCarpetSettings.offlineFakePlayers) { - UUID uuid = DynamicSerializableUuid.getOfflinePlayerUuid(name); + UUID uuid = Uuids.getOfflinePlayerUuid(name); return Optional.of(new GameProfile(uuid, name)); } return instance.findByName(name); diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinItemEntity.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinItemEntity.java index 2f1c31f..15364c9 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinItemEntity.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinItemEntity.java @@ -1,10 +1,14 @@ package com.github.zly2006.carpetslsaddition.mixin.entity; import com.github.zly2006.carpetslsaddition.SLSCarpetSettings; +import com.github.zly2006.carpetslsaddition.ServerMain; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -12,7 +16,11 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ItemEntity.class) -public abstract class MixinItemEntity { +public abstract class MixinItemEntity extends Entity { + public MixinItemEntity(EntityType type, World world) { + super(type, world); + } + @Shadow public abstract ItemStack getStack(); @@ -21,7 +29,8 @@ public abstract class MixinItemEntity { @Inject(method = "damage", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/ItemEntity;discard()V"), cancellable = true) private void damage(DamageSource source, float amount, CallbackInfoReturnable cir) { - if (source == DamageSource.ANVIL && SLSCarpetSettings.obtainableReinforcedDeepSlate) { + // TODO: 迁移至1.19.4时,需要修改DamageSource相关逻辑 + if (source == this.getDamageSources().fallingAnvil() && SLSCarpetSettings.obtainableReinforcedDeepSlate) { if ((getStack().isOf(Items.DEEPSLATE) || getStack().isOf(Items.COBBLED_DEEPSLATE)) && getStack().getCount() == 64) { setStack(new ItemStack(Items.REINFORCED_DEEPSLATE)); diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinServerPlayerEntity.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinServerPlayerEntity.java index 3bf038a..2e7d317 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinServerPlayerEntity.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/entity/MixinServerPlayerEntity.java @@ -23,10 +23,11 @@ public abstract class MixinServerPlayerEntity extends PlayerEntity { private int sneakTimes = 0; private long lastSneakTime = 0; - public MixinServerPlayerEntity(World world, BlockPos pos, float yaw, GameProfile gameProfile, @Nullable PlayerPublicKey publicKey) { - super(world, pos, yaw, gameProfile, publicKey); + public MixinServerPlayerEntity(World world, BlockPos pos, float yaw, GameProfile gameProfile) { + super(world, pos, yaw, gameProfile); } + @Override public void setSneaking(boolean sneaking){ if (!SLSCarpetSettings.playerSit || (sneaking && this.isSneaking())) { @@ -59,6 +60,7 @@ public abstract class MixinServerPlayerEntity extends PlayerEntity { // 同步潜行状态到客户端 // 如果不同步的话客户端会认为仍在潜行,从而碰撞箱的高度会计算错误 if (sneakTimes == 0 && this.networkHandler != null) { + // TODO: 构造函数改变,需要进行适配 this.networkHandler.sendPacket(new EntityTrackerUpdateS2CPacket(this.getId(), this.getDataTracker(), true)); } } diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/protocol/pcaSyncProtocol/block/MixinBeehiveBlockEntity.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/protocol/pcaSyncProtocol/block/MixinBeehiveBlockEntity.java index 18e6511..df5e41f 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/protocol/pcaSyncProtocol/block/MixinBeehiveBlockEntity.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/protocol/pcaSyncProtocol/block/MixinBeehiveBlockEntity.java @@ -29,7 +29,7 @@ public abstract class MixinBeehiveBlockEntity extends BlockEntity { } @Inject(method = "tickBees", at = @At(value = "INVOKE", target = "Ljava/util/Iterator;remove()V", shift = At.Shift.AFTER)) - private static void postTickBees(World world, BlockPos pos, BlockState state, List bees, BlockPos flowerPos, CallbackInfo ci) { + private static void postTickBees(World world, BlockPos pos, BlockState state, List bees, BlockPos flowerPos, CallbackInfo ci) { if (SLSCarpetSettings.pcaSyncProtocol && PcaSyncProtocol.syncBlockEntityToClient(Objects.requireNonNull(world.getBlockEntity(pos)))) { ServerMain.LOGGER.debug("update BeehiveBlockEntity: {}", pos); }