Skip to content

Commit 34e2f8c

Browse files
committed
Fixed crash on edge cases where the player suddenly doesn't have an item in it's main hand. (Fixes #1)
The 'blocking' attribute should update correctly for shields now.
1 parent 3323b9c commit 34e2f8c

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

Diff for: main-src/eu/ha3/matmos/game/data/modules/L__legacy_column.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ protected void doProcess()
2929

3030
setValue("y-1_as_number", MAtmosUtility.legacyOf(MAtmosUtility.getBlockAt(x, y - 1, z)));
3131
setValue("y-2_as_number", MAtmosUtility.legacyOf(MAtmosUtility.getBlockAt(x, y - 2, z)));
32-
setValue("y0_as_number", MAtmosUtility.legacyOf(MAtmosUtility.getBlockAt(x, y + 0, z)));
32+
setValue("y0_as_number", MAtmosUtility.legacyOf(MAtmosUtility.getBlockAt(x, y, z)));
3333
setValue("y1_as_number", MAtmosUtility.legacyOf(MAtmosUtility.getBlockAt(x, y + 1, z)));
3434
}
3535
}

Diff for: main-src/eu/ha3/matmos/game/data/modules/M__ply_general.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import net.minecraft.client.Minecraft;
1010
import net.minecraft.client.entity.EntityPlayerSP;
1111
import net.minecraft.item.ItemShield;
12+
import net.minecraft.item.ItemStack;
1213

1314
/*
1415
--filenotes-placeholder
@@ -45,8 +46,11 @@ protected void doProcess()
4546
throw new RuntimeException(e);
4647
}
4748
setValue("on_ladder", player.isOnLadder());
48-
49-
setValue("blocking", player.isHandActive() && player.getHeldItemOffhand().getItem() instanceof ItemShield);
49+
50+
ItemStack held = player.getHeldItemMainhand();
51+
if (held == null) held = player.getHeldItemOffhand();
52+
53+
setValue("blocking", player.isHandActive() && held != null && held.getItem() instanceof ItemShield);
5054
setValue("sprinting", player.isSprinting());
5155
setValue("sneaking", player.isSneaking());
5256
setValue("airborne", player.isAirBorne);

Diff for: main-src/eu/ha3/matmos/game/data/modules/S__ply_hitscan.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,13 @@ protected void doProcess()
4848
setValue("mouse_over_something", mc.objectMouseOver.typeOfHit != Type.MISS);
4949
setValue("mouse_over_what", this.equiv.get(mc.objectMouseOver.typeOfHit));
5050
// dag edit -> getBlockPos().get..()
51-
setValue(
52-
"block",
51+
setValue("block",
5352
mc.objectMouseOver.typeOfHit == Type.BLOCK ? MAtmosUtility.getNameAt(
5453
mc.objectMouseOver.getBlockPos().getX(), mc.objectMouseOver.getBlockPos().getY(),
5554
mc.objectMouseOver.getBlockPos().getZ(),
5655
MODULE_CONSTANTS.NO_BLOCK_OUT_OF_BOUNDS) : MODULE_CONSTANTS.NO_BLOCK_IN_THIS_CONTEXT);
5756
// dag edit -> getBlockPos().get..()
58-
setValue(
59-
"meta",
57+
setValue("meta",
6058
mc.objectMouseOver.typeOfHit == Type.BLOCK ? MAtmosUtility.getMetaAsStringAt(
6159
mc.objectMouseOver.getBlockPos().getX(), mc.objectMouseOver.getBlockPos().getY(),
6260
mc.objectMouseOver.getBlockPos().getZ(),

0 commit comments

Comments
 (0)