Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

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

  • Автор темы Автор темы Moyten
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
516
Реакции
3
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS:
1736028354009.png


BanNotification, опять мойтен слил какую то хуйню?:
Expand Collapse Copy
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 или свои системы, всем удачи
 
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
Expand Collapse Copy
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 спотти клиэнд
 
Он делал, только там ни у кого не робило
работало, ну лан
ап, легенда, сделай нотифи которые будут отображать какие функции включены
типо что бы писало KillAura включен/выключен? если да то просто в Function метод замени

Java:
Expand Collapse Copy
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);

        }

    }
 
работало, ну лан

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

Java:
Expand Collapse Copy
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
 
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
Expand Collapse Copy
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 или свои системы, всем удачи
спорная функция,как будто ваще нахуй не надо
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем ку, сливаю уведомления о бане игроков, в себе содержит ник забаненного, причину и срок, исходник не мой, но изначально там было только уведомление что был бан, тоесть не писало ни причину ни ник ни срок, короче держите
SS: Посмотреть вложение 294821


BanNotification, опять мойтен слил какую то хуйню?:
Expand Collapse Copy
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…И там можно обойтись без твоих патернов и гетать прям с сообщения причину бана.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу