не работает мод

Версия Minecraft
1.20.1
API
Fabric
привет! я собрал мод, и загрузил с ним майнкрафт, но он ничего не делает. Я не могу найти причину проблемы


ChatHudMixin:
package org.ho4u.mlml.mixin;

import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.text.ClickEvent;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Mixin(ChatHud.class)
public abstract class ChatHudMixin {
    @Shadow
    public abstract void addMessage(Text message);

    @Unique
    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");
    @Unique
    private static final Set<String> HIGHLIGHT_WORDS = Set.of("важное", "тест", "алмаз");

    @Unique
    private static final Pattern[] CHAT_PATTERNS = {
            Pattern.compile("Донат-чат » (.+?): (.+)"),
            Pattern.compile("\\[G] (.+?) » (.+)"),
            Pattern.compile(" \\[G](?: ⚑)? (.+?): (.+)"),
            Pattern.compile(" \\[T](?: ⚑)? (.+?): (.+)"),
            Pattern.compile("Креатив-чат » (.+?): (.+)"),
            Pattern.compile("✉ » (.+?) -> тебе \\| (.+)"),
            Pattern.compile(" (.+?) » (.+)")
    };

    @Inject(method = "addMessage(Lnet/minecraft/text/Text;)V", at = @At("HEAD"), cancellable = true)
    private void injectFeatures(Text message, CallbackInfo ci) {
        Text newMessage = formatMessage(message);
        addMessage(newMessage);
        ci.cancel();
    }

    @Unique
    private Text formatMessage(Text message) {
        String time = LocalDateTime.now().format(FORMATTER);
        String username = extractUsername(message);
        MutableText formattedMessage = Text.literal("[" + time + "] ").append(highlightWords(message));
        if (!username.isEmpty()) {
            formattedMessage.append(Text.literal(" ").append(createPunishButton(username)));
        }
        return formattedMessage;
    }

    @Unique
    private Text highlightWords(Text message) {
        String content = message.getString();
        MutableText newMessage = Text.literal("");
        for (String word : content.split(" ")) {
            if (HIGHLIGHT_WORDS.contains(word.toLowerCase())) {
                newMessage.append(Text.literal(word).styled(style -> style.withColor(Formatting.RED)));
            } else {
                newMessage.append(Text.literal(word));
            }
            newMessage.append(Text.literal(" "));
        }
        return newMessage;
    }

    @Unique
    private Text createPunishButton(String username) {
        return Text.literal("[Наказать]")
                .styled(style -> style
                        .withColor(Formatting.RED)
                        .withBold(true)
                        .withUnderline(true)
                        .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/punish " + username)));
    }

    @Unique
    private String extractUsername(Text message) {
        String content = message.getString();
        for (Pattern pattern : CHAT_PATTERNS) {
            Matcher matcher = pattern.matcher(content);
            if (matcher.matches()) {
                return matcher.group(1);
            }
        }
        return "";
    }
}
 
Мы не ванги (по крайней мере я)

и загрузил с ним майнкрафт
Какой? Лаунчер? В IDEA работает?

но он ничего не делает
Дай логи хотя-бы. Где остальные классы? Ты миксины зарегистрировал? Расставь sout'ы чтобы знать что проблема не в логике.
 
Последнее редактирование:
Назад
Сверху