Skip to content

Commit 7dd8764

Browse files
committed
Merge branch 'master' of https://github.com/gnembon/fabric-carpet into cleanup
2 parents 4c93b86 + 13aeaee commit 7dd8764

10 files changed

+33
-27
lines changed

gradle.properties

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check https://fabricmc.net/develop/
6-
minecraft_version=1.20.5
7-
loader_version=0.15.10
6+
minecraft_version=24w18a
7+
loader_version=0.15.11
88
jsr305_version=3.0.2
9-
fabric_version=0.97.5+1.20.5
9+
fabric_version=0.97.8+1.20.6
1010

1111
# Mod Properties
12-
mod_version = 1.4.140
12+
mod_version = 1.4.142
1313
maven_group = carpet
1414
archives_base_name = fabric-carpet
1515

1616
# Release Action properties for Curseforge and Snapshots
1717
# The Curseforge versions "names" or ids for the main branch (comma separated: 1.16.4,1.16.5)
1818
# This is needed because CF uses too vague names for prereleases and release candidates
1919
# Can also be the version ID directly coming from https://minecraft.curseforge.com/api/game/versions?token=[API_TOKEN]
20-
release-curse-versions = Minecraft 1.20:1.20.5
20+
release-curse-versions = Minecraft 1.21:1.21-Snapshot
2121
# Whether or not to build another branch on release
2222
release-extra-branch = false
2323
# The name of the second branch to release

jitpack.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
before_install:
2-
- sdk install java 17.0.1-open
3-
- sdk use java 17.0.1-open
2+
- sdk install java 21.0.2-open
3+
- sdk use java 21.0.2-open

src/main/java/carpet/helpers/OptimizedExplosion.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import net.minecraft.util.Mth;
1717
import net.minecraft.world.entity.Entity;
1818
import net.minecraft.world.entity.LivingEntity;
19+
import net.minecraft.world.entity.ai.attributes.Attributes;
1920
import net.minecraft.world.entity.item.ItemEntity;
2021
import net.minecraft.world.entity.item.PrimedTnt;
2122
import net.minecraft.world.entity.player.Player;
2223
import net.minecraft.world.item.ItemStack;
23-
import net.minecraft.world.item.enchantment.ProtectionEnchantment;
2424
import net.minecraft.world.level.Explosion;
2525
import net.minecraft.world.level.Level;
2626
import net.minecraft.world.level.block.Block;
@@ -172,8 +172,8 @@ public static void doExplosionA(Explosion e, ExplosionLogHelper eLogger) {
172172
}
173173
double d11 = d10;
174174

175-
if (entity instanceof LivingEntity) {
176-
d11 = ProtectionEnchantment.getExplosionKnockbackAfterDampener((LivingEntity) entity, d10);
175+
if (entity instanceof LivingEntity lev) {
176+
d11 = d10 * Mth.clamp(1.0 - lev.getAttributeValue(Attributes.EXPLOSION_KNOCKBACK_RESISTANCE), 0.0, 1.0);
177177
}
178178

179179
if (eLogger != null) {

src/main/java/carpet/mixins/AbstractArrowMixin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public abstract class AbstractArrowMixin extends Entity
2020
private TrajectoryLogHelper logHelper;
2121
public AbstractArrowMixin(EntityType<?> entityType_1, Level world_1) { super(entityType_1, world_1); }
2222

23-
@Inject(method = "<init>(Lnet/minecraft/world/entity/EntityType;Lnet/minecraft/world/level/Level;Lnet/minecraft/world/item/ItemStack;)V", at = @At("RETURN"))
24-
private void addLogger(final EntityType entityType, final Level level, final ItemStack itemStack, final CallbackInfo ci)
23+
@Inject(method = "<init>(Lnet/minecraft/world/entity/EntityType;Lnet/minecraft/world/level/Level;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/ItemStack;)V", at = @At("RETURN"))
24+
private void addLogger(final EntityType entityType, final Level level, final ItemStack itemStack, final ItemStack weapon, final CallbackInfo ci)
2525
{
2626
if (LoggerRegistry.__projectiles && !level.isClientSide)
2727
logHelper = new TrajectoryLogHelper("projectiles");

src/main/java/carpet/mixins/BuddingAmethystBlock_movableAmethystMixin.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import carpet.CarpetSettings;
44
import net.minecraft.core.BlockPos;
5+
import net.minecraft.core.registries.Registries;
56
import net.minecraft.world.entity.player.Player;
67
import net.minecraft.world.item.ItemStack;
78
import net.minecraft.world.item.Items;
@@ -33,7 +34,7 @@ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState s
3334
// drawback - not controlled via loottables, but hey
3435
if (CarpetSettings.movableAmethyst &&
3536
stack.getItem() instanceof PickaxeItem &&
36-
EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0
37+
EnchantmentHelper.getItemEnchantmentLevel(world.registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.SILK_TOUCH), stack) > 0
3738
)
3839
popResource(world, pos, Items.BUDDING_AMETHYST.getDefaultInstance());
3940
}

src/main/java/carpet/mixins/ExperienceOrb_xpNoCooldownMixin.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package carpet.mixins;
22

33
import carpet.CarpetSettings;
4+
import net.minecraft.server.level.ServerPlayer;
45
import net.minecraft.world.entity.Entity;
56
import net.minecraft.world.entity.EntityType;
67
import net.minecraft.world.entity.ExperienceOrb;
@@ -27,15 +28,15 @@ public ExperienceOrb_xpNoCooldownMixin(EntityType<?> type, Level world)
2728
}
2829

2930
@Shadow
30-
protected abstract int repairPlayerItems(Player player, int amount);
31+
protected abstract int repairPlayerItems(ServerPlayer player, int amount);
3132

