Skip to content
This repository was archived by the owner on Oct 20, 2024. It is now read-only.

Commit a505669

Browse files
committed
Fix minecarts not dropping chains on death
1 parent 3bb7c24 commit a505669

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/com/github/vini2003/linkart/mixin/AbstractMinecartEntityMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public abstract class AbstractMinecartEntityMixin extends Entity implements Link
3636
@Unique
3737
private UUID linkart$followerUUID;
3838
@Unique
39-
private ItemStack linkart$itemStack;
39+
private ItemStack linkart$itemStack = ItemStack.EMPTY;
4040

4141
public AbstractMinecartEntityMixin(EntityType<?> type, World world) {
4242
super(type, world);

src/main/java/com/github/vini2003/linkart/mixin/EntityMixin.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
import com.github.vini2003.linkart.utility.CollisionUtils;
55
import net.minecraft.block.AbstractRailBlock;
66
import net.minecraft.entity.Entity;
7+
import net.minecraft.entity.ItemEntity;
78
import net.minecraft.entity.vehicle.AbstractMinecartEntity;
9+
import net.minecraft.item.ItemStack;
810
import net.minecraft.util.math.Box;
911
import net.minecraft.util.math.Vec3d;
1012
import net.minecraft.world.World;
13+
import org.jetbrains.annotations.Nullable;
1114
import org.spongepowered.asm.mixin.Mixin;
1215
import org.spongepowered.asm.mixin.Shadow;
1316
import org.spongepowered.asm.mixin.injection.At;
@@ -25,6 +28,8 @@ public abstract class EntityMixin {
2528
@Shadow
2629
public abstract Box getBoundingBox();
2730

31+
@Shadow @Nullable public abstract ItemEntity dropStack(ItemStack stack);
32+
2833
@Inject(at = @At("HEAD"), method = "remove")
2934
void linkart$removeLink(CallbackInfo callbackInformation) {
3035
if ((Entity) (Object) this instanceof AbstractMinecartEntity && !world.isClient()) {
@@ -55,4 +60,11 @@ public abstract class EntityMixin {
5560
}
5661
}
5762
}
63+
64+
@Inject(at = @At("HEAD"), method = "kill")
65+
private void linkart$kill(CallbackInfo ci) {
66+
if ((Object) this instanceof LinkableMinecart minecart) {
67+
this.dropStack(minecart.linkart$getLinkItem());
68+
}
69+
}
5870
}

0 commit comments

Comments
 (0)