Skip to content

Commit 95750f1

Browse files
committed
Implement ComponentSerializer and rename build() to from()
1 parent 305c626 commit 95750f1

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.tinyoverflow</groupId>
88
<artifactId>tolker</artifactId>
9-
<version>0.1.2-SNAPSHOT</version>
9+
<version>0.1.3-SNAPSHOT</version>
1010

1111
<description>A Paper library to make messaging buttery smooth.</description>
1212

src/main/java/me/tinyoverflow/tolker/Tolker.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import me.tinyoverflow.tolker.repositories.MessageBag;
44
import me.tinyoverflow.tolker.serializer.*;
5+
import net.kyori.adventure.text.Component;
6+
import net.kyori.adventure.text.TextComponent;
57
import org.bukkit.Location;
68
import org.bukkit.OfflinePlayer;
79
import org.bukkit.World;
@@ -34,6 +36,7 @@ public void registerDefaultSerializers() {
3436
registerSerializer(Integer.class, new IntegerSerializer());
3537
registerSerializer(Long.class, new LongSerializer());
3638
registerSerializer(String.class, new StringSerializer());
39+
registerSerializer(TextComponent.class, new ComponentSerializer());
3740

3841
// Minecraft Types
3942
registerSerializer(ItemStack.class, new ItemStackSerializer());
@@ -43,7 +46,15 @@ public void registerDefaultSerializers() {
4346
registerSerializer(World.class, new WorldSerializer());
4447
}
4548

49+
@Deprecated(forRemoval = true)
50+
/**
51+
* @deprecated Use {@code from} instead.
52+
*/
4653
public MessageBuilder build(String messageKey) {
54+
return from(messageKey);
55+
}
56+
57+
public MessageBuilder from(String messageKey) {
4758
return new MessageBuilder(serializerMap, messageBag.getMessage(messageKey));
4859
}
4960
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package me.tinyoverflow.tolker.serializer;
2+
3+
import net.kyori.adventure.text.Component;
4+
import net.kyori.adventure.text.TextComponent;
5+
import org.jetbrains.annotations.NotNull;
6+
7+
public class ComponentSerializer implements TypeSerializer<TextComponent>
8+
{
9+
@Override
10+
public @NotNull Component serialize(@NotNull TextComponent obj)
11+
{
12+
return obj;
13+
}
14+
}

src/test/java/me/tinyoverflow/tolker/MessageBuilderTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ void setUp()
2424
bag.addMessage("choice", "I met <choice:'0#no developer|1#one developer|1<many developers'>!");
2525
bag.addMessage("boolean-true", "Active: <active:'yes':'no'>");
2626
bag.addMessage("boolean-false", "Active: <active:'yes':'no'>");
27+
bag.addMessage("plain", "Plain Text");
28+
bag.addMessage("static-embed", "Embed: <embed>");
2729

2830
tolker = new Tolker(bag);
2931
tolker.registerDefaultSerializers();
@@ -88,8 +90,12 @@ void buildWithBooleanChoiceFormatter()
8890
}
8991

9092
@Test
91-
void buildWithStaticEmbed() {
92-
Component component = tolker.build("static-embed").build();
93-
assertEquals("Embed: Plain Message", PlainTextComponentSerializer.plainText().serialize(component));
93+
void buildWithComponent() {
94+
Component embed = tolker.build("plain").build();
95+
Component component = tolker.build("static-embed")
96+
.with("embed", embed)
97+
.build();
98+
99+
assertEquals("Embed: Plain Text", PlainTextComponentSerializer.plainText().serialize(component));
94100
}
95101
}

0 commit comments

Comments
 (0)