Исходник BaseFinder (Expensive 3.1 ready)

Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2023
Сообщения
25
Реакции[?]
0
Поинты[?]
3K
BaseFinder включает в себя добавление esp сундука и gps к ближайшему сундуку. (Работает на FunTime, HollyWorld и другие) Подойдет любителям анархии. Здесь используется поиск в области рендеринга, а не в области дистанции.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Rarchik:
package dev.rarchik.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import dev.rarchik.events.EventKey;
import dev.rarchik.events.WorldEvent;
import dev.rarchik.functions.api.Category;
import dev.rarchik.functions.api.Function;
import dev.rarchik.functions.api.FunctionRegister;
import dev.rarchik.functions.settings.impl.BindSetting;
import dev.rarchik.functions.settings.impl.BooleanSetting;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.minecart.ChestMinecartEntity;
import net.minecraft.tileentity.*;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.text.TextFormatting;
import net.optifine.render.RenderUtils;

import java.awt.*;
import java.util.HashMap;
import java.util.Map;

/*
* by rarchik
*/

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

    private BindSetting active = new BindSetting("Кнопка поиска", 0);

    public BooleanSetting notif = new BooleanSetting("Сообщение о сундуке", true);

    public BooleanSetting gps = new BooleanSetting("GPS на ближайший сундук", true);

    private final Map<TileEntityType<?>, Integer> tiles = new HashMap<>(Map.of(
            new ChestTileEntity().getType(), new Color(0, 187, 8).getRGB() //установка зеленого цвета есп, кто хочет может поменять
    ));

    public BaseFinder() {
        addSettings(this.active, this.notif, this.gps);
    }

    @Subscribe
    public void onKey(EventKey e) {
        if (e.getKey() == this.active.get()) {
            boolean foundChest = false;
            for (TileEntity t : mc.world.loadedTileEntityList) {
                if (t instanceof net.minecraft.tileentity.ChestTileEntity) {
                    int x = t.getPos().getX();
                    int y = t.getPos().getY();
                    int z = t.getPos().getZ();
                    double distanceSq = mc.player.getDistanceSq(x, y, z);
                    if (distanceSq < 20000.0D) {
                        foundChest = true;
                        if (this.notif.get())
                            print("" + TextFormatting.GREEN + "Возможно была найдена база");
                        BlockRayTraceResult rayTraceResult = new BlockRayTraceResult(new Vector3d(mc.player.getPosX(), mc.player.getPosY() - 1.0D, mc.player.getPosZ()), Direction.UP, new BlockPos(x, y, z), false);
                        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTraceResult);
                        if (this.gps.get()) {
                            mc.player.sendChatMessage(".gps add Chest " + x + " " + y + " " + z);
                        }
                    }
                }
            }
            if (!foundChest) {
                print("" + TextFormatting.RED + "В этом регионе не нашлось баз");
            }
        }
    }

    @Subscribe
    private void onRender(WorldEvent e) {
        for (TileEntity tile : mc.world.loadedTileEntityList) {
            if (!tiles.containsKey(tile.getType())) continue;

            BlockPos pos = tile.getPos();

            RenderUtils.drawBlockBox(pos, tiles.get(tile.getType()));
        }

        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof ChestMinecartEntity) {
                RenderUtils.drawBlockBox(entity.getPosition(), -1);
            }
        }
    }

    public void onDisable() {
    }
}
помогите плиз в дс: .prosto_ya (с точкой)
 
Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2023
Сообщения
25
Реакции[?]
0
Поинты[?]
3K
BaseFinder включает в себя добавление esp сундука и gps к ближайшему сундуку. (Работает на FunTime, HollyWorld и другие) Подойдет любителям анархии. Здесь используется поиск в области рендеринга, а не в области дистанции.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Rarchik:
package dev.rarchik.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import dev.rarchik.events.EventKey;
import dev.rarchik.events.WorldEvent;
import dev.rarchik.functions.api.Category;
import dev.rarchik.functions.api.Function;
import dev.rarchik.functions.api.FunctionRegister;
import dev.rarchik.functions.settings.impl.BindSetting;
import dev.rarchik.functions.settings.impl.BooleanSetting;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.minecart.ChestMinecartEntity;
import net.minecraft.tileentity.*;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.text.TextFormatting;
import net.optifine.render.RenderUtils;

import java.awt.*;
import java.util.HashMap;
import java.util.Map;

/*
* by rarchik
*/

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

    private BindSetting active = new BindSetting("Кнопка поиска", 0);

    public BooleanSetting notif = new BooleanSetting("Сообщение о сундуке", true);

    public BooleanSetting gps = new BooleanSetting("GPS на ближайший сундук", true);

    private final Map<TileEntityType<?>, Integer> tiles = new HashMap<>(Map.of(
            new ChestTileEntity().getType(), new Color(0, 187, 8).getRGB() //установка зеленого цвета есп, кто хочет может поменять
    ));

    public BaseFinder() {
        addSettings(this.active, this.notif, this.gps);
    }

    @Subscribe
    public void onKey(EventKey e) {
        if (e.getKey() == this.active.get()) {
            boolean foundChest = false;
            for (TileEntity t : mc.world.loadedTileEntityList) {
                if (t instanceof net.minecraft.tileentity.ChestTileEntity) {
                    int x = t.getPos().getX();
                    int y = t.getPos().getY();
                    int z = t.getPos().getZ();
                    double distanceSq = mc.player.getDistanceSq(x, y, z);
                    if (distanceSq < 20000.0D) {
                        foundChest = true;
                        if (this.notif.get())
                            print("" + TextFormatting.GREEN + "Возможно была найдена база");
                        BlockRayTraceResult rayTraceResult = new BlockRayTraceResult(new Vector3d(mc.player.getPosX(), mc.player.getPosY() - 1.0D, mc.player.getPosZ()), Direction.UP, new BlockPos(x, y, z), false);
                        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, rayTraceResult);
                        if (this.gps.get()) {
                            mc.player.sendChatMessage(".gps add Chest " + x + " " + y + " " + z);
                        }
                    }
                }
            }
            if (!foundChest) {
                print("" + TextFormatting.RED + "В этом регионе не нашлось баз");
            }
        }
    }

    @Subscribe
    private void onRender(WorldEvent e) {
        for (TileEntity tile : mc.world.loadedTileEntityList) {
            if (!tiles.containsKey(tile.getType())) continue;

            BlockPos pos = tile.getPos();

            RenderUtils.drawBlockBox(pos, tiles.get(tile.getType()));
        }

        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof ChestMinecartEntity) {
                RenderUtils.drawBlockBox(entity.getPosition(), -1);
            }
        }
    }

    public void onDisable() {
    }
}
что делать если функция не включается?
 
Сверху Снизу