diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/Colors.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/Colors.kt index 7a99f0e18..5e1e3ac23 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/Colors.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/Colors.kt @@ -112,6 +112,8 @@ interface Colors { @JvmField val DARK_SPACER: NamedTextColor = NamedTextColor.DARK_GRAY + // -------------------- Prefix -------------------- // + /** * The default prefix color (#3b92d1). * Applied to all prefixes for consistency across Surf plugins. @@ -119,61 +121,52 @@ interface Colors { @JvmField val PREFIX_COLOR: TextColor = PRIMARY - // -------------------- Default Colors -------------------- // + /** + * The default prefix character ('»'). + */ + @Suppress("MayBeConstant") + @JvmField + val PREFIX_CHARACTER = '»' + + private fun buildPrefix(color: TextColor) = buildText { + text(PREFIX_CHARACTER, color) + appendSpace() + darkSpacer("|") + appendSpace() + } /** * The default prefix used across all Surf plugins, ensuring a recognizable and uniform * identifier in messages. */ @JvmField - val PREFIX: Component = buildText { - spacer("»") - appendSpace() - } + val PREFIX: Component = buildPrefix(PREFIX_COLOR) /** * The default info prefix used in informational messages. */ @JvmField - val INFO_PREFIX: Component = buildText { - spacer("[") - info("ℹ") - spacer("]") - appendSpace() - } + val INFO_PREFIX: Component = buildPrefix(INFO) /** * The default success prefix used in success messages. */ @JvmField - val SUCCESS_PREFIX: Component = buildText { - spacer("[") - success("✔") - spacer("]") - appendSpace() - } + val SUCCESS_PREFIX: Component = buildPrefix(SUCCESS) /** * The default warning prefix used in warning messages. */ @JvmField - val WARNING_PREFIX: Component = buildText { - spacer("[") - warning("⚠") - spacer("]") - appendSpace() - } + val WARNING_PREFIX: Component = buildPrefix(WARNING) /** * The default error prefix used in error messages. */ @JvmField - val ERROR_PREFIX: Component = buildText { - spacer("[") - error("✖") - spacer("]") - appendSpace() - } + val ERROR_PREFIX: Component = buildPrefix(ERROR) + + // -------------------- Default Colors -------------------- // /** * Represents the color black. diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/SurfComponentBuilder.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/SurfComponentBuilder.kt index d9b27290c..d8a098aa4 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/SurfComponentBuilder.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/SurfComponentBuilder.kt @@ -54,9 +54,11 @@ interface SurfComponentBuilder : TextComponent.Builder, ComponentBuilderColors { suspend fun appendNewlineAsync(block: suspend SurfComponentBuilder.() -> Unit) = appendNewline().appendAsync(block) + @Deprecated("Use TYPE specific functions") fun appendNewPrefixedLine(block: SurfComponentBuilder.() -> Unit) = appendNewPrefixedLine().append(block) + @Deprecated("Use TYPE specific functions") suspend fun appendNewPrefixedLineAsync(block: suspend SurfComponentBuilder.() -> Unit) = appendNewPrefixedLine().appendAsync(block) diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/ErrorComponentBuilderColor.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/ErrorComponentBuilderColor.kt index a20f7d44b..4bf76c3c2 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/ErrorComponentBuilderColor.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/ErrorComponentBuilderColor.kt @@ -8,6 +8,8 @@ import net.kyori.adventure.text.format.TextDecoration interface ErrorComponentBuilderColor : ComponentBuilderColor { fun SurfComponentBuilder.appendErrorPrefix() = append(Colors.ERROR_PREFIX) fun SurfComponentBuilder.appendNewErrorPrefixedLine() = appendNewline().appendErrorPrefix() + suspend fun SurfComponentBuilder.appendNewErrorPrefixedLineAsync(block: suspend SurfComponentBuilder.() -> Unit) = + appendNewline().appendErrorPrefix().appendAsync(block) fun SurfComponentBuilder.error(text: String, vararg decoration: TextDecoration) = coloredComponent(text, Colors.ERROR, *decoration) diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/InfoComponentBuilderColor.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/InfoComponentBuilderColor.kt index 367215fd0..3badc5d61 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/InfoComponentBuilderColor.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/InfoComponentBuilderColor.kt @@ -8,6 +8,8 @@ import net.kyori.adventure.text.format.TextDecoration interface InfoComponentBuilderColor : ComponentBuilderColor { fun SurfComponentBuilder.appendInfoPrefix() = append(Colors.INFO_PREFIX) fun SurfComponentBuilder.appendNewInfoPrefixedLine() = appendNewline().appendInfoPrefix() + suspend fun SurfComponentBuilder.appendNewInfoPrefixedLineAsync(block: suspend SurfComponentBuilder.() -> Unit) = + appendNewline().appendInfoPrefix().appendAsync(block) fun SurfComponentBuilder.info(text: String, vararg decoration: TextDecoration) = coloredComponent(text, Colors.INFO, *decoration) diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/SuccessComponentBuilderColor.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/SuccessComponentBuilderColor.kt index 040dc2c78..9f0b29b73 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/SuccessComponentBuilderColor.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/SuccessComponentBuilderColor.kt @@ -8,6 +8,8 @@ import net.kyori.adventure.text.format.TextDecoration interface SuccessComponentBuilderColor : ComponentBuilderColor { fun SurfComponentBuilder.appendSuccessPrefix() = append(Colors.SUCCESS_PREFIX) fun SurfComponentBuilder.appendNewSuccessPrefixedLine() = appendNewline().appendSuccessPrefix() + suspend fun SurfComponentBuilder.appendNewSuccessPrefixedLineAsync(block: suspend SurfComponentBuilder.() -> Unit) = + appendNewline().appendSuccessPrefix().appendAsync(block) fun SurfComponentBuilder.success(text: String, vararg decoration: TextDecoration) = coloredComponent(text, Colors.SUCCESS, *decoration) diff --git a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/WarningComponentBuilderColor.kt b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/WarningComponentBuilderColor.kt index 9e69925b7..c07adb978 100644 --- a/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/WarningComponentBuilderColor.kt +++ b/surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/colors/WarningComponentBuilderColor.kt @@ -8,6 +8,8 @@ import net.kyori.adventure.text.format.TextDecoration interface WarningComponentBuilderColor : ComponentBuilderColor { fun SurfComponentBuilder.appendWarningPrefix() = append(Colors.WARNING_PREFIX) fun SurfComponentBuilder.appendNewWarningPrefixedLine() = appendNewline().appendWarningPrefix() + suspend fun SurfComponentBuilder.appendNewWarningPrefixedLineAsync(block: suspend SurfComponentBuilder.() -> Unit) = + appendNewline().appendWarningPrefix().appendAsync(block) fun SurfComponentBuilder.warning(text: String, vararg decoration: TextDecoration) = coloredComponent(text, Colors.WARNING, *decoration)