3233
@Inject(method = "playerTouch", at = @At("HEAD"))
3334
private void addXP(Player player, CallbackInfo ci) {
3435
if (CarpetSettings.xpNoCooldown && !level().isClientSide) {
3536
player.takeXpDelay = 0;
3637
// reducing the count to 1 and leaving vanilla to deal with it
3738
while (this.count > 1) {
38-
int remainder = this.repairPlayerItems(player, this.value);
39+
int remainder = this.repairPlayerItems((ServerPlayer) player, this.value);
3940
if (remainder > 0) {
4041
player.giveExperiencePoints(remainder);
4142
}

src/main/java/carpet/mixins/HangingEntity_scarpetEventsMixin.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
import carpet.script.EntityEventsGroup;
55
import net.minecraft.world.entity.Entity;
66
import net.minecraft.world.entity.EntityType;
7+
import net.minecraft.world.entity.decoration.BlockAttachedEntity;
78
import net.minecraft.world.entity.decoration.HangingEntity;
89
import net.minecraft.world.level.Level;
910
import org.spongepowered.asm.mixin.Mixin;
1011
import org.spongepowered.asm.mixin.injection.At;
1112
import org.spongepowered.asm.mixin.injection.Inject;
1213
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1314

14-
@Mixin(HangingEntity.class)
15+
@Mixin(BlockAttachedEntity.class)
1516
public abstract class HangingEntity_scarpetEventsMixin extends Entity
1617
{
1718
public HangingEntity_scarpetEventsMixin(EntityType<?> type, Level world)

src/main/java/carpet/mixins/ServerCommonPacketListenerimpl_connectionMixin.java src/main/java/carpet/mixins/ServerGamePacketListenerimpl_connectionMixin.java

+10-7
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,29 @@
55
import net.minecraft.network.protocol.PacketUtils;
66
import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket;
77
import net.minecraft.network.protocol.game.ServerGamePacketListener;
8-
import net.minecraft.server.network.ServerCommonPacketListenerImpl;
8+
import net.minecraft.server.level.ServerPlayer;
99
import net.minecraft.server.network.ServerGamePacketListenerImpl;
1010
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Shadow;
1112
import org.spongepowered.asm.mixin.injection.At;
1213
import org.spongepowered.asm.mixin.injection.Inject;
1314
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1415

15-
@Mixin(ServerCommonPacketListenerImpl.class)
16-
public class ServerCommonPacketListenerimpl_connectionMixin
16+
@Mixin(ServerGamePacketListenerImpl.class)
17+
public class ServerGamePacketListenerimpl_connectionMixin
1718
{
19+
@Shadow
20+
public ServerPlayer player;
21+
1822
@Inject(method = "handleCustomPayload", at = @At("HEAD"), cancellable = true)
1923
private void onCustomCarpetPayload(ServerboundCustomPayloadPacket serverboundCustomPayloadPacket, CallbackInfo ci)
2024
{
21-
Object thiss = this;
22-
if (thiss instanceof ServerGamePacketListenerImpl impl && serverboundCustomPayloadPacket.payload() instanceof CarpetClient.CarpetPayload cpp) {
25+
if (serverboundCustomPayloadPacket.payload() instanceof CarpetClient.CarpetPayload cpp) {
2326
// We should force onto the main thread here
2427
// ServerNetworkHandler.handleData can possibly mutate data that isn't
2528
// thread safe, and also allows for client commands to be executed
26-
PacketUtils.ensureRunningOnSameThread(serverboundCustomPayloadPacket, (ServerGamePacketListener) this, impl.player.serverLevel());
27-
ServerNetworkHandler.onClientData(impl.player, cpp.data());
29+
PacketUtils.ensureRunningOnSameThread(serverboundCustomPayloadPacket, (ServerGamePacketListener) this, player.serverLevel());
30+
ServerNetworkHandler.onClientData(player, cpp.data());
2831
ci.cancel();
2932
}
3033
}

src/main/java/carpet/script/api/WorldAccess.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ else if (item instanceof TridentItem || item instanceof SwordItem)
918918
damageAmount = 2;
919919
}
920920
final int finalDamageAmount = damageAmount;
921-
tool.hurtAndBreak(damageAmount, world.getRandom(), null, () -> { if (finalDamageAmount > 0) toolBroke.setTrue(); } );
921+
tool.hurtAndBreak(damageAmount, world, null, () -> { if (finalDamageAmount > 0) toolBroke.setTrue(); } );
922922
if (!isUsingEffectiveTool)
923923
{
924924
dropLoot = false;
@@ -927,15 +927,15 @@ else if (item instanceof TridentItem || item instanceof SwordItem)
927927

928928
if (dropLoot)
929929
{
930-
if (how < 0 || (tag != null && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) > 0))
930+
if (how < 0 || (tag != null && EnchantmentHelper.getItemEnchantmentLevel(world.registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.SILK_TOUCH), tool) > 0))
931931
{
932932
Block.popResource(world, where, new ItemStack(state.getBlock()));
933933
}
934934
else
935935
{
936936
if (how > 0)
937937
{
938-
tool.enchant(Enchantments.FORTUNE, (int) how);
938+
tool.enchant(world.registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.FORTUNE), (int) how);
939939
}
940940
if (DUMMY_ENTITY == null)
941941
{

src/main/resources/carpet.mixins.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@
178178
"PistonStructureResolver_customStickyMixin",
179179

180180
"CustomPacketPayload_networkStuffMixin",
181-
"ServerCommonPacketListenerimpl_connectionMixin"
181+
"ServerGamePacketListenerimpl_connectionMixin"
182182

183183
],
184184
"client": [

0 commit comments

Comments
 (0)