mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-20 17:20:12 +02:00
Fix multiple issues when the player doesn't have glowstone/anchors
This commit is contained in:
parent
b0936e2d06
commit
1d20073ec9
@ -218,7 +218,8 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!unchargedAnchors.isEmpty())
|
if(!unchargedAnchors.isEmpty()
|
||||||
|
&& hasItem(item -> item == Items.GLOWSTONE))
|
||||||
{
|
{
|
||||||
charge(unchargedAnchors);
|
charge(unchargedAnchors);
|
||||||
// TODO: option to wait until next tick?
|
// TODO: option to wait until next tick?
|
||||||
@ -226,13 +227,14 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!autoPlace.isChecked())
|
if(!autoPlace.isChecked()
|
||||||
|
|| !hasItem(item -> item == Items.RESPAWN_ANCHOR))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ArrayList<Entity> targets = getNearbyTargets();
|
ArrayList<Entity> targets = getNearbyTargets();
|
||||||
ArrayList<BlockPos> newAnchors = placeAnchorsNear(targets);
|
ArrayList<BlockPos> newAnchors = placeAnchorsNear(targets);
|
||||||
|
|
||||||
if(!newAnchors.isEmpty())
|
if(!newAnchors.isEmpty() && hasItem(item -> item == Items.GLOWSTONE))
|
||||||
{
|
{
|
||||||
// TODO: option to wait until next tick?
|
// TODO: option to wait until next tick?
|
||||||
charge(newAnchors);
|
charge(newAnchors);
|
||||||
@ -271,7 +273,8 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
if(isSneaking())
|
if(isSneaking())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
selectItem(item -> item != Items.GLOWSTONE);
|
if(!selectItem(item -> item != Items.GLOWSTONE))
|
||||||
|
return;
|
||||||
|
|
||||||
boolean shouldSwing = false;
|
boolean shouldSwing = false;
|
||||||
|
|
||||||
@ -288,7 +291,8 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
if(isSneaking())
|
if(isSneaking())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
selectItem(item -> item == Items.GLOWSTONE);
|
if(!selectItem(item -> item == Items.GLOWSTONE))
|
||||||
|
return;
|
||||||
|
|
||||||
boolean shouldSwing = false;
|
boolean shouldSwing = false;
|
||||||
|
|
||||||
@ -300,7 +304,7 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
MC.player.swingHand(Hand.MAIN_HAND);
|
MC.player.swingHand(Hand.MAIN_HAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectItem(Predicate<Item> item)
|
private boolean selectItem(Predicate<Item> item)
|
||||||
{
|
{
|
||||||
PlayerInventory inventory = MC.player.inventory;
|
PlayerInventory inventory = MC.player.inventory;
|
||||||
IClientPlayerInteractionManager im = IMC.getInteractionManager();
|
IClientPlayerInteractionManager im = IMC.getInteractionManager();
|
||||||
@ -309,7 +313,7 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
for(int slot = 0; slot < maxInvSlot; slot++)
|
for(int slot = 0; slot < maxInvSlot; slot++)
|
||||||
{
|
{
|
||||||
ItemStack stack = inventory.getStack(slot);
|
ItemStack stack = inventory.getStack(slot);
|
||||||
if(stack.isEmpty() || !item.test(stack.getItem()))
|
if(!item.test(stack.getItem()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(slot < 9)
|
if(slot < 9)
|
||||||
@ -327,8 +331,27 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
im.windowClick_PICKUP(inventory.selectedSlot + 36);
|
im.windowClick_PICKUP(inventory.selectedSlot + 36);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasItem(Predicate<Item> item)
|
||||||
|
{
|
||||||
|
PlayerInventory inventory = MC.player.inventory;
|
||||||
|
int maxInvSlot = takeItemsFrom.getSelected().maxInvSlot;
|
||||||
|
|
||||||
|
for(int slot = 0; slot < maxInvSlot; slot++)
|
||||||
|
{
|
||||||
|
ItemStack stack = inventory.getStack(slot);
|
||||||
|
if(!item.test(stack.getItem()))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean rightClickBlock(BlockPos pos)
|
private boolean rightClickBlock(BlockPos pos)
|
||||||
@ -401,9 +424,10 @@ public final class AnchorAuraHack extends Hack implements UpdateListener
|
|||||||
.getType() != HitResult.Type.MISS)
|
.getType() != HitResult.Type.MISS)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
faceBlocks.getSelected().face(hitVec);
|
if(!selectItem(item -> item == Items.RESPAWN_ANCHOR))
|
||||||
|
return false;
|
||||||
|
|
||||||
selectItem(item -> item == Items.RESPAWN_ANCHOR);
|
faceBlocks.getSelected().face(hitVec);
|
||||||
|
|
||||||
// place block
|
// place block
|
||||||
IMC.getInteractionManager().rightClickBlock(neighbor,
|
IMC.getInteractionManager().rightClickBlock(neighbor,
|
||||||
|
Loading…
Reference in New Issue
Block a user