package net.minecraft.server.packs; import com.mojang.brigadier.arguments.StringArgumentType; import java.util.Optional; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.HoverEvent; import net.minecraft.server.packs.repository.KnownPack; import net.minecraft.server.packs.repository.PackSource; public record PackLocationInfo(String id, Component title, PackSource source, Optional knownPackInfo) { public Component createChatLink(boolean enabled, Component text) { return ComponentUtils.wrapInSquareBrackets(this.source.decorate(Component.literal(this.id))) .withStyle( style -> style.withColor(enabled ? ChatFormatting.GREEN : ChatFormatting.RED) .withInsertion(StringArgumentType.escapeIfRequired(this.id)) .withHoverEvent(new HoverEvent.ShowText(Component.empty().append(this.title).append("\n").append(text))) ); } }