Skip to content

Commit e726798

Browse files
authored
Better Prefixes (#180)
2 parents 8fc4884 + 9942d93 commit e726798

34 files changed

Lines changed: 1524 additions & 330 deletions

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=25
88
mcVersion=1.21.11
99
group=dev.slne.surf
10-
version=1.21.11-2.54.3
10+
version=1.21.11-2.55.0
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=false

surf-api-core/surf-api-core-api/api/surf-api-core-api.api

Lines changed: 877 additions & 157 deletions
Large diffs are not rendered by default.

surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/Colors.kt

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package dev.slne.surf.surfapi.core.api.messages
22

3+
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.INFO
4+
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PRIMARY
5+
import dev.slne.surf.surfapi.core.api.messages.adventure.buildText
36
import net.kyori.adventure.text.Component
47
import net.kyori.adventure.text.format.NamedTextColor
58
import net.kyori.adventure.text.format.TextColor
@@ -123,9 +126,54 @@ interface Colors {
123126
* identifier in messages.
124127
*/
125128
@JvmField
126-
val PREFIX: Component = Component.text(">> ", DARK_SPACER)
127-
.append(Component.text("Surf", PREFIX_COLOR))
128-
.append(Component.text(" | ", DARK_SPACER))
129+
val PREFIX: Component = buildText {
130+
spacer("»")
131+
appendSpace()
132+
}
133+
134+
/**
135+
* The default info prefix used in informational messages.
136+
*/
137+
@JvmField
138+
val INFO_PREFIX: Component = buildText {
139+
spacer("[")
140+
info("ℹ️")
141+
spacer("]")
142+
appendSpace()
143+
}
144+
145+
/**
146+
* The default success prefix used in success messages.
147+
*/
148+
@JvmField
149+
val SUCCESS_PREFIX: Component = buildText {
150+
spacer("[")
151+
success("")
152+
spacer("]")
153+
appendSpace()
154+
}
155+
156+
/**
157+
* The default warning prefix used in warning messages.
158+
*/
159+
@JvmField
160+
val WARNING_PREFIX: Component = buildText {
161+
spacer("[")
162+
warning("")
163+
spacer("]")
164+
appendSpace()
165+
}
166+
167+
/**
168+
* The default error prefix used in error messages.
169+
*/
170+
@JvmField
171+
val ERROR_PREFIX: Component = buildText {
172+
spacer("[")
173+
error("")
174+
spacer("]")
175+
appendSpace()
176+
}
129177

130178
/**
131179
* Represents the color black.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package dev.slne.surf.surfapi.core.api.messages.builder
2+
3+
import net.kyori.adventure.text.format.TextColor
4+
import net.kyori.adventure.text.format.TextDecoration
5+
6+
interface ComponentBuilderColor {
7+
fun SurfComponentBuilder.coloredComponent(
8+
text: String,
9+
color: TextColor,
10+
vararg decoration: TextDecoration
11+
) = text(text, color, *decoration)
12+
13+
fun SurfComponentBuilder.coloredComponent(
14+
boolean: Boolean,
15+
color: TextColor,
16+
vararg decoration: TextDecoration
17+
) = text(boolean, color, *decoration)
18+
19+
fun SurfComponentBuilder.coloredComponent(
20+
char: Char,
21+
color: TextColor,
22+
vararg decoration: TextDecoration
23+
) = text(char, color, *decoration)
24+
25+
fun SurfComponentBuilder.coloredComponent(
26+
number: Number,
27+
color: TextColor,
28+
vararg decoration: TextDecoration
29+
) = text(number, color, *decoration)
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package dev.slne.surf.surfapi.core.api.messages.builder
2+
3+
import dev.slne.surf.surfapi.core.api.messages.builder.colors.SurfComponentBuilderColors
4+
import dev.slne.surf.surfapi.core.api.messages.builder.colors.minecraft.MinecraftComponentBuilderColors
5+
6+
interface ComponentBuilderColors : SurfComponentBuilderColors, MinecraftComponentBuilderColors

surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/messages/builder/SurfComponentBuilder.kt

Lines changed: 13 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
package dev.slne.surf.surfapi.core.api.messages.builder
22

3-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.DARK_SPACER
4-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.ERROR
5-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.INFO
63
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.NOTE
74
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PREFIX
8-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.PRIMARY
9-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SECONDARY
105
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SPACER
11-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.SUCCESS
12-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.VARIABLE_KEY
136
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.VARIABLE_VALUE
14-
import dev.slne.surf.surfapi.core.api.messages.Colors.Companion.WARNING
157
import dev.slne.surf.surfapi.core.api.messages.CommonComponents
168
import dev.slne.surf.surfapi.core.api.messages.CommonComponents.DISCONNECT_HEADER
179
import dev.slne.surf.surfapi.core.api.messages.CommonComponents.DISCORD_LINK
@@ -34,7 +26,7 @@ import java.util.function.Function
3426
import kotlin.time.Duration
3527

3628
@ApiStatus.NonExtendable
37-
interface SurfComponentBuilder : TextComponent.Builder {
29+
interface SurfComponentBuilder : TextComponent.Builder, ComponentBuilderColors {
3830
companion object {
3931
@JvmStatic
4032
fun builder(): SurfComponentBuilder = SurfComponentBuilderImpl(Component.text())
@@ -44,7 +36,10 @@ interface SurfComponentBuilder : TextComponent.Builder {
4436
builder().apply(block).build()
4537
}
4638

39+
@Deprecated("Use TYPE specific functions")
4740
fun appendPrefix() = append(PREFIX)
41+
42+
@Deprecated("Use TYPE specific functions")
4843
fun appendNewPrefixedLine() = appendNewline().appendPrefix()
4944

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

77-
fun text(double: Double, color: TextColor? = null, vararg decoration: TextDecoration) =
78-
append(Component.text(double, color, *decoration))
79-
80-
fun text(float: Float, color: TextColor? = null, vararg decoration: TextDecoration) =
81-
append(Component.text(float, color, *decoration))
82-
83-
fun text(int: Int, color: TextColor? = null, vararg decoration: TextDecoration) =
84-
append(Component.text(int, color, *decoration))
85-
86-
fun text(long: Long, color: TextColor? = null, vararg decoration: TextDecoration) =
87-
append(Component.text(long, color, *decoration))
88-
89-
fun primary(text: String, vararg decoration: TextDecoration) = text(text, PRIMARY, *decoration)
90-
fun primary(boolean: Boolean, vararg decoration: TextDecoration) =
91-
text(boolean, PRIMARY, *decoration)
92-
93-
fun primary(char: Char, vararg decoration: TextDecoration) = text(char, PRIMARY, *decoration)
94-
fun primary(double: Double, vararg decoration: TextDecoration) =
95-
text(double, PRIMARY, *decoration)
96-
97-
fun primary(float: Float, vararg decoration: TextDecoration) = text(float, PRIMARY, *decoration)
98-
fun primary(int: Int, vararg decoration: TextDecoration) = text(int, PRIMARY, *decoration)
99-
fun primary(long: Long, vararg decoration: TextDecoration) = text(long, PRIMARY, *decoration)
100-
101-
fun secondary(text: String, vararg decoration: TextDecoration) =
102-
text(text, SECONDARY, *decoration)
103-
104-
fun secondary(boolean: Boolean, vararg decoration: TextDecoration) =
105-
text(boolean, SECONDARY, *decoration)
106-
107-
fun secondary(char: Char, vararg decoration: TextDecoration) =
108-
text(char, SECONDARY, *decoration)
109-
110-
fun secondary(double: Double, vararg decoration: TextDecoration) =
111-
text(double, SECONDARY, *decoration)
112-
113-
fun secondary(float: Float, vararg decoration: TextDecoration) =
114-
text(float, SECONDARY, *decoration)
115-
116-
fun secondary(int: Int, vararg decoration: TextDecoration) = text(int, SECONDARY, *decoration)
117-
fun secondary(long: Long, vararg decoration: TextDecoration) =
118-
text(long, SECONDARY, *decoration)
119-
120-
fun info(text: String, vararg decoration: TextDecoration) = text(text, INFO, *decoration)
121-
fun info(boolean: Boolean, vararg decoration: TextDecoration) = text(boolean, INFO, *decoration)
122-
fun info(char: Char, vararg decoration: TextDecoration) = text(char, INFO, *decoration)
123-
fun info(double: Double, vararg decoration: TextDecoration) = text(double, INFO, *decoration)
124-
fun info(float: Float, vararg decoration: TextDecoration) = text(float, INFO, *decoration)
125-
fun info(int: Int, vararg decoration: TextDecoration) = text(int, INFO, *decoration)
126-
fun info(long: Long, vararg decoration: TextDecoration) = text(long, INFO, *decoration)
72+
fun text(number: Number, color: TextColor? = null, vararg decoration: TextDecoration) = append(
73+
when (number) {
74+
is Double -> Component.text(number, color, *decoration)
75+
is Float -> Component.text(number, color, *decoration)
76+
is Int -> Component.text(number, color, *decoration)
77+
is Long -> Component.text(number, color, *decoration)
78+
else -> Component.text(number.toString(), color, *decoration)
79+
}
80+
)
12781

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

130-
fun success(text: String, vararg decoration: TextDecoration) = text(text, SUCCESS, *decoration)
131-
fun success(boolean: Boolean, vararg decoration: TextDecoration) =
132-
text(boolean, SUCCESS, *decoration)
133-
134-
fun success(char: Char, vararg decoration: TextDecoration) = text(char, SUCCESS, *decoration)
135-
fun success(double: Double, vararg decoration: TextDecoration) =
136-
text(double, SUCCESS, *decoration)
137-
138-
fun success(float: Float, vararg decoration: TextDecoration) = text(float, SUCCESS, *decoration)
139-
fun success(int: Int, vararg decoration: TextDecoration) = text(int, SUCCESS, *decoration)
140-
fun success(long: Long, vararg decoration: TextDecoration) = text(long, SUCCESS, *decoration)
141-
142-
fun warning(text: String, vararg decoration: TextDecoration) = text(text, WARNING, *decoration)
143-
fun warning(boolean: Boolean, vararg decoration: TextDecoration) =
144-
text(boolean, WARNING, *decoration)
145-
146-
fun warning(char: Char, vararg decoration: TextDecoration) = text(char, WARNING, *decoration)
147-
fun warning(double: Double, vararg decoration: TextDecoration) =
148-
text(double, WARNING, *decoration)
149-
150-
fun warning(float: Float, vararg decoration: TextDecoration) = text(float, WARNING, *decoration)
151-
fun warning(int: Int, vararg decoration: TextDecoration) = text(int, WARNING, *decoration)
152-
fun warning(long: Long, vararg decoration: TextDecoration) = text(long, WARNING, *decoration)
153-
154-
155-
fun error(text: String, vararg decoration: TextDecoration) = text(text, ERROR, *decoration)
156-
fun error(boolean: Boolean, vararg decoration: TextDecoration) =
157-
text(boolean, ERROR, *decoration)
158-
159-
fun error(char: Char, vararg decoration: TextDecoration) = text(char, ERROR, *decoration)
160-
fun error(double: Double, vararg decoration: TextDecoration) = text(double, ERROR, *decoration)
161-
fun error(float: Float, vararg decoration: TextDecoration) = text(float, ERROR, *decoration)
162-
fun error(int: Int, vararg decoration: TextDecoration) = text(int, ERROR, *decoration)
163-
fun error(long: Long, vararg decoration: TextDecoration) = text(long, ERROR, *decoration)
164-
165-
fun variableKey(text: String, vararg decoration: TextDecoration) =
166-
text(text, VARIABLE_KEY, *decoration)
167-
168-
fun variableKey(boolean: Boolean, vararg decoration: TextDecoration) =
169-
text(boolean, VARIABLE_KEY, *decoration)
170-
171-
fun variableKey(char: Char, vararg decoration: TextDecoration) =
172-
text(char, VARIABLE_KEY, *decoration)
173-
174-
fun variableKey(double: Double, vararg decoration: TextDecoration) =
175-
text(double, VARIABLE_KEY, *decoration)
176-
177-
fun variableKey(float: Float, vararg decoration: TextDecoration) =
178-
text(float, VARIABLE_KEY, *decoration)
179-
180-
fun variableKey(int: Int, vararg decoration: TextDecoration) =
181-
text(int, VARIABLE_KEY, *decoration)
182-
183-
fun variableKey(long: Long, vararg decoration: TextDecoration) =
184-
text(long, VARIABLE_KEY, *decoration)
185-
186-
fun variableValue(text: String, vararg decoration: TextDecoration) =
187-
text(text, VARIABLE_VALUE, *decoration)
188-
189-
fun variableValue(boolean: Boolean, vararg decoration: TextDecoration) =
190-
text(boolean, VARIABLE_VALUE, *decoration)
191-
192-
fun variableValue(char: Char, vararg decoration: TextDecoration) =
193-
text(char, VARIABLE_VALUE, *decoration)
194-
195-
fun variableValue(double: Double, vararg decoration: TextDecoration) =
196-
text(double, VARIABLE_VALUE, *decoration)
197-
198-
fun variableValue(float: Float, vararg decoration: TextDecoration) =
199-
text(float, VARIABLE_VALUE, *decoration)
200-
201-
fun variableValue(int: Int, vararg decoration: TextDecoration) =
202-
text(int, VARIABLE_VALUE, *decoration)
203-
204-
fun variableValue(long: Long, vararg decoration: TextDecoration) =
205-
text(long, VARIABLE_VALUE, *decoration)
206-
207-
fun spacer(text: String, vararg decoration: TextDecoration) = text(text, SPACER, *decoration)
208-
fun spacer(boolean: Boolean, vararg decoration: TextDecoration) =
209-
text(boolean, SPACER, *decoration)
210-
211-
fun spacer(char: Char, vararg decoration: TextDecoration) = text(char, SPACER, *decoration)
212-
fun spacer(double: Double, vararg decoration: TextDecoration) =
213-
text(double, SPACER, *decoration)
214-
215-
fun spacer(float: Float, vararg decoration: TextDecoration) = text(float, SPACER, *decoration)
216-
fun spacer(int: Int, vararg decoration: TextDecoration) = text(int, SPACER, *decoration)
217-
fun spacer(long: Long, vararg decoration: TextDecoration) = text(long, SPACER, *decoration)
218-
219-
fun darkSpacer(text: String, vararg decoration: TextDecoration) =
220-
text(text, DARK_SPACER, *decoration)
221-
222-
fun darkSpacer(boolean: Boolean, vararg decoration: TextDecoration) =
223-
text(boolean, DARK_SPACER, *decoration)
224-
225-
fun darkSpacer(char: Char, vararg decoration: TextDecoration) =
226-
text(char, DARK_SPACER, *decoration)
227-
228-
fun darkSpacer(double: Double, vararg decoration: TextDecoration) =
229-
text(double, DARK_SPACER, *decoration)
230-
231-
fun darkSpacer(float: Float, vararg decoration: TextDecoration) =
232-
text(float, DARK_SPACER, *decoration)
233-
234-
fun darkSpacer(int: Int, vararg decoration: TextDecoration) =
235-
text(int, DARK_SPACER, *decoration)
236-
237-
fun darkSpacer(long: Long, vararg decoration: TextDecoration) =
238-
text(long, DARK_SPACER, *decoration)
239-
24084
fun ellipsis(color: TextColor? = SPACER) = append(CommonComponents.ELLIPSIS.color(color))
24185

24286
fun appendDiscordLink() = append(DISCORD_LINK)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package dev.slne.surf.surfapi.core.api.messages.builder.colors
2+
3+
import dev.slne.surf.surfapi.core.api.messages.Colors
4+
import dev.slne.surf.surfapi.core.api.messages.builder.ComponentBuilderColor
5+
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
6+
import net.kyori.adventure.text.format.TextDecoration
7+
8+
interface DarkSpacerComponentBuilderColor : ComponentBuilderColor {
9+
fun SurfComponentBuilder.darkSpacer(text: String, vararg decoration: TextDecoration) =
10+
coloredComponent(text, Colors.DARK_SPACER, *decoration)
11+
12+
fun SurfComponentBuilder.darkSpacer(boolean: Boolean, vararg decoration: TextDecoration) =
13+
coloredComponent(boolean, Colors.DARK_SPACER, *decoration)
14+
15+
fun SurfComponentBuilder.darkSpacer(char: Char, vararg decoration: TextDecoration) =
16+
coloredComponent(char, Colors.DARK_SPACER, *decoration)
17+
18+
fun SurfComponentBuilder.darkSpacer(number: Number, vararg decoration: TextDecoration) =
19+
coloredComponent(number, Colors.DARK_SPACER, *decoration)
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package dev.slne.surf.surfapi.core.api.messages.builder.colors
2+
3+
import dev.slne.surf.surfapi.core.api.messages.Colors
4+
import dev.slne.surf.surfapi.core.api.messages.builder.ComponentBuilderColor
5+
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
6+
import net.kyori.adventure.text.format.TextDecoration
7+
8+
interface ErrorComponentBuilderColor : ComponentBuilderColor {
9+
fun SurfComponentBuilder.appendErrorPrefix() = append(Colors.ERROR_PREFIX)
10+
fun SurfComponentBuilder.appendNewErrorPrefixedLine() = appendNewline().appendErrorPrefix()
11+
12+
fun SurfComponentBuilder.error(text: String, vararg decoration: TextDecoration) =
13+
coloredComponent(text, Colors.ERROR, *decoration)
14+
15+
fun SurfComponentBuilder.error(boolean: Boolean, vararg decoration: TextDecoration) =
16+
coloredComponent(boolean, Colors.ERROR, *decoration)
17+
18+
fun SurfComponentBuilder.error(char: Char, vararg decoration: TextDecoration) =
19+
coloredComponent(char, Colors.ERROR, *decoration)
20+
21+
fun SurfComponentBuilder.error(number: Number, vararg decoration: TextDecoration) =
22+
coloredComponent(number, Colors.ERROR, *decoration)
23+
}

0 commit comments

Comments
 (0)