Вопрос При сборке gradlew вышел слишком большой .jar файл

Версия Minecraft
1.20.X

Art_Farm

Пользователь
Сообщения
228
Решения
4
Веб-сайт
artfarm.mine-farm.ru
👋 Привет!
Я хотел добавить в chatty поддержку MiniMessage и другие hex цвета, я отредактировал только один файл исходного кода chatty, вот он Chatty/spigot/src/main/java/ru/brikster/chatty/convert/message/LegacyToMiniMessageConverter.java:

Код:
package ru.brikster.chatty.convert.message;

import org.jetbrains.annotations.NotNull;

import javax.inject.Singleton;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Singleton
public final class LegacyToMiniMessageConverter implements MessageConverter {

    private static final Pattern BUKKIT_COLOR_PATTERN = Pattern.compile("(?:[§&])([0-9A-FK-OR])", Pattern.CASE_INSENSITIVE);
    private static final Pattern SPIGOT_HEX_COLOR_PATTERN = Pattern.compile("(?:[§&])x((?:[§&][A-Fa-f0-9]){6})", Pattern.CASE_INSENSITIVE);
    private static final Pattern PAPER_HEX_COLOR_PATTERN = Pattern.compile("(?:[§&])#([A-Fa-f0-9]{6})", Pattern.CASE_INSENSITIVE);
    private static final Pattern CHATTY_HEX_COLOR_PATTERN = Pattern.compile("\\{#([A-Fa-f0-9]{6})\\}", Pattern.CASE_INSENSITIVE);
    private static final Pattern CHATTY_HEX_GRADIENT_PATTERN = Pattern.compile("\\{((?:#[A-Fa-f0-9]{6})(?::#[A-Fa-f0-9]{6})+)\\}(.+?)\\}", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

    private static final String RESET_TAGS = "<!bold><!italic><!strikethrough><!obfuscated><!underlined>";

    private static final Map<Character, String> LEGACY_CODE_TO_MINI_MESSAGE = Map.ofEntries(
            Map.entry('0', RESET_TAGS + "<color:#000000>"),
            Map.entry('1', RESET_TAGS + "<color:#0000AA>"),
            Map.entry('2', RESET_TAGS + "<color:#00AA00>"),
            Map.entry('3', RESET_TAGS + "<color:#00AAAA>"),
            Map.entry('4', RESET_TAGS + "<color:#AA0000>"),
            Map.entry('5', RESET_TAGS + "<color:#AA00AA>"),
            Map.entry('6', RESET_TAGS + "<color:#FFAA00>"),
            Map.entry('7', RESET_TAGS + "<color:#AAAAAA>"),
            Map.entry('8', RESET_TAGS + "<color:#555555>"),
            Map.entry('9', RESET_TAGS + "<color:#5555FF>"),
            Map.entry('a', RESET_TAGS + "<color:#55FF55>"),
            Map.entry('b', RESET_TAGS + "<color:#55FFFF>"),
            Map.entry('c', RESET_TAGS + "<color:#FF5555>"),
            Map.entry('d', RESET_TAGS + "<color:#FF55FF>"),
            Map.entry('e', RESET_TAGS + "<color:#FFFF55>"),
            Map.entry('f', RESET_TAGS + "<color:#FFFFFF>"),
            Map.entry('k', "<obfuscated>"),
            Map.entry('l', "<bold>"),
            Map.entry('m', "<strikethrough>"),
            Map.entry('n', "<underlined>"),
            Map.entry('o', "<italic>"),
            Map.entry('r', RESET_TAGS + "<reset>")
    );

    @Override
    public @NotNull String convert(@NotNull String message) {
        Objects.requireNonNull(message, "message");
        if (message.isEmpty()) {
            return message;
        }
        String result = message;
        result = convertChattyGradients(result);
        result = convertChattyHexCodes(result);
        result = convertPaperHexCodes(result);
        result = convertSpigotHexCodes(result);
        result = convertBukkitCodes(result);
        return result;
    }

    private String replaceAll(String message, Pattern pattern, Function<Matcher, String> replacer) {
        Matcher matcher = pattern.matcher(message);
        StringBuffer buffer = new StringBuffer(message.length());
        while (matcher.find()) {
            String replacement = replacer.apply(matcher);
            matcher.appendReplacement(buffer, Matcher.quoteReplacement(replacement));
        }
        matcher.appendTail(buffer);
        return buffer.toString();
    }

    private @NotNull String convertChattyGradients(@NotNull String message) {
        return replaceAll(message, CHATTY_HEX_GRADIENT_PATTERN, matcher -> {
            String codes = matcher.group(1);
            String text = matcher.group(2);
            String[] parts = codes.split(":");
            StringBuilder normalized = new StringBuilder(parts.length * 7);
            for (int i = 0; i < parts.length; i++) {
                String p = parts[i].trim();
                if (!p.startsWith("#")) {
                    p = "#" + p;
                }
                normalized.append(p.toLowerCase(Locale.ROOT));
                if (i < parts.length - 1) {
                    normalized.append(':');
                }
            }
            return RESET_TAGS + "<gradient:" + normalized + ">" + text + "</gradient>";
        });
    }

    private @NotNull String convertChattyHexCodes(@NotNull String message) {
        return replaceAll(message, CHATTY_HEX_COLOR_PATTERN, matcher -> "<color:#" + matcher.group(1).toLowerCase(Locale.ROOT) + ">");
    }

    private @NotNull String convertPaperHexCodes(@NotNull String message) {
        return replaceAll(message, PAPER_HEX_COLOR_PATTERN, matcher -> "<color:#" + matcher.group(1).toLowerCase(Locale.ROOT) + ">");
    }

    private @NotNull String convertSpigotHexCodes(@NotNull String message) {
        return replaceAll(message, SPIGOT_HEX_COLOR_PATTERN, matcher -> {
            String group = matcher.group(1);
            String hex = group.replaceAll("[&§]", "").toLowerCase(Locale.ROOT);
            if (hex.length() == 6 && hex.matches("[0-9a-f]{6}")) {
                return "<color:#" + hex + ">";
            }
            return matcher.group();
        });
    }

    private @NotNull String convertBukkitCodes(@NotNull String message) {
        return replaceAll(message, BUKKIT_COLOR_PATTERN, matcher -> {
            String code = matcher.group(1).toLowerCase(Locale.ROOT);
            char c = code.charAt(0);
            String replacement = LEGACY_CODE_TO_MINI_MESSAGE.get(c);
            return replacement != null ? replacement : matcher.group();
        });
    }
}

Но когда я ввёл ./gradlew clean jar создался .jar файл в 26 мБайт весом, хотя в тоже время обычный чатти весит всего 500 с чем то кБайт.
Кто поможет разобраться, в чём дело?
 
Вот ещё build.gradle если надо (его я не менял).

Код:
plugins {
    id 'org.jetbrains.gradle.plugin.idea-ext' version '1.0.1'
}

allprojects {
    group = 'ru.brikster'
    version = '1.0.0'
}

subprojects {
    pluginManager.apply('java-library')

    java {
        toolchain {
            languageVersion.set(JavaLanguageVersion.of(21))
        }
    }

    sourceCompatibility = targetCompatibility = JavaVersion.VERSION_11

    tasks {
        compileJava {
            options.encoding = 'UTF-8'
        }

        compileTestJava {
            options.encoding = 'UTF-8'
        }
    }

    repositories {
        mavenCentral()
        maven { url = 'https://hub.spigotmc.org/nexus/content/groups/public/' }
        maven {
            name = "sonatype-oss-snapshots1"
            url = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
        }
    }

    def adventureVersion = "4.24.0"
    def adventureBukkitPlatformVersion = "4.4.1"

    dependencies {
        compileOnlyApi 'org.jetbrains:annotations:17.0.0'

        implementation "net.kyori:adventure-api:$adventureVersion"
        implementation "net.kyori:adventure-text-minimessage:$adventureVersion"
        implementation "net.kyori:adventure-text-serializer-gson:$adventureVersion"
        implementation "net.kyori:adventure-platform-bukkit:$adventureBukkitPlatformVersion"

        compileOnly 'org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT'

        implementation 'com.google.inject:guice:5.1.0'
        implementation 'com.google.guava:guava:30.1-jre'

        compileOnly 'org.projectlombok:lombok:1.18.30'
        annotationProcessor 'org.projectlombok:lombok:1.18.30'
    }
}
 
Назад
Сверху Снизу