Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Гайд Добавляем Теги "RW,HW,FT" к модулям

  • Автор темы Автор темы chooo
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
986
Реакции
16
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1.Создаем в functions/api Новый класс ServerGroup.java с содержимым ниже:

Код:
Expand Collapse Copy
package moonlight.solutions.functions.api;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.awt.*;

@Getter
@AllArgsConstructor
public enum ServerGroup {

    RW("RW", new Color(0xFFA600)),
    FT("FT", new Color(0xFF243D)),
    HW("HW", new Color(0x24E5FF)),
    NO("", new Color(0x0024E5FF, true));

    private final String name;
    private final Color color;



    public static Color getColorByGroupName(String groupName) {
        for (ServerGroup group : values()) {
            if (group.getName().equals(groupName)) {
                return group.getColor();
            }
        }
        return Color.WHITE;
    }
}
2.Регаем это всё чудо в FunctionRegister( у меня ModReg)

Код:
Expand Collapse Copy
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ModReg {
    String name();
    String desc() default "У этого модуля нет описания.";
    ServerGroup server();
    int key() default 0;
    ModGroup category();
}

3. Регаем в Module(у меня это Mod) Подсветил нужные для изменения строки

Код:
Expand Collapse Copy
    final String name;
    final String desc;
    final ServerGroup server;
    final ModGroup modGroup;
    boolean state;
    [USER=1132491]@setter[/USER]
    int bind;
    final List<Setting<?>> settings = new ObjectArrayList<>();

    final Animation animation = new Animation();

    public Mod() {
        this.name = getClass().getAnnotation(ModReg.class).name();
        this.desc = getClass().getAnnotation(ModReg.class).desc();
        this.server = getClass().getAnnotation(ModReg.class).server();
        this.modGroup = getClass().getAnnotation(ModReg.class).category();
        this.bind = getClass().getAnnotation(ModReg.class).key();
    }

    public Mod(String name, String desc, ModGroup modGroup, ServerGroup server) {
        this.name = name;
        this.modGroup = modGroup;
        this.desc = desc;
        this.server = server;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public List<Setting<?>> getAllValues() {
        java.util.ArrayList<Setting<?>> allValues = new java.util.ArrayList<>();

        settings.forEach(value -> {
            allValues.add((Setting<?>) settings);
        });

        return allValues;
    }

    public boolean onEnable() {
        animation.animate(1, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().register(this);
        return false;
    }

    public void onDisable() {
        animation.animate(0, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().unregister(this);
    }


    public final void toggle() {
        setState(!state, false);
    }

    public final void setState(boolean newState, boolean config) {
        if (state == newState) {
            return;
        }

        state = newState;

        try {
            if (state) {
                onEnable();
                Main.getInstance().getNotifyManager().add(0, new SuccessNotify("Модуль " + this.name + " был " + TextFormatting.GREEN + "включен.", 1000));
            } else {
                onDisable();
                Main.getInstance().getNotifyManager().add(0, new NoNotify("Модуль " + this.name + " был " + TextFormatting.RED + "выключен.", 1000));
            }
            if (!config) {
                ModMngr modMngr = Main.getInstance().getModMngr();
                ClientTune clientTune = modMngr.getClientTune();

                if (clientTune != null && clientTune.isState()) {
                    String fileName = clientTune.getFileName(state);
                    float volume = clientTune.volume.get();
                    ClientUtil.playSound(fileName, volume, false);
                }
            }
        } catch (Exception e) {
            handleException(state ? "onEnable" : "onDisable", e);
        }

    }

    private void handleException(String methodName, Exception e) {
        if (mc.player != null) {
            print("[" + name + "] Произошла ошибка в методе " + TextFormatting.RED + methodName + TextFormatting.WHITE
                    + "() Предоставьте это сообщение разработчику (discord: maniaqw): " + TextFormatting.GRAY + e.getMessage());
            e.printStackTrace();
        } else {
            System.out.println("[" + name + " Error" + methodName + "() Message: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
4.Далее идем в ModuleComponent и в методе отрисовки имён модулей добавляем строку
Код:
Expand Collapse Copy
ClientFonts.msBold[17].drawCenteredString(stack, mod.getServer().getName(), (int)( getX() + getWidth() / 2f) - 45, getY() + 7.5F, ServerGroup.getColorByGroupName(mod.getServer().getName()).getRGB());
Если у вас другая система шрифтов - перепишите под себя, оставте только перменную в getserver и getcolorByGroupByName

5.Далее самое весёлое, вам нужно во все свои модули добавить в аннотацию FunctionRegister новый параметр - server.
Вот так его нужно добавлять
Код:
Expand Collapse Copy
@ModReg(name = "WorldTweaks", category = ModGroup.Render, server = ServerGroup.NO)
Теперь по группам, Если группа NO - ничего не рендерится
RW - рендерится текст РВ
с фт и хв так же

что у нас вышло
1730544161227.png
 
1.Создаем в functions/api Новый класс ServerGroup.java с содержимым ниже:

Код:
Expand Collapse Copy
package moonlight.solutions.functions.api;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.awt.*;

@Getter
@AllArgsConstructor
public enum ServerGroup {

    RW("RW", new Color(0xFFA600)),
    FT("FT", new Color(0xFF243D)),
    HW("HW", new Color(0x24E5FF)),
    NO("", new Color(0x0024E5FF, true));

    private final String name;
    private final Color color;



    public static Color getColorByGroupName(String groupName) {
        for (ServerGroup group : values()) {
            if (group.getName().equals(groupName)) {
                return group.getColor();
            }
        }
        return Color.WHITE;
    }
}
2.Регаем это всё чудо в FunctionRegister( у меня ModReg)

Код:
Expand Collapse Copy
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ModReg {
    String name();
    String desc() default "У этого модуля нет описания.";
    ServerGroup server();
    int key() default 0;
    ModGroup category();
}

3. Регаем в Module(у меня это Mod) Подсветил нужные для изменения строки

Код:
Expand Collapse Copy
    final String name;
    final String desc;
    final ServerGroup server;
    final ModGroup modGroup;
    boolean state;
    [USER=1132491]@setter[/USER]
    int bind;
    final List<Setting<?>> settings = new ObjectArrayList<>();

    final Animation animation = new Animation();

    public Mod() {
        this.name = getClass().getAnnotation(ModReg.class).name();
        this.desc = getClass().getAnnotation(ModReg.class).desc();
        this.server = getClass().getAnnotation(ModReg.class).server();
        this.modGroup = getClass().getAnnotation(ModReg.class).category();
        this.bind = getClass().getAnnotation(ModReg.class).key();
    }

    public Mod(String name, String desc, ModGroup modGroup, ServerGroup server) {
        this.name = name;
        this.modGroup = modGroup;
        this.desc = desc;
        this.server = server;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public List<Setting<?>> getAllValues() {
        java.util.ArrayList<Setting<?>> allValues = new java.util.ArrayList<>();

        settings.forEach(value -> {
            allValues.add((Setting<?>) settings);
        });

        return allValues;
    }

    public boolean onEnable() {
        animation.animate(1, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().register(this);
        return false;
    }

    public void onDisable() {
        animation.animate(0, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().unregister(this);
    }


    public final void toggle() {
        setState(!state, false);
    }

    public final void setState(boolean newState, boolean config) {
        if (state == newState) {
            return;
        }

        state = newState;

        try {
            if (state) {
                onEnable();
                Main.getInstance().getNotifyManager().add(0, new SuccessNotify("Модуль " + this.name + " был " + TextFormatting.GREEN + "включен.", 1000));
            } else {
                onDisable();
                Main.getInstance().getNotifyManager().add(0, new NoNotify("Модуль " + this.name + " был " + TextFormatting.RED + "выключен.", 1000));
            }
            if (!config) {
                ModMngr modMngr = Main.getInstance().getModMngr();
                ClientTune clientTune = modMngr.getClientTune();

                if (clientTune != null && clientTune.isState()) {
                    String fileName = clientTune.getFileName(state);
                    float volume = clientTune.volume.get();
                    ClientUtil.playSound(fileName, volume, false);
                }
            }
        } catch (Exception e) {
            handleException(state ? "onEnable" : "onDisable", e);
        }

    }

    private void handleException(String methodName, Exception e) {
        if (mc.player != null) {
            print("[" + name + "] Произошла ошибка в методе " + TextFormatting.RED + methodName + TextFormatting.WHITE
                    + "() Предоставьте это сообщение разработчику (discord: maniaqw): " + TextFormatting.GRAY + e.getMessage());
            e.printStackTrace();
        } else {
            System.out.println("[" + name + " Error" + methodName + "() Message: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
4.Далее идем в ModuleComponent и в методе отрисовки имён модулей добавляем строку
Код:
Expand Collapse Copy
ClientFonts.msBold[17].drawCenteredString(stack, mod.getServer().getName(), (int)( getX() + getWidth() / 2f) - 45, getY() + 7.5F, ServerGroup.getColorByGroupName(mod.getServer().getName()).getRGB());
Если у вас другая система шрифтов - перепишите под себя, оставте только перменную в getserver и getcolorByGroupByName

5.Далее самое весёлое, вам нужно во все свои модули добавить в аннотацию FunctionRegister новый параметр - server.
Вот так его нужно добавлять
Код:
Expand Collapse Copy
@ModReg(name = "WorldTweaks", category = ModGroup.Render, server = ServerGroup.NO)
Теперь по группам, Если группа NO - ничего не рендерится
RW - рендерится текст РВ
с фт и хв так же

что у нас вышло
Посмотреть вложение 289329
можно было сделать легче, но что сделано то сделано, думаю многим зайдет
8/10
 
1.Создаем в functions/api Новый класс ServerGroup.java с содержимым ниже:

Код:
Expand Collapse Copy
package moonlight.solutions.functions.api;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.awt.*;

@Getter
@AllArgsConstructor
public enum ServerGroup {

    RW("RW", new Color(0xFFA600)),
    FT("FT", new Color(0xFF243D)),
    HW("HW", new Color(0x24E5FF)),
    NO("", new Color(0x0024E5FF, true));

    private final String name;
    private final Color color;



    public static Color getColorByGroupName(String groupName) {
        for (ServerGroup group : values()) {
            if (group.getName().equals(groupName)) {
                return group.getColor();
            }
        }
        return Color.WHITE;
    }
}
2.Регаем это всё чудо в FunctionRegister( у меня ModReg)

Код:
Expand Collapse Copy
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ModReg {
    String name();
    String desc() default "У этого модуля нет описания.";
    ServerGroup server();
    int key() default 0;
    ModGroup category();
}

3. Регаем в Module(у меня это Mod) Подсветил нужные для изменения строки

Код:
Expand Collapse Copy
    final String name;
    final String desc;
    final ServerGroup server;
    final ModGroup modGroup;
    boolean state;
    [USER=1132491]@setter[/USER]
    int bind;
    final List<Setting<?>> settings = new ObjectArrayList<>();

    final Animation animation = new Animation();

    public Mod() {
        this.name = getClass().getAnnotation(ModReg.class).name();
        this.desc = getClass().getAnnotation(ModReg.class).desc();
        this.server = getClass().getAnnotation(ModReg.class).server();
        this.modGroup = getClass().getAnnotation(ModReg.class).category();
        this.bind = getClass().getAnnotation(ModReg.class).key();
    }

    public Mod(String name, String desc, ModGroup modGroup, ServerGroup server) {
        this.name = name;
        this.modGroup = modGroup;
        this.desc = desc;
        this.server = server;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public List<Setting<?>> getAllValues() {
        java.util.ArrayList<Setting<?>> allValues = new java.util.ArrayList<>();

        settings.forEach(value -> {
            allValues.add((Setting<?>) settings);
        });

        return allValues;
    }

    public boolean onEnable() {
        animation.animate(1, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().register(this);
        return false;
    }

    public void onDisable() {
        animation.animate(0, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().unregister(this);
    }


    public final void toggle() {
        setState(!state, false);
    }

    public final void setState(boolean newState, boolean config) {
        if (state == newState) {
            return;
        }

        state = newState;

        try {
            if (state) {
                onEnable();
                Main.getInstance().getNotifyManager().add(0, new SuccessNotify("Модуль " + this.name + " был " + TextFormatting.GREEN + "включен.", 1000));
            } else {
                onDisable();
                Main.getInstance().getNotifyManager().add(0, new NoNotify("Модуль " + this.name + " был " + TextFormatting.RED + "выключен.", 1000));
            }
            if (!config) {
                ModMngr modMngr = Main.getInstance().getModMngr();
                ClientTune clientTune = modMngr.getClientTune();

                if (clientTune != null && clientTune.isState()) {
                    String fileName = clientTune.getFileName(state);
                    float volume = clientTune.volume.get();
                    ClientUtil.playSound(fileName, volume, false);
                }
            }
        } catch (Exception e) {
            handleException(state ? "onEnable" : "onDisable", e);
        }

    }

    private void handleException(String methodName, Exception e) {
        if (mc.player != null) {
            print("[" + name + "] Произошла ошибка в методе " + TextFormatting.RED + methodName + TextFormatting.WHITE
                    + "() Предоставьте это сообщение разработчику (discord: maniaqw): " + TextFormatting.GRAY + e.getMessage());
            e.printStackTrace();
        } else {
            System.out.println("[" + name + " Error" + methodName + "() Message: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
4.Далее идем в ModuleComponent и в методе отрисовки имён модулей добавляем строку
Код:
Expand Collapse Copy
ClientFonts.msBold[17].drawCenteredString(stack, mod.getServer().getName(), (int)( getX() + getWidth() / 2f) - 45, getY() + 7.5F, ServerGroup.getColorByGroupName(mod.getServer().getName()).getRGB());
Если у вас другая система шрифтов - перепишите под себя, оставте только перменную в getserver и getcolorByGroupByName

5.Далее самое весёлое, вам нужно во все свои модули добавить в аннотацию FunctionRegister новый параметр - server.
Вот так его нужно добавлять
Код:
Expand Collapse Copy
@ModReg(name = "WorldTweaks", category = ModGroup.Render, server = ServerGroup.NO)
Теперь по группам, Если группа NO - ничего не рендерится
RW - рендерится текст РВ
с фт и хв так же

что у нас вышло
Посмотреть вложение 289329
хз бля, можно было сделать в разы легче как и сказал тип сверху, но пойдет 9/10
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1.Создаем в functions/api Новый класс ServerGroup.java с содержимым ниже:

Код:
Expand Collapse Copy
package moonlight.solutions.functions.api;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.awt.*;

@Getter
@AllArgsConstructor
public enum ServerGroup {

    RW("RW", new Color(0xFFA600)),
    FT("FT", new Color(0xFF243D)),
    HW("HW", new Color(0x24E5FF)),
    NO("", new Color(0x0024E5FF, true));

    private final String name;
    private final Color color;



    public static Color getColorByGroupName(String groupName) {
        for (ServerGroup group : values()) {
            if (group.getName().equals(groupName)) {
                return group.getColor();
            }
        }
        return Color.WHITE;
    }
}
2.Регаем это всё чудо в FunctionRegister( у меня ModReg)

Код:
Expand Collapse Copy
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ModReg {
    String name();
    String desc() default "У этого модуля нет описания.";
    ServerGroup server();
    int key() default 0;
    ModGroup category();
}

3. Регаем в Module(у меня это Mod) Подсветил нужные для изменения строки

Код:
Expand Collapse Copy
    final String name;
    final String desc;
    final ServerGroup server;
    final ModGroup modGroup;
    boolean state;
    [USER=1132491]@setter[/USER]
    int bind;
    final List<Setting<?>> settings = new ObjectArrayList<>();

    final Animation animation = new Animation();

    public Mod() {
        this.name = getClass().getAnnotation(ModReg.class).name();
        this.desc = getClass().getAnnotation(ModReg.class).desc();
        this.server = getClass().getAnnotation(ModReg.class).server();
        this.modGroup = getClass().getAnnotation(ModReg.class).category();
        this.bind = getClass().getAnnotation(ModReg.class).key();
    }

    public Mod(String name, String desc, ModGroup modGroup, ServerGroup server) {
        this.name = name;
        this.modGroup = modGroup;
        this.desc = desc;
        this.server = server;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public List<Setting<?>> getAllValues() {
        java.util.ArrayList<Setting<?>> allValues = new java.util.ArrayList<>();

        settings.forEach(value -> {
            allValues.add((Setting<?>) settings);
        });

        return allValues;
    }

    public boolean onEnable() {
        animation.animate(1, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().register(this);
        return false;
    }

    public void onDisable() {
        animation.animate(0, 0.25f, Easings.CIRC_OUT);
        Main.getInstance().getEventBus().unregister(this);
    }


    public final void toggle() {
        setState(!state, false);
    }

    public final void setState(boolean newState, boolean config) {
        if (state == newState) {
            return;
        }

        state = newState;

        try {
            if (state) {
                onEnable();
                Main.getInstance().getNotifyManager().add(0, new SuccessNotify("Модуль " + this.name + " был " + TextFormatting.GREEN + "включен.", 1000));
            } else {
                onDisable();
                Main.getInstance().getNotifyManager().add(0, new NoNotify("Модуль " + this.name + " был " + TextFormatting.RED + "выключен.", 1000));
            }
            if (!config) {
                ModMngr modMngr = Main.getInstance().getModMngr();
                ClientTune clientTune = modMngr.getClientTune();

                if (clientTune != null && clientTune.isState()) {
                    String fileName = clientTune.getFileName(state);
                    float volume = clientTune.volume.get();
                    ClientUtil.playSound(fileName, volume, false);
                }
            }
        } catch (Exception e) {
            handleException(state ? "onEnable" : "onDisable", e);
        }

    }

    private void handleException(String methodName, Exception e) {
        if (mc.player != null) {
            print("[" + name + "] Произошла ошибка в методе " + TextFormatting.RED + methodName + TextFormatting.WHITE
                    + "() Предоставьте это сообщение разработчику (discord: maniaqw): " + TextFormatting.GRAY + e.getMessage());
            e.printStackTrace();
        } else {
            System.out.println("[" + name + " Error" + methodName + "() Message: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
4.Далее идем в ModuleComponent и в методе отрисовки имён модулей добавляем строку
Код:
Expand Collapse Copy
ClientFonts.msBold[17].drawCenteredString(stack, mod.getServer().getName(), (int)( getX() + getWidth() / 2f) - 45, getY() + 7.5F, ServerGroup.getColorByGroupName(mod.getServer().getName()).getRGB());
Если у вас другая система шрифтов - перепишите под себя, оставте только перменную в getserver и getcolorByGroupByName

5.Далее самое весёлое, вам нужно во все свои модули добавить в аннотацию FunctionRegister новый параметр - server.
Вот так его нужно добавлять
Код:
Expand Collapse Copy
@ModReg(name = "WorldTweaks", category = ModGroup.Render, server = ServerGroup.NO)
Теперь по группам, Если группа NO - ничего не рендерится
RW - рендерится текст РВ
с фт и хв так же

что у нас вышло
Посмотреть вложение 289329

можно было легче НАМНОГО,но пастерам пойдет
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
норм
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу