Начинающий
- Статус
- Оффлайн
- Регистрация
- 22 Ноя 2025
- Сообщения
- 39
- Реакции
- 0
- Выберите загрузчик игры
- OptiFine
- Прочие моды
Салам югеймовцы сливаю вам AutoEventLoot
Сам ищет ивенты летает лутает и т.д все автоматизировано
Имеются недороботки кому нужно тот доработает
Взял идею у BritvaClient (noad)
Bypass Funtime на SpookyTime не тестил
ВНИМАНИЕ: Включаем в ElytraHelper автопрыжок, биндом свап элитр на h , ChestStealer биндим на k
Когда бот летает не трогайте нечего! а то будет как у меня и у меня феерверков было мало поэтому так быстро тепнулся назад
Не кидайте какашки в меня делал за пару часов еще это только вторая тема
Вам нужно: алмазка з5, 2 стака феерверков, 16 перек, золотая морковь, тотем, и обязательно ботинки на невесомость 4 да и все
И еще у вас должен быть донат игрок иначе не будет работать!
Как пользоваться: настраиваем фунцию: Высота полёта: в какой высоте он будет летать к ивенту, Высота на ивенте: в какой высоте ставить хом в ивенте, Макс. ожидание: ставим 5 мин
Одобрите тему пж <3
code:
Сам ищет ивенты летает лутает и т.д все автоматизировано
Имеются недороботки кому нужно тот доработает
Взял идею у BritvaClient (noad)
Bypass Funtime на SpookyTime не тестил
ВНИМАНИЕ: Включаем в ElytraHelper автопрыжок, биндом свап элитр на h , ChestStealer биндим на k
Когда бот летает не трогайте нечего! а то будет как у меня и у меня феерверков было мало поэтому так быстро тепнулся назад
Не кидайте какашки в меня делал за пару часов еще это только вторая тема
Вам нужно: алмазка з5, 2 стака феерверков, 16 перек, золотая морковь, тотем, и обязательно ботинки на невесомость 4 да и все
И еще у вас должен быть донат игрок иначе не будет работать!
Как пользоваться: настраиваем фунцию: Высота полёта: в какой высоте он будет летать к ивенту, Высота на ивенте: в какой высоте ставить хом в ивенте, Макс. ожидание: ставим 5 мин
Одобрите тему пж <3
Пожалуйста, авторизуйтесь для просмотра ссылки.
code:
Код:
/// Zalupa3001
@FunctionRegister(name = "AutoEventLoot", type = Category.Player)
public class AutoEventLoot extends Function {
private final SliderSetting travelHeightSetting = new SliderSetting("Высота полета (RT)", 400f, 200f, 1000f, 10f);
private final SliderSetting eventHeightSetting = new SliderSetting("Высота на ивенте", 150f, 100f, 300f, 5f);
private final SliderSetting maxWaitTimeSetting = new SliderSetting("Макс. ожидание (мин)", 4f, 1f, 30f, 1f);
private final BooleanSetting elytraHelper = new BooleanSetting("ElytraHelper", true);
private final List<String> ANARCHY_COMMANDS = Arrays.asList(
"/an102", "/an103", "/an104", "/an105", "/an106", "/an107",
"/an203", "/an204", "/an205", "/an206", "/an207", "/an208", "/an209", "/an210", "/an211", "/an212", "/an213", "/an214", "/an215", "/an216", "/an217", "/an218", "/an219", "/an220",
"/an302", "/an303", "/an304", "/an305", "/an306", "/an307", "/an308", "/an309", "/an310", "/an311",
"/an502", "/an503", "/an504", "/an505", "/an506", "/an507",
"/an602", "/an603"
);
private final List<String> IGNORED_EVENTS = Arrays.asList(
"Сундук смерти", "Адская резня", "Вулкан", "Загадочный маяк"
);
private enum State {
SEARCHING, WAITING_EVENT, FOUND_EVENT_WAIT, PRE_TRAVEL_RP, PREPARING_FLIGHT,
TAKING_OFF, TRAVELING, SETTING_HOME,
WAITING_OPEN,
EXECUTING_RTP,
RTP_WAIT,
HOME_AND_FLY,
OPENING_CHEST,
LOOTING, ESCAPING
}
private State state = State.SEARCHING;
private final StopWatch timer = new StopWatch();
private final StopWatch fireworkTimer = new StopWatch();
private final StopWatch swapTimer = new StopWatch();
private final StopWatch afkTimer = new StopWatch();
private int anarchyIndex = 0;
private BlockPos eventPos = null;
private long openTimeMillis = 0;
private boolean isHomeSet = false;
private boolean chestStealerToggled = false;
private boolean pearlThrown = false;
private boolean armorSwappedAfterPearl = false;
private boolean currentServerIsBad = false;
private boolean sentDelayCommand = false;
private boolean spawnCommandSent = false;
private boolean forceSkip = false;
private final Pattern COORD_PATTERN = Pattern.compile("(?:\\[|:)\\s*(-?\\d+)\\s+(-?\\d+)\\s+(-?\\d+)\\s*]?");
private final Pattern TIME_MIN = Pattern.compile("(\\d+)\\s*мин");
private final Pattern TIME_SEC = Pattern.compile("(\\d+)\\s*сек");
private final int KEY_K = GLFW.GLFW_KEY_K;
public AutoEventLoot() {
addSettings(travelHeightSetting, eventHeightSetting, maxWaitTimeSetting, elytraHelper);
}
@Override
public boolean onEnable() {
super.onEnable();
log(TextFormatting.GREEN + "Начинаю поиск ивентов...");
reset();
return false;
}
@Override
public void onDisable() {
super.onDisable();
if (chestStealerToggled) {
pressKey(KEY_K);
chestStealerToggled = false;
}
mc.gameSettings.keyBindUseItem.setPressed(false);
mc.gameSettings.keyBindForward.setPressed(false);
mc.gameSettings.keyBindBack.setPressed(false);
}
private void reset() {
state = State.SEARCHING;
anarchyIndex = 0;
eventPos = null;
openTimeMillis = 0;
isHomeSet = false;
chestStealerToggled = false;
pearlThrown = false;
armorSwappedAfterPearl = false;
currentServerIsBad = false;
sentDelayCommand = false;
spawnCommandSent = false;
forceSkip = false;
timer.reset();
}
@Subscribe
public void onUpdate(EventUpdate e) {
if (mc.player == null || mc.world == null) return;
if (mc.player.getHeldItemMainhand().isEmpty() || mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
ensureFireworks();
}
switch (state) {
case SEARCHING -> {
if (timer.isReached(2500) && !sentDelayCommand && !forceSkip) {
mc.player.sendChatMessage("/event delay");
sentDelayCommand = true;
}
if (timer.isReached(4500) || forceSkip) {
if (anarchyIndex >= ANARCHY_COMMANDS.size()) anarchyIndex = 0;
String cmd = ANARCHY_COMMANDS.get(anarchyIndex);
mc.player.sendChatMessage(cmd);
currentServerIsBad = false; sentDelayCommand = false; eventPos = null; forceSkip = false;
anarchyIndex++;
timer.reset();
}
}
case WAITING_EVENT -> {
if (timer.isReached(10000)) {
mc.player.sendChatMessage("/event delay");
timer.reset();
}
}
case FOUND_EVENT_WAIT -> {
if (timer.isReached(2000)) {
log("Появился ивент, летаю!");
mc.player.sendChatMessage("/rp");
state = State.PRE_TRAVEL_RP;
timer.reset();
}
}
case PRE_TRAVEL_RP -> {
if (timer.isReached(7500)) {
state = State.PREPARING_FLIGHT;
timer.reset();
}
}
case PREPARING_FLIGHT -> {
if (mc.player.inventory.armorItemInSlot(2).getItem() == Items.ELYTRA) {
} else {
if (swapTimer.isReached(500)) {
equipItem(Items.ELYTRA, 6);
swapTimer.reset();
return;
}
}
ensureFireworks();
if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
log("Нет фейерверков! Отключаюсь.");
toggle();
return;
}
state = State.TAKING_OFF;
timer.reset();
}
case TAKING_OFF -> {
mc.player.rotationPitch = -20;
if (elytraHelper.get()) {
if (mc.player.isElytraFlying()) {
if (fireworkTimer.isReached(500)) {
useFirework();
fireworkTimer.reset();
state = State.TRAVELING;
}
} else {
if (mc.player.isOnGround()) mc.player.jump();
}
} else {
if (mc.player.isOnGround()) {
mc.player.jump();
timer.reset();
} else if (mc.player.fallDistance > 0 && !mc.player.isElytraFlying()) {
if (timer.isReached(200)) {
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
timer.reset();
}
} else if (mc.player.isElytraFlying()) {
if (fireworkTimer.isReached(500)) {
useFirework();
fireworkTimer.reset();
state = State.TRAVELING;
}
}
}
}
case TRAVELING -> {
if (eventPos == null) {
state = State.WAITING_EVENT;
return;
}
if (!mc.player.isElytraFlying() && mc.player.isOnGround()) {
state = State.TAKING_OFF;
return;
}
if (mc.player.isElytraFlying() && fireworkTimer.isReached(7000)) {
useFirework();
fireworkTimer.reset();
}
double dist = Math.sqrt(mc.player.getDistanceSq(eventPos.getX(), mc.player.getPosY(), eventPos.getZ()));
float travelY = travelHeightSetting.get().floatValue();
float eventY = eventHeightSetting.get().floatValue();
lookAtPos(eventPos.getX(), eventPos.getZ());
if (dist > 100) {
if (mc.player.getPosY() < travelY) {
mc.player.rotationPitch = -15;
} else {
mc.player.rotationPitch = 0;
}
} else {
if (mc.player.getPosY() > eventY + 5) {
mc.player.rotationPitch = 20;
} else {
mc.player.sendChatMessage("/sethome Zalupa3001");
isHomeSet = true;
state = State.SETTING_HOME;
spawnCommandSent = false;
timer.reset();
}
}
}
case SETTING_HOME -> {
mc.player.rotationPitch = -90;
if (!mc.player.isElytraFlying() && !mc.player.isOnGround()) {
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
}
if (fireworkTimer.isReached(1000)) {
useFirework();
fireworkTimer.reset();
}
if (!spawnCommandSent) {
if (timer.isReached(500)) {
mc.player.sendChatMessage("/spawn");
spawnCommandSent = true;
timer.reset();
}
}
else {
if (timer.isReached(7500)) {
state = State.WAITING_OPEN;
mc.player.sendChatMessage("/event delay");
afkTimer.reset();
timer.reset();
}
}
}
case WAITING_OPEN -> {
handleAntiAFK();
if (timer.isReached(5000)) {
mc.player.sendChatMessage("/event delay");
timer.reset();
}
if (openTimeMillis > 0) {
long timeLeft = openTimeMillis - System.currentTimeMillis();
if (timeLeft <= 20000) {
state = State.EXECUTING_RTP;
mc.gameSettings.keyBindForward.setPressed(false);
mc.gameSettings.keyBindBack.setPressed(false);
timer.reset();
}
}
}
case EXECUTING_RTP -> {
mc.player.sendChatMessage("/rtp");
state = State.RTP_WAIT;
timer.reset();
}
case RTP_WAIT -> {
if (timer.isReached(8000)) {
mc.player.sendChatMessage("/home Zalupa3001");
state = State.HOME_AND_FLY;
pearlThrown = false;
armorSwappedAfterPearl = false;
timer.reset();
}
if (mc.player.inventory.armorItemInSlot(2).getItem() != Items.ELYTRA) {
if (swapTimer.isReached(500)) {
equipItem(Items.ELYTRA, 6);
swapTimer.reset();
}
}
}
case HOME_AND_FLY -> {
mc.player.rotationPitch = -90;
if (mc.player.isElytraFlying()) {
if (fireworkTimer.isReached(300)) {
useFirework();
fireworkTimer.reset();
}
} else {
if (mc.player.isOnGround()) {
mc.player.jump();
} else {
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
useFirework();
}
}
if (timer.isReached(6000) && !pearlThrown) {
throwPearlUp();
pearlThrown = true;
}
if (timer.isReached(6200) && pearlThrown && !armorSwappedAfterPearl) {
if (mc.player.inventory.armorItemInSlot(2).getItem() == Items.ELYTRA) {
int chestSlot = findArmor();
if (chestSlot != -1) {
equipItem(mc.player.inventory.getStackInSlot(chestSlot).getItem(), 6);
armorSwappedAfterPearl = true;
}
}
}
if (timer.isReached(7500)) {
state = State.OPENING_CHEST;
swapTimer.reset();
}
}
case OPENING_CHEST -> {
if (mc.player.inventory.armorItemInSlot(2).getItem() == Items.ELYTRA) {
if (swapTimer.isReached(200)) {
int chestSlot = findArmor();
if (chestSlot != -1) {
equipItem(mc.player.inventory.getStackInSlot(chestSlot).getItem(), 6);
}
swapTimer.reset();
}
}
if (!chestStealerToggled) {
pressKey(KEY_K);
chestStealerToggled = true;
}
BlockPos ec = findNearestBlock(Blocks.ENDER_CHEST, 5);
if (ec != null) {
lookAtPos(ec.getX() + 0.5, ec.getZ() + 0.5);
mc.player.rotationPitch = 50;
if (swapTimer.isReached(200)) {
BlockRayTraceResult ray = new BlockRayTraceResult(new Vector3d(ec.getX() + 0.5, ec.getY() + 0.5, ec.getZ() + 0.5), net.minecraft.util.Direction.UP, ec, false);
mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, ray);
mc.player.swingArm(Hand.MAIN_HAND);
swapTimer.reset();
}
}
if (mc.currentScreen != null) {
state = State.LOOTING;
timer.reset();
}
}
case LOOTING -> {
if (timer.isReached(10000)) {
if (!isPvpBossbarActive()) {
state = State.ESCAPING;
}
}
}
case ESCAPING -> {
mc.player.sendChatMessage("/delhome Zalupa3001");
mc.player.sendChatMessage("/hub");
log("Ивент окончен.");
pressKey(KEY_K);
chestStealerToggled = false;
toggle();
}
}
}
private void handleAntiAFK() {
if (afkTimer.isReached(30000)) {
if (!afkTimer.isReached(30500)) {
mc.gameSettings.keyBindForward.setPressed(true);
mc.gameSettings.keyBindBack.setPressed(false);
}
else if (!afkTimer.isReached(31000)) {
mc.gameSettings.keyBindForward.setPressed(false);
mc.gameSettings.keyBindBack.setPressed(true);
}
else {
mc.gameSettings.keyBindForward.setPressed(false);
mc.gameSettings.keyBindBack.setPressed(false);
afkTimer.reset();
}
} else {
mc.gameSettings.keyBindForward.setPressed(false);
mc.gameSettings.keyBindBack.setPressed(false);
}
}
private void ensureFireworks() {
int rocketSlot = findItem(Items.FIREWORK_ROCKET);
if (rocketSlot != -1) {
if (rocketSlot < 9) {
mc.player.inventory.currentItem = rocketSlot;
} else {
mc.playerController.windowClick(0, rocketSlot, mc.player.inventory.currentItem, 2, mc.player);
}
}
}
private void equipItem(net.minecraft.item.Item item, int armorSlot) {
int slot = findItem(item);
if (slot != -1) {
if (slot < 9) slot += 36;
mc.playerController.windowClick(0, slot, 0, ClickType.PICKUP, mc.player);
mc.playerController.windowClick(0, armorSlot, 0, ClickType.PICKUP, mc.player);
mc.playerController.windowClick(0, slot, 0, ClickType.PICKUP, mc.player);
}
}
private int findArmor() {
for (int i = 0; i < 36; i++) {
net.minecraft.item.ItemStack stack = mc.player.inventory.getStackInSlot(i);
if (stack.getItem() == Items.NETHERITE_CHESTPLATE || stack.getItem() == Items.DIAMOND_CHESTPLATE) {
return i < 9 ? i + 36 : i;
}
}
return -1;
}
private void useFirework() {
ensureFireworks();
if (mc.player.getHeldItemMainhand().getItem() == Items.FIREWORK_ROCKET) {
mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND);
}
}
private void pressKey(int keyCode) {
InputMappings.Input input = InputMappings.getInputByCode(keyCode, 0);
KeyBinding.setKeyBindState(input, true);
KeyBinding.onTick(input);
KeyBinding.setKeyBindState(input, false);
}
@Subscribe
public void onPacket(EventPacket e) {
if (e.getType() == EventPacket.Type.RECEIVE) {
IPacket<?> packet = e.getPacket();
if (packet instanceof SChatPacket) {
String text = ((SChatPacket) packet).getChatComponent().getString();
String rawText = TextFormatting.getTextWithoutFormattingCodes(text);
String cleanText = rawText.toLowerCase().replace("ё", "е");
if (currentServerIsBad && state == State.SEARCHING) return;
for (String badEvent : IGNORED_EVENTS) {
if (rawText.contains(badEvent)) {
log("Плохой ивент (" + badEvent + "), скипаю сервер.");
triggerSkip();
return;
}
}
if (cleanText.contains("сундуки открыты")) {
log("Сундуки уже открыты, скипаю сервер.");
triggerSkip();
return;
}
if (cleanText.contains("до следующего ивента") ||
cleanText.contains("начнется через") ||
cleanText.contains("до активации") ||
cleanText.contains("до открытия")) {
long millisToAdd = parseTime(cleanText);
if (millisToAdd > 0) {
if (cleanText.contains("сундуки закрыты") || cleanText.contains("до активации")) {
openTimeMillis = System.currentTimeMillis() + millisToAdd;
}
else if (state == State.SEARCHING) {
long minutesLeft = millisToAdd / 1000 / 60;
if (minutesLeft >= maxWaitTimeSetting.get()) {
triggerSkip(); return;
} else {
state = State.WAITING_EVENT;
log("Ивент найден! Ждем.");
}
}
}
}
Matcher coords = COORD_PATTERN.matcher(rawText);
if (coords.find()) {
if (currentServerIsBad) return;
int x = Integer.parseInt(coords.group(1));
int y = Integer.parseInt(coords.group(2));
int z = Integer.parseInt(coords.group(3));
eventPos = new BlockPos(x, y, z);
log("Координаты: " + x + " " + y + " " + z);
if (state == State.SEARCHING || state == State.WAITING_EVENT) {
state = State.FOUND_EVENT_WAIT;
timer.reset();
}
}
}
}
}
private void triggerSkip() {
currentServerIsBad = true;
state = State.SEARCHING;
forceSkip = true;
}
private long parseTime(String text) {
long totalMillis = 0;
Matcher mMin = TIME_MIN.matcher(text);
if (mMin.find()) totalMillis += Integer.parseInt(mMin.group(1)) * 60000L;
Matcher mSec = TIME_SEC.matcher(text);
if (mSec.find()) totalMillis += Integer.parseInt(mSec.group(1)) * 1000L;
return totalMillis;
}
private boolean isPvpBossbarActive() {
if (mc.ingameGUI.getBossOverlay() == null) return false;
try {
Field field = null;
try {
field = BossOverlayGui.class.getDeclaredField("mapBossInfos");
} catch (NoSuchFieldException e) {
field = BossOverlayGui.class.getDeclaredField("field_184060_g");
}
if (field != null) {
field.setAccessible(true);
Map<UUID, ClientBossInfo> map = (Map<UUID, ClientBossInfo>) field.get(mc.ingameGUI.getBossOverlay());
return map.values().stream()
.anyMatch(info -> TextFormatting.getTextWithoutFormattingCodes(info.getName().getString()).contains("PvP"));
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
private BlockPos findNearestBlock(net.minecraft.block.Block block, int range) {
BlockPos p = mc.player.getPosition();
for (int x = -range; x <= range; x++) {
for (int y = -range; y <= range; y++) {
for (int z = -range; z <= range; z++) {
BlockPos target = p.add(x, y, z);
if (mc.world.getBlockState(target).getBlock() == block) return target;
}
}
}
return null;
}
private int findItem(net.minecraft.item.Item item) {
for (int i = 0; i < 36; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == item) return i;
}
return -1;
}
private void lookAtPos(double x, double z) {
double dx = x - mc.player.getPosX();
double dz = z - mc.player.getPosZ();
float yaw = (float) (Math.atan2(dz, dx) * 180.0D / Math.PI) - 90.0F;
mc.player.rotationYaw = yaw;
}
private void throwPearlUp() {
int slot = findItem(Items.ENDER_PEARL);
if (slot != -1) {
float oldPitch = mc.player.rotationPitch;
mc.player.rotationPitch = -90;
int prevSlot = mc.player.inventory.currentItem;
if (slot < 9) {
mc.player.inventory.currentItem = slot;
} else {
mc.playerController.windowClick(0, slot, mc.player.inventory.currentItem, 2, mc.player);
}
mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND);
if (slot >= 9) {
mc.playerController.windowClick(0, slot, mc.player.inventory.currentItem, 2, mc.player);
} else {
mc.player.inventory.currentItem = prevSlot;
}
mc.player.rotationPitch = oldPitch;
}
}
private void log(String msg) {
if (mc.player != null) {
mc.player.sendMessage(new net.minecraft.util.text.StringTextComponent(
TextFormatting.GRAY + "[" + TextFormatting.RED + "Expensive AutoEventLoot" + TextFormatting.GRAY + "] " + TextFormatting.WHITE + msg
), mc.player.getUniqueID());
}
}
}