Skip to content

Commit ec9c4e6

Browse files
committed
Rework of chat elements
1 parent 7101fd2 commit ec9c4e6

File tree

16 files changed

+533
-215
lines changed

16 files changed

+533
-215
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ We provide some documentation on how to migrate your existing plugin to use the
3131
<dependency>
3232
<groupId>dev.simplix</groupId>
3333
<artifactId>protocolize-api</artifactId>
34-
<version>2.3.2</version>
34+
<version>2.3.3</version>
3535
<scope>provided</scope>
3636
</dependency>
3737
```

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dev.simplix</groupId>
88
<artifactId>protocolize</artifactId>
9-
<version>2.3.2</version>
9+
<version>2.3.3</version>
1010
<packaging>pom</packaging>
1111

1212
<modules>
@@ -23,7 +23,7 @@
2323
<bungeecord.version>1.20-R0.2-SNAPSHOT</bungeecord.version>
2424
<velocity.version>3.2.0-SNAPSHOT</velocity.version>
2525
<bytebuddy.version>1.11.13</bytebuddy.version>
26-
<data.version>2.3.2.1</data.version>
26+
<data.version>2.3.3</data.version>
2727
</properties>
2828

2929
<repositories>

protocolize-api/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<groupId>dev.simplix</groupId>
99
<artifactId>protocolize</artifactId>
10-
<version>2.3.2</version>
10+
<version>2.3.3</version>
1111
</parent>
1212

1313
<artifactId>protocolize-api</artifactId>
14-
<version>2.3.2</version>
14+
<version>2.3.3</version>
1515

1616
<dependencies>
1717
<dependency>

protocolize-api/src/main/java/dev/simplix/protocolize/api/ComponentConverter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.simplix.protocolize.api;
22

3+
import net.querz.nbt.tag.Tag;
4+
35
/**
46
* Date: 24.08.2021
57
*
@@ -11,8 +13,14 @@ public interface ComponentConverter<T> {
1113

1214
String toJson(T component);
1315

16+
Tag<?> toNbt(T component);
17+
1418
T fromLegacyText(String legacyText);
1519

1620
T fromJson(String json);
1721

22+
T fromNbt(Tag<?> tag);
23+
24+
void disableItalic(T component);
25+
1826
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package dev.simplix.protocolize.api.chat;
2+
3+
import dev.simplix.protocolize.api.ComponentConverter;
4+
import dev.simplix.protocolize.api.Protocolize;
5+
import dev.simplix.protocolize.api.providers.ComponentConverterProvider;
6+
import net.querz.nbt.tag.Tag;
7+
8+
public interface ChatElement<T> {
9+
10+
static <T> ChatElement<T> of(T component) {
11+
ComponentConverter<T> converter = (ComponentConverter<T>) Protocolize.getService(ComponentConverterProvider.class).platformConverter();
12+
return new ChatElementImpl<>(converter, component);
13+
}
14+
15+
static <T> ChatElement<T> ofLegacyText(String legacyText) {
16+
return ChatElementImpl.ofLegacyText(legacyText);
17+
}
18+
19+
static <T> ChatElement<T> ofJson(String json) {
20+
return ChatElementImpl.ofJson(json);
21+
}
22+
23+
static <T> ChatElement<T> ofNbt(Tag<?> nbt) {
24+
return ChatElementImpl.ofNbt(nbt);
25+
}
26+
27+
ChatElement<T> disableItalic();
28+
29+
T asComponent();
30+
31+
String asJson();
32+
33+
String asLegacyText();
34+
35+
Tag<?> asNbt();
36+
37+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package dev.simplix.protocolize.api.chat;
2+
3+
import dev.simplix.protocolize.api.ComponentConverter;
4+
import dev.simplix.protocolize.api.Protocolize;
5+
import dev.simplix.protocolize.api.providers.ComponentConverterProvider;
6+
import net.querz.nbt.tag.Tag;
7+
8+
class ChatElementImpl<T> implements ChatElement<T> {
9+
10+
private final ComponentConverter<T> componentConverter;
11+
private T component;
12+
13+
ChatElementImpl(ComponentConverter<T> componentConverter, T component) {
14+
this.componentConverter = componentConverter;
15+
this.component = component;
16+
}
17+
18+
static <T> ChatElement<T> ofLegacyText(String text) {
19+
ComponentConverter<T> converter = (ComponentConverter<T>) Protocolize.getService(ComponentConverterProvider.class).platformConverter();
20+
return new ChatElementImpl<>(converter, converter.fromLegacyText(text));
21+
}
22+
23+
static <T> ChatElement<T> ofJson(String text) {
24+
ComponentConverter<T> converter = (ComponentConverter<T>) Protocolize.getService(ComponentConverterProvider.class).platformConverter();
25+
return new ChatElementImpl<>(converter, converter.fromJson(text));
26+
}
27+
28+
static <T> ChatElement<T> ofNbt(Tag<?> tag) {
29+
ComponentConverter<T> converter = (ComponentConverter<T>) Protocolize.getService(ComponentConverterProvider.class).platformConverter();
30+
return new ChatElementImpl<>(converter, converter.fromNbt(tag));
31+
}
32+
33+
@Override
34+
public ChatElement<T> disableItalic() {
35+
componentConverter.disableItalic(component);
36+
return this;
37+
}
38+
39+
@Override
40+
public T asComponent() {
41+
return component;
42+
}
43+
44+
@Override
45+
public String asJson() {
46+
return componentConverter.toJson(component);
47+
}
48+
49+
@Override
50+
public String asLegacyText() {
51+
return componentConverter.toLegacyText(component);
52+
}
53+
54+
@Override
55+
public Tag<?> asNbt() {
56+
return componentConverter.toNbt(component);
57+
}
58+
59+
}

protocolize-api/src/main/java/dev/simplix/protocolize/api/inventory/Inventory.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.simplix.protocolize.api.ComponentConverter;
44
import dev.simplix.protocolize.api.Protocolize;
5+
import dev.simplix.protocolize.api.chat.ChatElement;
56
import dev.simplix.protocolize.api.item.BaseItemStack;
67
import dev.simplix.protocolize.api.item.ItemStack;
78
import dev.simplix.protocolize.api.providers.ComponentConverterProvider;
@@ -29,14 +30,11 @@
2930
@Accessors(fluent = true)
3031
public class Inventory {
3132

32-
private static final ComponentConverter CONVERTER = Protocolize.getService(ComponentConverterProvider.class)
33-
.platformConverter();
34-
3533
private final Map<Integer, BaseItemStack> items = new ConcurrentHashMap<>();
3634
private final List<Consumer<InventoryClick>> clickConsumers = new ArrayList<>();
3735
private final List<Consumer<InventoryClose>> closeConsumers = new ArrayList<>();
3836
private InventoryType type;
39-
private String titleJson;
37+
private ChatElement<?> title;
4038

4139
public Inventory(InventoryType type) {
4240
this.type = type;
@@ -73,28 +71,6 @@ public Inventory item(int slot, ItemStack stack) {
7371
return this;
7472
}
7573

76-
public <T> T title() {
77-
return title(false);
78-
}
79-
80-
public <T> T title(boolean legacyString) {
81-
if (legacyString) {
82-
return (T) CONVERTER.toLegacyText(CONVERTER.fromJson(titleJson));
83-
} else {
84-
return (T) CONVERTER.fromJson(titleJson);
85-
}
86-
}
87-
88-
public Inventory title(String legacyName) {
89-
this.titleJson = CONVERTER.toJson(CONVERTER.fromLegacyText(legacyName));
90-
return this;
91-
}
92-
93-
public Inventory title(Object titleComponent) {
94-
this.titleJson = CONVERTER.toJson(titleComponent);
95-
return this;
96-
}
97-
9874
public Inventory onClick(Consumer<InventoryClick> consumer) {
9975
clickConsumers.add(consumer);
10076
return this;

protocolize-api/src/main/java/dev/simplix/protocolize/api/item/BaseItemStack.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.simplix.protocolize.api.item;
22

3+
import dev.simplix.protocolize.api.chat.ChatElement;
4+
35
import java.util.List;
46
import java.util.Set;
57

@@ -10,33 +12,19 @@ public interface BaseItemStack {
1012

1113
Set<ItemFlag> itemFlags();
1214

13-
List<String> loreJson();
14-
15-
String displayNameJson();
16-
1715
boolean canBeStacked(BaseItemStack stack);
1816

19-
<T> T displayName();
20-
21-
<T> T displayName(boolean legacyString);
22-
23-
BaseItemStack displayName(String legacyName);
24-
25-
BaseItemStack displayName(Object displayName);
26-
27-
<T> List<T> lore();
28-
29-
<T> List<T> lore(boolean legacyString);
17+
ChatElement<?> displayName();
3018

31-
void lore(List<?> list, boolean legacyString);
19+
BaseItemStack displayName(ChatElement<?> displayName);
3220

33-
void lore(int index, String legacyText);
21+
<T> List<ChatElement<?>> lore();
3422

35-
void lore(int index, Object component);
23+
void lore(List<ChatElement<?>> list);
3624

37-
void addToLore(String legacyText);
25+
void lore(int index, ChatElement<?> element);
3826

39-
void addToLore(Object component);
27+
void addToLore(ChatElement<?> element);
4028

4129
BaseItemStack deepClone();
4230

0 commit comments

Comments
 (0)