private NumberSetting shotPower = new NumberSetting("Shot Power", 40.0f, 10.0f, 50F, 5.0f, () -> true);
public SuperBow() {
super("SuperBow", ModuleCategory.Combat);
addSettings(shotPower);
}
private void doShot() {
mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_SPRINTING));
int index = 0;
while ((float) index < shotPower.getCurrentValue()) {
mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 1.0E-10, mc.player.posZ, false));
mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY - 1.0E-10, mc.player.posZ, true));
++index;
}
}
@EventTarget
public void onSendPacket(EventSendPacket event) {
if (event.getPacket() instanceof CPacketPlayerDigging) {
ItemStack handStack;
CPacketPlayerDigging packet = (CPacketPlayerDigging) event.getPacket();
if (packet.getAction() == CPacketPlayerDigging.Action.RELEASE_USE_ITEM && !(handStack = mc.player.getHeldItem(EnumHand.MAIN_HAND)).isEmpty() && handStack.getItem() instanceof ItemBow) {
doShot();
}
}
}