• Ну и что вы думаете? Мы взяли и создали свой собственный чат, с блекджеком и шлюхами, теперь все легенды в одном месте: даже те 1000 человек, которых мы забанили в старом чате 🫡 Будем публиковать там очень интересные подробности нового дизайна форума, oh yeah

    Вступай и становись легендой, пока это не стало поздно: жмякай на меня, ток не сильно(

Часть функционала BANNotifications | Expensive 3.1 base

Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
446
Реакции[?]
2
Поинты[?]
2K

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

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

Спасибо!

Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS:
1736028354009.png


BanNotification, опять мойтен слил какую то хуйню?:
package fgnepasti.wonderful.ui.display.notifutils;

import com.google.common.eventbus.Subscribe;
import fgnepasti.wonderful.events.EventPacket;
import fgnepasti.wonderful.functions.api.Category;
import fgnepasti.wonderful.functions.api.Function;
import fgnepasti.wonderful.functions.api.FunctionRegister;
import fgnepasti.wonderful.functions.api.Notificpenus;
import fgnepasti.wonderful.functions.settings.impl.BooleanSetting;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.network.play.server.SJoinGamePacket;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.event.HoverEvent;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "BanNotification", type = Category.Render)
public class BanNotif extends Function {
    public final BooleanSetting name = new BooleanSetting("Писать ник", true);
    public final BooleanSetting srok = new BooleanSetting("Писать срок", false);

