CHAT GPT MOMENT
package nexis.lol.functions.impl.player;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.MinecraftClient;
import nexis.lol.core.ClientContainer;
import nexis.lol.core.NexisKernel;
import nexis.lol.events.api.EventHandler;
import nexis.lol.events.player.TickEvent;
import nexis.lol.functions.api.Category;
import nexis.lol.functions.api.Function;
import nexis.lol.functions.api.setting.implement.TextSetting;
import nexis.lol.ui.screen.UnHookGui;
import nexis.lol.ui.screen.clickgui.components.implement.settings.TextComponent;
import org.apache.commons.lang3.RandomStringUtils;
import java.io.File;
// Предполагается, что 'noNeedSounds' теперь находится в вашем главном классе
// import static nexis.lol.Client.noNeedSounds;
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UnHook extends Function {
// --- Настройки ---
// Я предполагаю, что у вас есть класс StringSetting в новой системе, аналогичный старому.
// Если его нет, вам нужно будет его создать или использовать альтернативу.
public TextSetting pathToMinecraft = new TextSetting("Path To Minecraft", "The path to the replaced minecraft folder").setText("C:/Users/YOUR_USER/AppData/Roaming/.minecraft").setMax(48);;
// --- Статические поля ---
@Getter
private static String code = RandomStringUtils.randomNumeric(1);
public static boolean unhooked = false;
public static File resourcePackFolder;
public UnHook() {
// Используем категорию MISC, так как Utilities, возможно, нет в новой системе ModuleCategory
super("UnHook", "UnHookMode", Category.PLAYER);
// Регистрируем настройку в модуле
setup(pathToMinecraft);
}
boolean shouldOpenGui = false;
@override
public void activate() { // БЫЛО: onEnable
unhooked = true;
shouldOpenGui = true;
// Поле noNeedSounds больше не используется, так как его нет в базовом классе
// Dev-режим. Предполагается, что у NexisKernel есть такой метод.
// Если нет, замените на свою реализацию.
for (Function module : NexisKernel.getInstance().getFunctionProvider().getFunctions()) {
if (module != this && module.isState()) { // Проверяем, включен ли модуль
module.setState(false); // Выключаем его
}
}
if (ClientContainer.isDevMode()) {
System.out.println("Unhook Code: " + code);
}
// Устанавливаем путь к папке с ресурс-паками
String minecraftPath = pathToMinecraft.getText();
if (minecraftPath != null && !minecraftPath.isEmpty()) {
resourcePackFolder = new File(minecraftPath, "resourcepacks");
}
// Отключаем все остальные модули
// Используем NexisKernel для доступа к менеджеру модулей
}
@override
public void deactivate() { // БЫЛО: onDisable
unhooked = false;
}
@EventHandler
public void onTick(TickEvent event) {
// Проверяем, активен ли наш модуль и установлен ли флаг
if (this.isState() && shouldOpenGui) {
// 3. Открываем GUI здесь, на следующем тике после активации
new UnHookGui().open();
// 4. Сбрасываем флаг, чтобы GUI не открывался каждый тик
shouldOpenGui = false;
}
}
}