Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Часть функционала RWAutoLes Baritone | Expensive 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
14 Янв 2025
Сообщения
5
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
привет пацаны сливаю вам авто работу дровосека под рв баритоном, не прям полезная функция ну кому надо тому надо.

ss -
(noad)

package windrest.modules.impl.misc;

import com.google.common.eventbus.Subscribe;
import windrest.events.EventUpdate;
import windrest.main.baritone.api.BaritoneAPI;
import windrest.modules.api.Category;
import windrest.modules.api.Function;
import windrest.modules.api.FunctionRegister;
import net.minecraft.item.AxeItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemTier;
import net.minecraft.item.TieredItem;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import windrest.util.math.main.StopWatch;

@FunctionRegister(name = "RWAutoLes", type = Category.Misc)
public class RWAutoLes extends Function {

private boolean sentWarp = false;
private final StopWatch warpTimer = new StopWatch();

@override
public void onEnable() {
super.onEnable();
sentWarp = false;
warpTimer.reset();

BaritoneAPI.getSettings().autoTool.value = false;
BaritoneAPI.getSettings().allowBreak.value = true;
BaritoneAPI.getSettings().mineScanDroppedItems.value = false;
}

@override
public void onDisable() {
super.onDisable();
BaritoneAPI.getProvider().getPrimaryBaritone().getMineProcess().cancel();
BaritoneAPI.getSettings().autoTool.value = true;
BaritoneAPI.getSettings().mineScanDroppedItems.value = true;
}

@Subscribe
public void onUpdate(EventUpdate e) {
if (mc.player == null || mc.world == null) return;

if (!sentWarp) {
mc.player.sendChatMessage("/warp les");
sentWarp = true;
warpTimer.reset();
return;
}

if (!warpTimer.isReached(3000)) return;

int bestSlot = getBestAxeSlot();
if (bestSlot == -1) {
print("RWAutoLes: нет подходящего топора.");
toggle();
return;
}

if (mc.player.inventory.currentItem != bestSlot) {
mc.player.inventory.currentItem = bestSlot;
mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
}

if (!BaritoneAPI.getProvider().getPrimaryBaritone().getMineProcess().isActive()) {
BaritoneAPI.getProvider().getPrimaryBaritone()
.getMineProcess()
.mineByName("birch_log");
}
}

private int getBestAxeSlot() {
int bestSlot = -1;
int bestLevel = -1;

for (int i = 0; i < 9; i++) {
ItemStack stack = mc.player.inventory.getStackInSlot(i);
if (stack.isEmpty()) continue;
if (!(stack.getItem() instanceof AxeItem)) continue;

TieredItem tiered = (TieredItem) stack.getItem();
if (tiered.getTier() == ItemTier.WOOD) continue;

int level = tiered.getTier().getHarvestLevel();
if (level > bestLevel) {
bestLevel = level;
bestSlot = i;
}
}
return bestSlot;
}
}
 
Последнее редактирование:
Назад
Сверху Снизу