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

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

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

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

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