Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
javaVersion=25
mcVersion=1.21.11
group=dev.slne.surf
version=1.21.11-2.54.3
version=1.21.11-2.55.0
relocationPrefix=dev.slne.surf.surfapi.libs
snapshot=false
1,034 changes: 877 additions & 157 deletions surf-api-core/surf-api-core-api/api/surf-api-core-api.api

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package dev.slne.surf.surfapi.core.api.messages

import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.INFO
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PRIMARY
import dev.slne.surf.surfapi.core.api.messages.adventure.buildText
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.NamedTextColor
import net.kyori.adventure.text.format.TextColor
Expand Down Expand Up @@ -123,9 +126,54 @@ interface Colors {
* identifier in messages.
*/
@JvmField
val PREFIX: Component = Component.text(">> ", DARK_SPACER)
.append(Component.text("Surf", PREFIX_COLOR))
.append(Component.text(" | ", DARK_SPACER))
val PREFIX: Component = buildText {
spacer("»")
appendSpace()
}

/**
* The default info prefix used in informational messages.
*/
@JvmField
val INFO_PREFIX: Component = buildText {
spacer("[")
info("ℹ️")
spacer("]")
appendSpace()
}

/**
* The default success prefix used in success messages.
*/
@JvmField
val SUCCESS_PREFIX: Component = buildText {
spacer("[")
success("✔")
spacer("]")
appendSpace()
}

/**
* The default warning prefix used in warning messages.
*/
@JvmField
val WARNING_PREFIX: Component = buildText {
spacer("[")
warning("⚠")
spacer("]")
appendSpace()
}

/**
* The default error prefix used in error messages.
*/
@JvmField
val ERROR_PREFIX: Component = buildText {
spacer("[")
error("✖")
spacer("]")
appendSpace()
}

/**
* Represents the color black.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package dev.slne.surf.surfapi.core.api.messages.builder

import net.kyori.adventure.text.format.TextColor
import net.kyori.adventure.text.format.TextDecoration

interface ComponentBuilderColor {
fun SurfComponentBuilder.coloredComponent(
text: String,
color: TextColor,
vararg decoration: TextDecoration
) = text(text, color, *decoration)

fun SurfComponentBuilder.coloredComponent(
boolean: Boolean,
color: TextColor,
vararg decoration: TextDecoration
) = text(boolean, color, *decoration)

fun SurfComponentBuilder.coloredComponent(
char: Char,
color: TextColor,
vararg decoration: TextDecoration
) = text(char, color, *decoration)

fun SurfComponentBuilder.coloredComponent(
number: Number,
color: TextColor,
vararg decoration: TextDecoration
) = text(number, color, *decoration)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package dev.slne.surf.surfapi.core.api.messages.builder

import dev.slne.surf.surfapi.core.api.messages.builder.colors.SurfComponentBuilderColors
import dev.slne.surf.surfapi.core.api.messages.builder.colors.minecraft.MinecraftComponentBuilderColors

interface ComponentBuilderColors : SurfComponentBuilderColors, MinecraftComponentBuilderColors
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
package dev.slne.surf.surfapi.core.api.messages.builder

import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.DARK_SPACER
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.ERROR
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.INFO
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.NOTE
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PREFIX
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PRIMARY
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SECONDARY
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SPACER
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SUCCESS
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.VARIABLE_KEY
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.VARIABLE_VALUE
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.WARNING
import dev.slne.surf.surfapi.core.api.messages.CommonComponents
import dev.slne.surf.surfapi.core.api.messages.CommonComponents.DISCONNECT_HEADER
import dev.slne.surf.surfapi.core.api.messages.CommonComponents.DISCORD_LINK
Expand All @@ -34,7 +26,7 @@ import java.util.function.Function
import kotlin.time.Duration

@ApiStatus.NonExtendable
interface SurfComponentBuilder : TextComponent.Builder {
interface SurfComponentBuilder : TextComponent.Builder, ComponentBuilderColors {
companion object {
@JvmStatic
fun builder(): SurfComponentBuilder = SurfComponentBuilderImpl(Component.text())
Expand All @@ -44,7 +36,10 @@ interface SurfComponentBuilder : TextComponent.Builder {
builder().apply(block).build()
}

@Deprecated("Use TYPE specific functions")
fun appendPrefix() = append(PREFIX)

@Deprecated("Use TYPE specific functions")
fun appendNewPrefixedLine() = appendNewline().appendPrefix()

fun append(block: SurfComponentBuilder.() -> Unit): SurfComponentBuilder =
Expand Down Expand Up @@ -74,169 +69,18 @@ interface SurfComponentBuilder : TextComponent.Builder {
fun text(char: Char, color: TextColor? = null, vararg decoration: TextDecoration) =
append(Component.text(char, color, *decoration))

fun text(double: Double, color: TextColor? = null, vararg decoration: TextDecoration) =
append(Component.text(double, color, *decoration))

fun text(float: Float, color: TextColor? = null, vararg decoration: TextDecoration) =
append(Component.text(float, color, *decoration))

fun text(int: Int, color: TextColor? = null, vararg decoration: TextDecoration) =
append(Component.text(int, color, *decoration))

fun text(long: Long, color: TextColor? = null, vararg decoration: TextDecoration) =
append(Component.text(long, color, *decoration))

fun primary(text: String, vararg decoration: TextDecoration) = text(text, PRIMARY, *decoration)
fun primary(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, PRIMARY, *decoration)

fun primary(char: Char, vararg decoration: TextDecoration) = text(char, PRIMARY, *decoration)
fun primary(double: Double, vararg decoration: TextDecoration) =
text(double, PRIMARY, *decoration)

fun primary(float: Float, vararg decoration: TextDecoration) = text(float, PRIMARY, *decoration)
fun primary(int: Int, vararg decoration: TextDecoration) = text(int, PRIMARY, *decoration)
fun primary(long: Long, vararg decoration: TextDecoration) = text(long, PRIMARY, *decoration)

fun secondary(text: String, vararg decoration: TextDecoration) =
text(text, SECONDARY, *decoration)

fun secondary(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, SECONDARY, *decoration)

fun secondary(char: Char, vararg decoration: TextDecoration) =
text(char, SECONDARY, *decoration)

fun secondary(double: Double, vararg decoration: TextDecoration) =
text(double, SECONDARY, *decoration)

fun secondary(float: Float, vararg decoration: TextDecoration) =
text(float, SECONDARY, *decoration)

fun secondary(int: Int, vararg decoration: TextDecoration) = text(int, SECONDARY, *decoration)
fun secondary(long: Long, vararg decoration: TextDecoration) =
text(long, SECONDARY, *decoration)

fun info(text: String, vararg decoration: TextDecoration) = text(text, INFO, *decoration)
fun info(boolean: Boolean, vararg decoration: TextDecoration) = text(boolean, INFO, *decoration)
fun info(char: Char, vararg decoration: TextDecoration) = text(char, INFO, *decoration)
fun info(double: Double, vararg decoration: TextDecoration) = text(double, INFO, *decoration)
fun info(float: Float, vararg decoration: TextDecoration) = text(float, INFO, *decoration)
fun info(int: Int, vararg decoration: TextDecoration) = text(int, INFO, *decoration)
fun info(long: Long, vararg decoration: TextDecoration) = text(long, INFO, *decoration)
fun text(number: Number, color: TextColor? = null, vararg decoration: TextDecoration) = append(
when (number) {
is Double -> Component.text(number, color, *decoration)
is Float -> Component.text(number, color, *decoration)
is Int -> Component.text(number, color, *decoration)
is Long -> Component.text(number, color, *decoration)
else -> Component.text(number.toString(), color, *decoration)
}
)

fun note(any: Any, vararg decoration: TextDecoration) = text(any.toString(), NOTE, *decoration)

fun success(text: String, vararg decoration: TextDecoration) = text(text, SUCCESS, *decoration)
fun success(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, SUCCESS, *decoration)

fun success(char: Char, vararg decoration: TextDecoration) = text(char, SUCCESS, *decoration)
fun success(double: Double, vararg decoration: TextDecoration) =
text(double, SUCCESS, *decoration)

fun success(float: Float, vararg decoration: TextDecoration) = text(float, SUCCESS, *decoration)
fun success(int: Int, vararg decoration: TextDecoration) = text(int, SUCCESS, *decoration)
fun success(long: Long, vararg decoration: TextDecoration) = text(long, SUCCESS, *decoration)

fun warning(text: String, vararg decoration: TextDecoration) = text(text, WARNING, *decoration)
fun warning(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, WARNING, *decoration)

fun warning(char: Char, vararg decoration: TextDecoration) = text(char, WARNING, *decoration)
fun warning(double: Double, vararg decoration: TextDecoration) =
text(double, WARNING, *decoration)

fun warning(float: Float, vararg decoration: TextDecoration) = text(float, WARNING, *decoration)
fun warning(int: Int, vararg decoration: TextDecoration) = text(int, WARNING, *decoration)
fun warning(long: Long, vararg decoration: TextDecoration) = text(long, WARNING, *decoration)


fun error(text: String, vararg decoration: TextDecoration) = text(text, ERROR, *decoration)
fun error(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, ERROR, *decoration)

fun error(char: Char, vararg decoration: TextDecoration) = text(char, ERROR, *decoration)
fun error(double: Double, vararg decoration: TextDecoration) = text(double, ERROR, *decoration)
fun error(float: Float, vararg decoration: TextDecoration) = text(float, ERROR, *decoration)
fun error(int: Int, vararg decoration: TextDecoration) = text(int, ERROR, *decoration)
fun error(long: Long, vararg decoration: TextDecoration) = text(long, ERROR, *decoration)

fun variableKey(text: String, vararg decoration: TextDecoration) =
text(text, VARIABLE_KEY, *decoration)

fun variableKey(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, VARIABLE_KEY, *decoration)

fun variableKey(char: Char, vararg decoration: TextDecoration) =
text(char, VARIABLE_KEY, *decoration)

fun variableKey(double: Double, vararg decoration: TextDecoration) =
text(double, VARIABLE_KEY, *decoration)

fun variableKey(float: Float, vararg decoration: TextDecoration) =
text(float, VARIABLE_KEY, *decoration)

fun variableKey(int: Int, vararg decoration: TextDecoration) =
text(int, VARIABLE_KEY, *decoration)

fun variableKey(long: Long, vararg decoration: TextDecoration) =
text(long, VARIABLE_KEY, *decoration)

fun variableValue(text: String, vararg decoration: TextDecoration) =
text(text, VARIABLE_VALUE, *decoration)

fun variableValue(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, VARIABLE_VALUE, *decoration)

fun variableValue(char: Char, vararg decoration: TextDecoration) =
text(char, VARIABLE_VALUE, *decoration)

fun variableValue(double: Double, vararg decoration: TextDecoration) =
text(double, VARIABLE_VALUE, *decoration)

fun variableValue(float: Float, vararg decoration: TextDecoration) =
text(float, VARIABLE_VALUE, *decoration)

fun variableValue(int: Int, vararg decoration: TextDecoration) =
text(int, VARIABLE_VALUE, *decoration)

fun variableValue(long: Long, vararg decoration: TextDecoration) =
text(long, VARIABLE_VALUE, *decoration)

fun spacer(text: String, vararg decoration: TextDecoration) = text(text, SPACER, *decoration)
fun spacer(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, SPACER, *decoration)

fun spacer(char: Char, vararg decoration: TextDecoration) = text(char, SPACER, *decoration)
fun spacer(double: Double, vararg decoration: TextDecoration) =
text(double, SPACER, *decoration)

fun spacer(float: Float, vararg decoration: TextDecoration) = text(float, SPACER, *decoration)
fun spacer(int: Int, vararg decoration: TextDecoration) = text(int, SPACER, *decoration)
fun spacer(long: Long, vararg decoration: TextDecoration) = text(long, SPACER, *decoration)

fun darkSpacer(text: String, vararg decoration: TextDecoration) =
text(text, DARK_SPACER, *decoration)

fun darkSpacer(boolean: Boolean, vararg decoration: TextDecoration) =
text(boolean, DARK_SPACER, *decoration)

fun darkSpacer(char: Char, vararg decoration: TextDecoration) =
text(char, DARK_SPACER, *decoration)

fun darkSpacer(double: Double, vararg decoration: TextDecoration) =
text(double, DARK_SPACER, *decoration)

fun darkSpacer(float: Float, vararg decoration: TextDecoration) =
text(float, DARK_SPACER, *decoration)

fun darkSpacer(int: Int, vararg decoration: TextDecoration) =
text(int, DARK_SPACER, *decoration)

fun darkSpacer(long: Long, vararg decoration: TextDecoration) =
text(long, DARK_SPACER, *decoration)

fun ellipsis(color: TextColor? = SPACER) = append(CommonComponents.ELLIPSIS.color(color))

fun appendDiscordLink() = append(DISCORD_LINK)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dev.slne.surf.surfapi.core.api.messages.builder.colors

import dev.slne.surf.surfapi.core.api.messages.Colors
import dev.slne.surf.surfapi.core.api.messages.builder.ComponentBuilderColor
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
import net.kyori.adventure.text.format.TextDecoration

interface DarkSpacerComponentBuilderColor : ComponentBuilderColor {
fun SurfComponentBuilder.darkSpacer(text: String, vararg decoration: TextDecoration) =
coloredComponent(text, Colors.DARK_SPACER, *decoration)

fun SurfComponentBuilder.darkSpacer(boolean: Boolean, vararg decoration: TextDecoration) =
coloredComponent(boolean, Colors.DARK_SPACER, *decoration)

fun SurfComponentBuilder.darkSpacer(char: Char, vararg decoration: TextDecoration) =
coloredComponent(char, Colors.DARK_SPACER, *decoration)

fun SurfComponentBuilder.darkSpacer(number: Number, vararg decoration: TextDecoration) =
coloredComponent(number, Colors.DARK_SPACER, *decoration)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package dev.slne.surf.surfapi.core.api.messages.builder.colors

import dev.slne.surf.surfapi.core.api.messages.Colors
import dev.slne.surf.surfapi.core.api.messages.builder.ComponentBuilderColor
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
import net.kyori.adventure.text.format.TextDecoration

interface ErrorComponentBuilderColor : ComponentBuilderColor {
fun SurfComponentBuilder.appendErrorPrefix() = append(Colors.ERROR_PREFIX)
fun SurfComponentBuilder.appendNewErrorPrefixedLine() = appendNewline().appendErrorPrefix()

fun SurfComponentBuilder.error(text: String, vararg decoration: TextDecoration) =
coloredComponent(text, Colors.ERROR, *decoration)

fun SurfComponentBuilder.error(boolean: Boolean, vararg decoration: TextDecoration) =
coloredComponent(boolean, Colors.ERROR, *decoration)

fun SurfComponentBuilder.error(char: Char, vararg decoration: TextDecoration) =
coloredComponent(char, Colors.ERROR, *decoration)

fun SurfComponentBuilder.error(number: Number, vararg decoration: TextDecoration) =
coloredComponent(number, Colors.ERROR, *decoration)
}
Loading