Skip to content

Commit bc36209

Browse files
committed
1.20.5
1 parent 0e10435 commit bc36209

24 files changed

+95
-126
lines changed

PATCHED.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
| Basic | [MC-30391](https://bugs.mojang.com/browse/MC-30391) | Chickens, blazes and the wither emit particles when landing from a height, despite falling slowly |
4444
| Gameplay | [MC-31819](https://bugs.mojang.com/browse/MC-31819) | Hunger saturation depletes on Peaceful |
4545
| Basic | [MC-69216](https://bugs.mojang.com/browse/MC-69216) | Switching to spectator mode while fishing keeps rod cast |
46-
| Basic | [MC-72151](https://bugs.mojang.com/browse/MC-72151) | Snow Golem's snowballs damage wolves instead of pushing them |
4746
| Basic | [MC-81773](https://bugs.mojang.com/browse/MC-81773) | Bows and tridents drawn in survival/creative/adventure mode can be released in spectator mode |
4847
| Basic | [MC-88371](https://bugs.mojang.com/browse/MC-88371) | Ender Dragon flies down in the void when the exit portal is destroyed |
4948
| Basic | [MC-89146](https://bugs.mojang.com/browse/MC-89146) | Pistons forget update when being reloaded |
@@ -96,3 +95,5 @@ Bugs that this mod has patched but has been superseded by a vanilla update.
9695
| [MC-121772](https://bugs.mojang.com/browse/MC-121772) | Can't scroll while holding SHIFT on macOS | 23w31a |
9796
| [MC-140646](https://bugs.mojang.com/browse/MC-140646) | Text fields don't scroll while selecting text with Shift | 23w31a |
9897
| [MC-90084](https://bugs.mojang.com/browse/MC-90084) | When sitting in boats and boats with chest mobs legs penetrate the hull | 23w31a |
98+
| [MC-72151](https://bugs.mojang.com/browse/MC-72151) | Snow Golem's snowballs damage wolves instead of pushing them | 24w06a |
99+

build.gradle.kts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import ru.vyarus.gradle.plugin.python.task.PythonTask
44
plugins {
55
java
66

7-
id("fabric-loom") version "1.4.+"
7+
id("fabric-loom") version "1.6.+"
88

99
id("com.modrinth.minotaur") version "2.7.+"
1010
id("me.hypherionmc.cursegradle") version "2.+"
@@ -18,7 +18,7 @@ plugins {
1818
}
1919

2020
group = "dev.isxander"
21-
version = "1.20.4+1.1"
21+
version = "1.20.5+1.0"
2222

2323
loom {
2424
splitEnvironmentSourceSets()
@@ -94,7 +94,7 @@ dependencies {
9494
modImplementation(fabricApi.module("fabric-resource-loader-v0", fabricApiVersion))
9595
modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion")
9696

97-
"modClientImplementation"("dev.isxander.yacl:yet-another-config-lib-fabric:$yaclVersion") { exclude(module = "fabric-loader") }
97+
"modClientImplementation"("dev.isxander:yet-another-config-lib:$yaclVersion") { exclude(module = "fabric-loader") }
9898
"modClientImplementation"("com.terraformersmc:modmenu:$modMenuVersion") { exclude(module = "fabric-loader") }
9999

100100
"gametestImplementation"(sourceSets.main.get().output)
@@ -104,7 +104,7 @@ dependencies {
104104

105105
tasks.withType<JavaCompile> {
106106
options.encoding = "UTF-8"
107-
options.release.set(17)
107+
options.release.set(21)
108108
}
109109

110110
java {
@@ -177,7 +177,7 @@ if (hasProperty("curseforge.token")) {
177177
addGameVersion(minecraftVersion)
178178
addGameVersion("Fabric")
179179
addGameVersion("Quilt")
180-
addGameVersion("Java 17")
180+
addGameVersion("Java 21")
181181

182182
relations(closureOf<me.hypherionmc.cursegradle.CurseRelation> {
183183
requiredDependency("yacl")

gradle.properties

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ org.gradle.jvmargs=-Xmx4G
22
org.gradle.parallel=true
33
org.gradle.parallel.threads=2
44

5-
minecraftVersion=1.20.4
6-
fabricLoaderVersion=0.15.2
5+
minecraftVersion=1.20.5
6+
fabricLoaderVersion=0.15.10
77
qmBuild=0
88

99
# Libraries
10-
fabricApiVersion=0.91.3+1.20.4
11-
yaclVersion=3.3.1+1.20.4
12-
modMenuVersion=9.0.0-pre.1
10+
fabricApiVersion=0.97.2+1.20.5
11+
yaclVersion=3.4.0+1.20.5-fabric
12+
modMenuVersion=10.0.0-alpha.3
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

src/client/java/dev/isxander/debugify/client/mixins/basic/mc111516/PlayerRendererMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@BugFix(id = "MC-111516", category = FixCategory.BASIC, env = BugFix.Env.CLIENT)
1919
@Mixin(PlayerRenderer.class)
2020
public final class PlayerRendererMixin {
21-
@ModifyArg(method = "setupRotations(Lnet/minecraft/client/player/AbstractClientPlayer;Lcom/mojang/blaze3d/vertex/PoseStack;FFF)V", at = @At(value = "INVOKE", target = "java/lang/Math.acos(D)D"))
21+
@ModifyArg(method = "setupRotations(Lnet/minecraft/client/player/AbstractClientPlayer;Lcom/mojang/blaze3d/vertex/PoseStack;FFFF)V", at = @At(value = "INVOKE", target = "java/lang/Math.acos(D)D"))
2222
private double clampAcos(double a) {
2323
return Math.min(a, 1.0);
2424
}

src/client/java/dev/isxander/debugify/client/mixins/basic/mc116379/FishingHookRendererMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@BugFix(id = "MC-116379", category = FixCategory.BASIC, env = BugFix.Env.CLIENT)
1616
@Mixin(FishingHookRenderer.class)
1717
public class FishingHookRendererMixin {
18-
@ModifyVariable(method = "render", at = @At("STORE"), ordinal = 2)
18+
@ModifyVariable(method = "render(Lnet/minecraft/world/entity/projectile/FishingHook;FFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", at = @At("STORE"), ordinal = 2)
1919
private float modifyHandSwingProgress(float handSwingProgress, FishingHook bobber) {
2020
Player player = bobber.getPlayerOwner();
2121
int j = player.getMainArm() == HumanoidArm.RIGHT ? 1 : -1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package dev.isxander.debugify.client.mixins.basic.mc176559;
2+
3+
import net.minecraft.core.component.PatchedDataComponentMap;
4+
import net.minecraft.world.item.ItemStack;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.gen.Accessor;
7+
8+
@Mixin(ItemStack.class)
9+
public interface ItemStackAccessor {
10+
@Accessor
11+
PatchedDataComponentMap getComponents();
12+
}
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,47 @@
11
package dev.isxander.debugify.client.mixins.basic.mc176559;
22

3-
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
45
import dev.isxander.debugify.fixes.BugFix;
56
import dev.isxander.debugify.fixes.FixCategory;
6-
import org.spongepowered.asm.mixin.Final;
7+
import net.minecraft.core.component.PatchedDataComponentMap;
78
import org.spongepowered.asm.mixin.Mixin;
8-
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.Unique;
910
import org.spongepowered.asm.mixin.injection.At;
10-
import org.spongepowered.asm.mixin.injection.ModifyVariable;
11-
import org.spongepowered.asm.mixin.injection.Redirect;
12-
import org.spongepowered.asm.mixin.injection.Slice;
1311

14-
import java.util.HashSet;
1512
import java.util.Objects;
16-
import java.util.Set;
17-
import net.minecraft.client.Minecraft;
1813
import net.minecraft.client.multiplayer.MultiPlayerGameMode;
19-
import net.minecraft.nbt.CompoundTag;
2014
import net.minecraft.world.item.ItemStack;
2115

22-
@BugFix(id = "MC-176559", category = FixCategory.BASIC, env = BugFix.Env.CLIENT, modConflicts = "fabric-api")
23-
@Mixin(MultiPlayerGameMode.class)
16+
@BugFix(id = "MC-176559", category = FixCategory.BASIC, env = BugFix.Env.CLIENT)
17+
@Mixin(value = MultiPlayerGameMode.class, priority = 1010)
2418
public class MultiPlayerGameModeMixin {
25-
@Shadow private ItemStack destroyingItem;
26-
27-
@Shadow @Final private Minecraft minecraft;
28-
29-
@Redirect(method = "sameDestroyTarget", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;isSameItemSameTags(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/ItemStack;)Z"))
30-
private boolean isSameItem(ItemStack itemStack, ItemStack itemStack2) {
31-
return !canCauseBlockBreakReset(destroyingItem, minecraft.player.getMainHandItem());
19+
// Fabric API also redirects here. WrapOperation is compatible
20+
@WrapOperation(method = "sameDestroyTarget", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;isSameItemSameComponents(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/ItemStack;)Z"))
21+
private boolean isSameItem(ItemStack mainHandItem, ItemStack destroyingItem, Operation<Boolean> original) {
22+
return isSameItemSameComponentsIgnoringDurability(mainHandItem, destroyingItem);
3223
}
3324

34-
/**
35-
* Taken from <a href="https://github.com/MinecraftForge/MinecraftForge/blob/9d74a3520fa9d47db27fed74dcdd462956dd90ec/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java">MinecraftForge</a>
36-
* under LGPLv2.1 license
37-
* <br>
38-
* It has been adapted into a mixin with yarn mappings for use in fabric
39-
*
40-
* @author BlueAgent
41-
*/
42-
private boolean canCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) {
43-
try {
44-
if (!newStack.is(oldStack.getItem()))
45-
return true;
46-
47-
if (!newStack.isDamageableItem() || !oldStack.isDamageableItem())
48-
return !ItemStack.isSameItemSameTags(newStack, oldStack);
49-
50-
CompoundTag newTag = newStack.getTag();
51-
CompoundTag oldTag = oldStack.getTag();
52-
53-
if (newTag == null || oldTag == null)
54-
return !(newTag == null && oldTag == null);
55-
56-
Set<String> newKeys = new HashSet<>(newTag.getAllKeys());
57-
Set<String> oldKeys = new HashSet<>(oldTag.getAllKeys());
58-
59-
newKeys.remove(ItemStack.TAG_DAMAGE);
60-
oldKeys.remove(ItemStack.TAG_DAMAGE);
61-
62-
if (!newKeys.equals(oldKeys))
63-
return true;
64-
65-
return !newKeys.stream().allMatch(key -> Objects.equals(newTag.get(key), oldTag.get(key)));
66-
} catch (Throwable t) {
67-
t.printStackTrace();
25+
@Unique
26+
private boolean isSameItemSameComponentsIgnoringDurability(ItemStack stack1, ItemStack stack2) {
27+
if (!stack1.is(stack2.getItem())) {
6828
return false;
29+
} else if (stack1.isEmpty() && stack2.isEmpty()) {
30+
return true;
31+
} else {
32+
int damage1 = stack1.getDamageValue();
33+
int damage2 = stack2.getDamageValue();
34+
stack1.setDamageValue(0);
35+
stack2.setDamageValue(0);
36+
37+
PatchedDataComponentMap components1 = ((ItemStackAccessor) (Object) stack1).getComponents();
38+
PatchedDataComponentMap components2 = ((ItemStackAccessor) (Object) stack2).getComponents();
39+
boolean comparison = Objects.equals(components1, components2);
40+
41+
stack1.setDamageValue(damage1);
42+
stack2.setDamageValue(damage2);
43+
44+
return comparison;
6945
}
70-
7146
}
7247
}

src/client/java/dev/isxander/debugify/client/mixins/basic/mc215531/GuiMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
public class GuiMixin {
1616
@Shadow @Final private Minecraft minecraft;
1717

18-
@ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;is(Lnet/minecraft/world/item/Item;)Z"))
18+
@ModifyExpressionValue(method = "renderCameraOverlays", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;is(Lnet/minecraft/world/item/Item;)Z"))
1919
private boolean shouldRenderPumpkinOverlay(boolean pumpkinOnHead) {
2020
return pumpkinOnHead && !minecraft.player.isSpectator();
2121
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package dev.isxander.debugify.client.mixins.basic.mc217716;
22

3+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
34
import dev.isxander.debugify.fixes.BugFix;
45
import dev.isxander.debugify.fixes.FixCategory;
56
import net.minecraft.client.Minecraft;
7+
import net.minecraft.client.gui.GuiGraphics;
68
import net.minecraft.client.renderer.GameRenderer;
79
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
810
import org.spongepowered.asm.mixin.Final;
@@ -13,10 +15,10 @@
1315
@BugFix(id = "MC-217716", category = FixCategory.BASIC, env = BugFix.Env.CLIENT)
1416
@Mixin(GameRenderer.class)
1517
public class GameRendererMixin {
16-
@Shadow @Final private Minecraft minecraft;
18+
@Shadow @Final Minecraft minecraft;
1719

18-
@ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;hasEffect(Lnet/minecraft/world/effect/MobEffect;)Z"))
19-
private boolean shouldShowNauseaOverlay(boolean hasNausea) {
20-
return hasNausea && !minecraft.player.isSpectator();
20+
@WrapWithCondition(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GameRenderer;renderConfusionOverlay(Lnet/minecraft/client/gui/GuiGraphics;F)V"))
21+
private boolean shouldShowNauseaOverlay(GameRenderer instance, GuiGraphics guiGraphics, float f) {
22+
return !minecraft.player.isSpectator();
2123
}
2224
}

src/client/java/dev/isxander/debugify/client/mixins/basic/mc4490/FishingHookRendererMixin.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package dev.isxander.debugify.client.mixins.basic.mc4490;
22

3+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
34
import dev.isxander.debugify.fixes.BugFix;
45
import dev.isxander.debugify.fixes.FixCategory;
56
import net.minecraft.client.renderer.entity.FishingHookRenderer;
67
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.injection.At;
79
import org.spongepowered.asm.mixin.injection.Constant;
810
import org.spongepowered.asm.mixin.injection.ModifyConstant;
911

1012
@BugFix(id = "MC-4490", category = FixCategory.BASIC, env = BugFix.Env.CLIENT)
1113
@Mixin(FishingHookRenderer.class)
1214
public class FishingHookRendererMixin {
13-
@ModifyConstant(method = "render", constant = @Constant(floatValue = -0.1875F))
15+
@ModifyExpressionValue(method = "getPlayerHandPos", at = @At(value = "CONSTANT", args = "floatValue=-0.1875"))
1416
private float renderSneakOffset(float constant) {
1517
return -0.2875F;
1618
}

src/client/java/dev/isxander/debugify/client/mixins/basic/mc577/AbstractContainerScreenMixin.java

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.minecraft.world.inventory.Slot;
1111
import org.spongepowered.asm.mixin.Mixin;
1212
import org.spongepowered.asm.mixin.Shadow;
13+
import org.spongepowered.asm.mixin.Unique;
1314
import org.spongepowered.asm.mixin.injection.At;
1415
import org.spongepowered.asm.mixin.injection.Inject;
1516
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@@ -37,6 +38,7 @@ private void dropWithMouse(double mouseX, double mouseY, int button, CallbackInf
3738
}
3839
}
3940

41+
@Unique
4042
private boolean mouseInventoryClose(int button) {
4143
if (minecraft.options.keyInventory.matchesMouse(button)) {
4244
onClose();

src/client/java/dev/isxander/debugify/client/mixins/basic/mc90683/ClientPacketListenerMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dev.isxander.debugify.client.mixins.basic.mc90683;
22

3-
import com.llamalad7.mixinextras.injector.WrapWithCondition;
3+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
44
import dev.isxander.debugify.fixes.BugFix;
55
import dev.isxander.debugify.fixes.FixCategory;
66
import net.minecraft.client.multiplayer.ClientPacketListener;

src/client/resources/debugify.client.mixins.json

+3
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,8 @@
4545
"basic.mc93384.LivingEntityMixin",
4646
"gameplay.mc12829.LivingEntityMixin",
4747
"gameplay.mc12829.PlayerMixin"
48+
],
49+
"mixins": [
50+
"basic.mc176559.ItemStackAccessor"
4851
]
4952
}

src/main/java/dev/isxander/debugify/mixins/basic/mc124177/ServerPlayerMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ServerPlayerMixin(Level world, BlockPos pos, float yaw, GameProfile gameP
3030
@Inject(method = "teleportTo(Lnet/minecraft/server/level/ServerLevel;DDDFF)V", at = @At(value = "INVOKE", shift = At.Shift.AFTER, target = "Lnet/minecraft/server/players/PlayerList;sendAllPlayerInfo(Lnet/minecraft/server/level/ServerPlayer;)V"))
3131
public void afterCrossDimensionalTeleport(CallbackInfo cb) {
3232
for (MobEffectInstance eff : getActiveEffects()) {
33-
connection.send(new ClientboundUpdateMobEffectPacket(this.getId(), eff));
33+
connection.send(new ClientboundUpdateMobEffectPacket(this.getId(), eff, false));
3434
}
3535

3636
this.connection.send(new ClientboundSetExperiencePacket(experienceProgress, totalExperience, experienceLevel));

src/main/java/dev/isxander/debugify/mixins/basic/mc179072/SwellMixin.java renamed to src/main/java/dev/isxander/debugify/mixins/basic/mc179072/SwellGoalMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
@BugFix(id = "MC-179072", category = FixCategory.BASIC, env = BugFix.Env.SERVER)
1414
@Mixin(SwellGoal.class)
15-
public class SwellMixin {
15+
public class SwellGoalMixin {
1616
@Shadow private @Nullable LivingEntity target;
1717

1818
@ModifyExpressionValue(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/ai/sensing/Sensing;hasLineOfSight(Lnet/minecraft/world/entity/Entity;)Z"))

src/main/java/dev/isxander/debugify/mixins/basic/mc231743/FlowerPotBlockMixin.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import net.minecraft.core.BlockPos;
66
import net.minecraft.stats.Stats;
77
import net.minecraft.world.InteractionHand;
8-
import net.minecraft.world.InteractionResult;
8+
import net.minecraft.world.ItemInteractionResult;
99
import net.minecraft.world.entity.player.Player;
10+
import net.minecraft.world.item.ItemStack;
1011
import net.minecraft.world.level.Level;
1112
import net.minecraft.world.level.block.FlowerPotBlock;
1213
import net.minecraft.world.level.block.state.BlockState;
@@ -19,8 +20,8 @@
1920
@BugFix(id = "MC-231743", category = FixCategory.BASIC, env = BugFix.Env.SERVER)
2021
@Mixin(FlowerPotBlock.class)
2122
public class FlowerPotBlockMixin {
22-
@Inject(method = "use", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;)V"))
23-
private void onIncrementPottedPlantStat(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit, CallbackInfoReturnable<InteractionResult> cir) {
23+
@Inject(method = "useItemOn", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;awardStat(Lnet/minecraft/resources/ResourceLocation;)V"))
24+
private void onIncrementPottedPlantStat(ItemStack itemStack, BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult blockHitResult, CallbackInfoReturnable<ItemInteractionResult> cir) {
2425
player.awardStat(Stats.ITEM_USED.get(player.getItemInHand(hand).getItem()));
2526
}
2627
}

src/main/java/dev/isxander/debugify/mixins/basic/mc30391/LivingEntityMixin.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
@BugFix(id = "MC-30391", category = FixCategory.BASIC, env = BugFix.Env.SERVER)
1414
@Mixin(LivingEntity.class)
1515
public class LivingEntityMixin {
16-
@ModifyExpressionValue(method = "checkFallDamage", at = @At(value = "FIELD", target = "Lnet/minecraft/world/level/Level;isClientSide:Z", ordinal = 1))
17-
private boolean shouldntSpawnParticles(boolean isClient) {
16+
@ModifyExpressionValue(method = "checkFallDamage", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;isAir()Z"))
17+
private boolean shouldntSpawnParticles(boolean isAir) {
1818
LivingEntity self = (LivingEntity) (Object) this;
19-
return isClient || self instanceof Chicken || self instanceof Blaze || self instanceof WitherBoss;
19+
return isAir || self instanceof Chicken || self instanceof Blaze || self instanceof WitherBoss;
2020
}
2121
}

src/main/java/dev/isxander/debugify/mixins/basic/mc72151/WolfMixin.java

-31
This file was deleted.

0 commit comments

Comments
 (0)