Skip to content

Commit 5f35201

Browse files
committed
change: use inject instead of overriding
1 parent 43fbb0e commit 5f35201

File tree

4 files changed

+39
-35
lines changed

4 files changed

+39
-35
lines changed

src/main/java/club/sk1er/patcher/hooks/CropUtilities.java

+6-19
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
package club.sk1er.patcher.hooks;
22

3-
import club.sk1er.patcher.config.PatcherConfig;
43
import club.sk1er.patcher.mixins.accessors.BlockAccessor;
5-
import gg.essential.api.EssentialAPI;
6-
import gg.essential.api.utils.MinecraftUtils;
74
import net.minecraft.block.*;
85
import net.minecraft.block.state.IBlockState;
9-
import net.minecraft.client.Minecraft;
106
import net.minecraft.util.AxisAlignedBB;
117
import net.minecraft.util.BlockPos;
128
import net.minecraft.world.World;
139

1410
@SuppressWarnings("unused")
1511
public class CropUtilities {
1612
//#if MC==10809
17-
private static final Minecraft mc = Minecraft.getMinecraft();
18-
private static final MinecraftUtils minecraftUtils = EssentialAPI.getMinecraftUtil();
1913

2014
public static final AxisAlignedBB[] CARROT_POTATO_BOX = {
2115
new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.125D, 1.0D),
@@ -52,23 +46,16 @@ public static void updateCropsMaxY(World world, BlockPos pos, Block block) {
5246
final IBlockState blockState = world.getBlockState(pos);
5347
final Integer ageValue = blockState.getValue(BlockCrops.AGE);
5448
BlockAccessor accessor = (BlockAccessor) block;
55-
if (PatcherConfig.futureHitBoxes && (minecraftUtils.isHypixel() || mc.isIntegratedServerRunning())) {
56-
accessor.setMaxY(
57-
blockState.getBlock() instanceof BlockPotato || blockState.getBlock() instanceof BlockCarrot
58-
? CARROT_POTATO_BOX[ageValue].maxY
59-
: WHEAT_BOX[ageValue].maxY
60-
);
61-
return;
62-
}
63-
64-
accessor.setMaxY(0.25F);
49+
accessor.setMaxY(
50+
blockState.getBlock() instanceof BlockPotato || blockState.getBlock() instanceof BlockCarrot
51+
? CARROT_POTATO_BOX[ageValue].maxY
52+
: WHEAT_BOX[ageValue].maxY
53+
);
6554
}
6655

6756
public static void updateWartMaxY(World world, BlockPos pos, Block block) {
6857
((BlockAccessor) block).setMaxY(
69-
PatcherConfig.futureHitBoxes && (minecraftUtils.isHypixel() || mc.isIntegratedServerRunning())
70-
? NETHER_WART_BOX[world.getBlockState(pos).getValue(BlockNetherWart.AGE)].maxY
71-
: .25F
58+
NETHER_WART_BOX[world.getBlockState(pos).getValue(BlockNetherWart.AGE)].maxY
7259
);
7360
}
7461

Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
package club.sk1er.patcher.mixins.features.cropheight;
22

3+
import club.sk1er.patcher.config.PatcherConfig;
34
import club.sk1er.patcher.hooks.CropUtilities;
4-
import net.minecraft.block.BlockBush;
5+
import gg.essential.api.EssentialAPI;
6+
import gg.essential.universal.UMinecraft;
57
import net.minecraft.block.BlockCrops;
68
import net.minecraft.util.AxisAlignedBB;
79
import net.minecraft.util.BlockPos;
810
import net.minecraft.util.MovingObjectPosition;
911
import net.minecraft.util.Vec3;
1012
import net.minecraft.world.World;
1113
import org.spongepowered.asm.mixin.Mixin;
14+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1215

1316
@Mixin(BlockCrops.class)
14-
public abstract class BlockCropsMixin_CropHeight extends BlockBush {
17+
public abstract class BlockCropsMixin_CropHeight extends BlockMixin_CropHitbox {
1518

1619
//#if MC==10809
1720
@Override
18-
public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos) {
19-
CropUtilities.updateCropsMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
20-
return super.getSelectedBoundingBox(worldIn, pos);
21+
public void getSelectedBoundingBox(World worldIn, BlockPos pos, CallbackInfoReturnable<AxisAlignedBB> cir) {
22+
if (PatcherConfig.futureHitBoxes && (EssentialAPI.getMinecraftUtil().isHypixel() || UMinecraft.getMinecraft().isIntegratedServerRunning())) {
23+
CropUtilities.updateCropsMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
24+
}
2125
}
2226

2327
@Override
24-
public MovingObjectPosition collisionRayTrace(World worldIn, BlockPos pos, Vec3 start, Vec3 end) {
25-
CropUtilities.updateCropsMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
26-
return super.collisionRayTrace(worldIn, pos, start, end);
28+
public void collisionRayTrace(World worldIn, BlockPos pos, Vec3 start, Vec3 end, CallbackInfoReturnable<MovingObjectPosition> cir) {
29+
if (PatcherConfig.futureHitBoxes && (EssentialAPI.getMinecraftUtil().isHypixel() || UMinecraft.getMinecraft().isIntegratedServerRunning())) {
30+
CropUtilities.updateCropsMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
31+
}
2732
}
2833
//#endif
2934
}

src/main/java/club/sk1er/patcher/mixins/features/cropheight/BlockMixin_CropHitbox.java

+7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package club.sk1er.patcher.mixins.features.cropheight;
22

33
import net.minecraft.block.Block;
4+
import net.minecraft.util.AxisAlignedBB;
45
import net.minecraft.util.BlockPos;
56
import net.minecraft.util.MovingObjectPosition;
67
import net.minecraft.util.Vec3;
@@ -13,6 +14,12 @@
1314
@Mixin(Block.class)
1415
public class BlockMixin_CropHitbox {
1516
//#if MC==10809
17+
18+
@Inject(method = "getSelectedBoundingBox", at = @At("HEAD"))
19+
public void getSelectedBoundingBox(World worldIn, BlockPos pos, CallbackInfoReturnable<AxisAlignedBB> cir) {
20+
21+
}
22+
1623
@Inject(method = "collisionRayTrace", at = @At("HEAD"))
1724
public void collisionRayTrace(World worldIn, BlockPos pos, Vec3 start, Vec3 end, CallbackInfoReturnable<MovingObjectPosition> cir) {
1825

Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
package club.sk1er.patcher.mixins.features.cropheight;
22

3+
import club.sk1er.patcher.config.PatcherConfig;
34
import club.sk1er.patcher.hooks.CropUtilities;
4-
import net.minecraft.block.BlockBush;
5+
import gg.essential.api.EssentialAPI;
6+
import gg.essential.universal.UMinecraft;
57
import net.minecraft.block.BlockNetherWart;
68
import net.minecraft.util.AxisAlignedBB;
79
import net.minecraft.util.BlockPos;
810
import net.minecraft.util.MovingObjectPosition;
911
import net.minecraft.util.Vec3;
1012
import net.minecraft.world.World;
1113
import org.spongepowered.asm.mixin.Mixin;
14+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1215

1316
@Mixin(BlockNetherWart.class)
14-
public abstract class BlockNetherWartMixin_CropHeight extends BlockBush {
17+
public abstract class BlockNetherWartMixin_CropHeight extends BlockMixin_CropHitbox {
1518

1619
//#if MC==10809
1720
@Override
18-
public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos) {
19-
CropUtilities.updateWartMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
20-
return super.getSelectedBoundingBox(worldIn, pos);
21+
public void getSelectedBoundingBox(World worldIn, BlockPos pos, CallbackInfoReturnable<AxisAlignedBB> cir) {
22+
if (PatcherConfig.futureHitBoxes && (EssentialAPI.getMinecraftUtil().isHypixel() || UMinecraft.getMinecraft().isIntegratedServerRunning())) {
23+
CropUtilities.updateWartMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
24+
}
2125
}
2226

2327
@Override
24-
public MovingObjectPosition collisionRayTrace(World worldIn, BlockPos pos, Vec3 start, Vec3 end) {
25-
CropUtilities.updateWartMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
26-
return super.collisionRayTrace(worldIn, pos, start, end);
28+
public void collisionRayTrace(World worldIn, BlockPos pos, Vec3 start, Vec3 end, CallbackInfoReturnable<MovingObjectPosition> cir) {
29+
if (PatcherConfig.futureHitBoxes && (EssentialAPI.getMinecraftUtil().isHypixel() || UMinecraft.getMinecraft().isIntegratedServerRunning())) {
30+
CropUtilities.updateWartMaxY(worldIn, pos, worldIn.getBlockState(pos).getBlock());
31+
}
2732
}
2833
//#endif
2934
}

0 commit comments

Comments
 (0)