    private final Pattern banMessagePattern = Pattern.compile("\\[♨] (\\S+) забанен \\[Подробнее\\]", 256);
    private final Pattern reasonPattern1 = Pattern.compile("Причина: Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern reasonPattern2 = Pattern.compile("Причина: \\[FunAC\\] Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern srokPattern = Pattern.compile("Окончание: (\\d{1,3} д|навсегда)", Pattern.CASE_INSENSITIVE);

    {
        addSettings(name, srok);
    }

    @Subscribe
    public void onReceivePacket(EventPacket e) {
        IPacket packet = e.getPacket();
        if (packet instanceof SChatPacket packet1) {
            String s1 = packet1.getChatComponent().getString();
            Matcher matcher = this.banMessagePattern.matcher(s1);
            if (matcher.find()) {
                try {
                    String bannedPlayer = "";
                    if (name.get()) {
                        bannedPlayer = matcher.group(1);
                    }
                    ITextComponent component = packet1.getChatComponent();
                    HoverEvent hoverEvent = component.getStyle().getHoverEvent();
                    String reason = " за неизвестно";
                    String dlina = " на неизвестно";

                    if (hoverEvent != null) {
                        String s = ((ITextComponent) hoverEvent.getParameter(HoverEvent.Action.SHOW_TEXT)).getString();
                        Matcher matcher1 = this.reasonPattern1.matcher(s);
                        Matcher matcher2 = this.reasonPattern2.matcher(s);
                        if (matcher1.find()) {
                            reason = " за " + matcher1.group(1);
                        } else if (matcher2.find()) {
                            reason = " от [FunAC] за " + matcher2.group(1);
                        }
                        Matcher matcher3 = srokPattern.matcher(s);
                        if (matcher3.find()) {
                            if (srok.get()) {
                                if (matcher3.group(1).equals("навсегда")) {
                                    dlina = " " + matcher3.group(1);
                                } else {
                                    dlina = " на " + matcher3.group(1);
                                }
                            } else {
                                dlina = "";
                            }
                        }
                    }
                    Notificpenus.NOTIFICATION_MANAGER.add(TextFormatting.RED + "" + TextFormatting.BOLD +
                            "БАН " + TextFormatting.WHITE + bannedPlayer + reason + dlina, "warn", 5);
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        }
    }
}

Держите, можно сказать чуть запоздалый подарок на нг, кому надо чуть подправит незначительные ошибки в коде, заменит вывод текста на print или свои системы, всем удачи
 
Начинающий
Статус
Оффлайн
Регистрация
9 Апр 2024
Сообщения
78
Реакции[?]
1
Поинты[?]
0
ап, легенда, сделай нотифи которые будут отображать какие функции включены
 
Начинающий
Статус
Оффлайн
Регистрация
26 Дек 2023
Сообщения
1,194
Реакции[?]
14
Поинты[?]
6K
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
package fgnepasti.wonderful.ui.display.notifutils;

import com.google.common.eventbus.Subscribe;
import fgnepasti.wonderful.events.EventPacket;
import fgnepasti.wonderful.functions.api.Category;
import fgnepasti.wonderful.functions.api.Function;
import fgnepasti.wonderful.functions.api.FunctionRegister;
import fgnepasti.wonderful.functions.api.Notificpenus;
import fgnepasti.wonderful.functions.settings.impl.BooleanSetting;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.network.play.server.SJoinGamePacket;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.event.HoverEvent;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "BanNotification", type = Category.Render)
public class BanNotif extends Function {
    public final BooleanSetting name = new BooleanSetting("Писать ник", true);
    public final BooleanSetting srok = new BooleanSetting("Писать срок", false);

    private final Pattern banMessagePattern = Pattern.compile("\\[♨] (\\S+) забанен \\[Подробнее\\]", 256);
    private final Pattern reasonPattern1 = Pattern.compile("Причина: Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern reasonPattern2 = Pattern.compile("Причина: \\[FunAC\\] Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern srokPattern = Pattern.compile("Окончание: (\\d{1,3} д|навсегда)", Pattern.CASE_INSENSITIVE);

    {
        addSettings(name, srok);
    }

    @Subscribe
    public void onReceivePacket(EventPacket e) {
        IPacket packet = e.getPacket();
        if (packet instanceof SChatPacket packet1) {
            String s1 = packet1.getChatComponent().getString();
            Matcher matcher = this.banMessagePattern.matcher(s1);
            if (matcher.find()) {
                try {
                    String bannedPlayer = "";
                    if (name.get()) {
                        bannedPlayer = matcher.group(1);
                    }
                    ITextComponent component = packet1.getChatComponent();
                    HoverEvent hoverEvent = component.getStyle().getHoverEvent();
                    String reason = " за неизвестно";
                    String dlina = " на неизвестно";

                    if (hoverEvent != null) {
                        String s = ((ITextComponent) hoverEvent.getParameter(HoverEvent.Action.SHOW_TEXT)).getString();
                        Matcher matcher1 = this.reasonPattern1.matcher(s);
                        Matcher matcher2 = this.reasonPattern2.matcher(s);
                        if (matcher1.find()) {
                            reason = " за " + matcher1.group(1);
                        } else if (matcher2.find()) {
                            reason = " от [FunAC] за " + matcher2.group(1);
                        }
                        Matcher matcher3 = srokPattern.matcher(s);
                        if (matcher3.find()) {
                            if (srok.get()) {
                                if (matcher3.group(1).equals("навсегда")) {
                                    dlina = " " + matcher3.group(1);
                                } else {
                                    dlina = " на " + matcher3.group(1);
                                }
                            } else {
                                dlina = "";
                            }
                        }
                    }
                    Notificpenus.NOTIFICATION_MANAGER.add(TextFormatting.RED + "" + TextFormatting.BOLD +
                            "БАН " + TextFormatting.WHITE + bannedPlayer + reason + dlina, "warn", 5);
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        }
    }
}
Держите, можно сказать чуть запоздалый подарок на нг, кому надо чуть подправит незначительные ошибки в коде, заменит вывод текста на print или свои системы, всем удачи
спасiбо поiду пастить в своi спотти клиэнд
 
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
446
Реакции[?]
2
Поинты[?]
2K
Он делал, только там ни у кого не робило
работало, ну лан
ап, легенда, сделай нотифи которые будут отображать какие функции включены
типо что бы писало KillAura включен/выключен? если да то просто в Function метод замени

Java:
public final void toggle() {

        if (Function.mc.player == null || Function.mc.world == null) {

            return;

        }


        boolean bl = this.state = !this.state;

        if (!this.state) {

            this.onDisable();

            Notificpenus.NOTIFICATION_MANAGER.add(this.name + " выключен.", "", 2);

        } else {

            this.onEnable();

            Notificpenus.NOTIFICATION_MANAGER.add(this.name + " включен.", "", 2);

        }

        FunctionRegistry functionRegistry = Wonderful.getInstance().getFunctionRegistry();

        ClientSounds clientSounds = functionRegistry.getClientSounds();

        if (clientSounds != null && clientSounds.isState()) {

            String fileName = clientSounds.getFileName(this.state);

            float volume = ((Float) clientSounds.volume.get()).floatValue();

            ClientUtil.playSound(fileName, volume, false);

        }

    }
 
Начинающий
Статус
Оффлайн
Регистрация
9 Апр 2024
Сообщения
78
Реакции[?]
1
Поинты[?]
0
работало, ну лан

типо что бы писало KillAura включен/выключен? если да то просто в Function метод замени

Java:
public final void toggle() {

        if (Function.mc.player == null || Function.mc.world == null) {

            return;

        }


        boolean bl = this.state = !this.state;

        if (!this.state) {

            this.onDisable();

            Notificpenus.NOTIFICATION_MANAGER.add(this.name + " выключен.", "", 2);

        } else {

            this.onEnable();

            Notificpenus.NOTIFICATION_MANAGER.add(this.name + " включен.", "", 2);

        }

        FunctionRegistry functionRegistry = Wonderful.getInstance().getFunctionRegistry();

        ClientSounds clientSounds = functionRegistry.getClientSounds();

        if (clientSounds != null && clientSounds.isState()) {

            String fileName = clientSounds.getFileName(this.state);

            float volume = ((Float) clientSounds.volume.get()).floatValue();

            ClientUtil.playSound(fileName, volume, false);

        }

    }
дай Notificpenus
 
Начинающий
Статус
Оффлайн
Регистрация
8 Мар 2024
Сообщения
731
Реакции[?]
3
Поинты[?]
3K
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
package fgnepasti.wonderful.ui.display.notifutils;

import com.google.common.eventbus.Subscribe;
import fgnepasti.wonderful.events.EventPacket;
import fgnepasti.wonderful.functions.api.Category;
import fgnepasti.wonderful.functions.api.Function;
import fgnepasti.wonderful.functions.api.FunctionRegister;
import fgnepasti.wonderful.functions.api.Notificpenus;
import fgnepasti.wonderful.functions.settings.impl.BooleanSetting;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.network.play.server.SJoinGamePacket;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.event.HoverEvent;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "BanNotification", type = Category.Render)
public class BanNotif extends Function {
    public final BooleanSetting name = new BooleanSetting("Писать ник", true);
    public final BooleanSetting srok = new BooleanSetting("Писать срок", false);

    private final Pattern banMessagePattern = Pattern.compile("\\[♨] (\\S+) забанен \\[Подробнее\\]", 256);
    private final Pattern reasonPattern1 = Pattern.compile("Причина: Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern reasonPattern2 = Pattern.compile("Причина: \\[FunAC\\] Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern srokPattern = Pattern.compile("Окончание: (\\d{1,3} д|навсегда)", Pattern.CASE_INSENSITIVE);

    {
        addSettings(name, srok);
    }

    @Subscribe
    public void onReceivePacket(EventPacket e) {
        IPacket packet = e.getPacket();
        if (packet instanceof SChatPacket packet1) {
            String s1 = packet1.getChatComponent().getString();
            Matcher matcher = this.banMessagePattern.matcher(s1);
            if (matcher.find()) {
                try {
                    String bannedPlayer = "";
                    if (name.get()) {
                        bannedPlayer = matcher.group(1);
                    }
                    ITextComponent component = packet1.getChatComponent();
                    HoverEvent hoverEvent = component.getStyle().getHoverEvent();
                    String reason = " за неизвестно";
                    String dlina = " на неизвестно";

                    if (hoverEvent != null) {
                        String s = ((ITextComponent) hoverEvent.getParameter(HoverEvent.Action.SHOW_TEXT)).getString();
                        Matcher matcher1 = this.reasonPattern1.matcher(s);
                        Matcher matcher2 = this.reasonPattern2.matcher(s);
                        if (matcher1.find()) {
                            reason = " за " + matcher1.group(1);
                        } else if (matcher2.find()) {
                            reason = " от [FunAC] за " + matcher2.group(1);
                        }
                        Matcher matcher3 = srokPattern.matcher(s);
                        if (matcher3.find()) {
                            if (srok.get()) {
                                if (matcher3.group(1).equals("навсегда")) {
                                    dlina = " " + matcher3.group(1);
                                } else {
                                    dlina = " на " + matcher3.group(1);
                                }
                            } else {
                                dlina = "";
                            }
                        }
                    }
                    Notificpenus.NOTIFICATION_MANAGER.add(TextFormatting.RED + "" + TextFormatting.BOLD +
                            "БАН " + TextFormatting.WHITE + bannedPlayer + reason + dlina, "warn", 5);
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        }
    }
}
Держите, можно сказать чуть запоздалый подарок на нг, кому надо чуть подправит незначительные ошибки в коде, заменит вывод текста на print или свои системы, всем удачи
спорная функция,как будто ваще нахуй не надо
 
Начинающий
Статус
Оффлайн
Регистрация
16 Дек 2023
Сообщения
584
Реакции[?]
9
Поинты[?]
5K
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
package fgnepasti.wonderful.ui.display.notifutils;

import com.google.common.eventbus.Subscribe;
import fgnepasti.wonderful.events.EventPacket;
import fgnepasti.wonderful.functions.api.Category;
import fgnepasti.wonderful.functions.api.Function;
import fgnepasti.wonderful.functions.api.FunctionRegister;
import fgnepasti.wonderful.functions.api.Notificpenus;
import fgnepasti.wonderful.functions.settings.impl.BooleanSetting;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.network.play.server.SJoinGamePacket;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.event.HoverEvent;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "BanNotification", type = Category.Render)
public class BanNotif extends Function {
    public final BooleanSetting name = new BooleanSetting("Писать ник", true);
    public final BooleanSetting srok = new BooleanSetting("Писать срок", false);

    private final Pattern banMessagePattern = Pattern.compile("\\[♨] (\\S+) забанен \\[Подробнее\\]", 256);
    private final Pattern reasonPattern1 = Pattern.compile("Причина: Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern reasonPattern2 = Pattern.compile("Причина: \\[FunAC\\] Пункт (\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+)", 256);
    private final Pattern srokPattern = Pattern.compile("Окончание: (\\d{1,3} д|навсегда)", Pattern.CASE_INSENSITIVE);

    {
        addSettings(name, srok);
    }

    @Subscribe
    public void onReceivePacket(EventPacket e) {
        IPacket packet = e.getPacket();
        if (packet instanceof SChatPacket packet1) {
            String s1 = packet1.getChatComponent().getString();
            Matcher matcher = this.banMessagePattern.matcher(s1);
            if (matcher.find()) {
                try {
                    String bannedPlayer = "";
                    if (name.get()) {
                        bannedPlayer = matcher.group(1);
                    }
                    ITextComponent component = packet1.getChatComponent();
                    HoverEvent hoverEvent = component.getStyle().getHoverEvent();
                    String reason = " за неизвестно";
                    String dlina = " на неизвестно";

                    if (hoverEvent != null) {
                        String s = ((ITextComponent) hoverEvent.getParameter(HoverEvent.Action.SHOW_TEXT)).getString();
                        Matcher matcher1 = this.reasonPattern1.matcher(s);
                        Matcher matcher2 = this.reasonPattern2.matcher(s);
                        if (matcher1.find()) {
                            reason = " за " + matcher1.group(1);
                        } else if (matcher2.find()) {
                            reason = " от [FunAC] за " + matcher2.group(1);
                        }
                        Matcher matcher3 = srokPattern.matcher(s);
                        if (matcher3.find()) {
                            if (srok.get()) {
                                if (matcher3.group(1).equals("навсегда")) {
                                    dlina = " " + matcher3.group(1);
                                } else {
                                    dlina = " на " + matcher3.group(1);
                                }
                            } else {
                                dlina = "";
                            }
                        }
                    }
                    Notificpenus.NOTIFICATION_MANAGER.add(TextFormatting.RED + "" + TextFormatting.BOLD +
                            "БАН " + TextFormatting.WHITE + bannedPlayer + reason + dlina, "warn", 5);
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        }
    }
}
Держите, можно сказать чуть запоздалый подарок на нг, кому надо чуть подправит незначительные ошибки в коде, заменит вывод текста на print или свои системы, всем удачи
Буквально перед уездом позавчера это сделал 0_0…И там можно обойтись без твоих патернов и гетать прям с сообщения причину бана.
 
Сверху Снизу