Skip to content

Commit 675a057

Browse files
committed
NbtItemStack
1 parent 2562a0c commit 675a057

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

src/main/java/cat/nyaa/nyaacore/NyaaCoreLoader.java

+6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import cat.nyaa.nyaacore.component.IMessageQueue;
44
import cat.nyaa.nyaacore.component.NyaaComponent;
5+
import cat.nyaa.nyaacore.configuration.NbtItemStack;
56
import cat.nyaa.nyaacore.http.client.HttpClient;
67
import cat.nyaa.nyaacore.timer.TimerManager;
78
import cat.nyaa.nyaacore.utils.ClickSelectionUtils;
89
import cat.nyaa.nyaacore.utils.OfflinePlayerUtils;
910
import org.bukkit.Bukkit;
11+
import org.bukkit.configuration.serialization.ConfigurationSerialization;
1012
import org.bukkit.craftbukkit.v1_13_R2.util.CraftMagicNumbers;
1113
import org.bukkit.plugin.java.JavaPlugin;
1214

@@ -20,6 +22,10 @@ public static NyaaCoreLoader getInstance() {
2022

2123
public static final String TARGET_MAPPING = "00ed8e5c39debc3ed194ad7c5645cc45";
2224

25+
static {
26+
ConfigurationSerialization.registerClass(NbtItemStack.class);
27+
}
28+
2329
@Override
2430
public void onLoad() {
2531
instance = this;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package cat.nyaa.nyaacore.configuration;
2+
3+
import cat.nyaa.nyaacore.utils.ItemStackUtils;
4+
import org.bukkit.configuration.serialization.ConfigurationSerializable;
5+
import org.bukkit.inventory.ItemStack;
6+
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
10+
public class NbtItemStack implements ConfigurationSerializable {
11+
public ItemStack it;
12+
13+
public NbtItemStack(ItemStack it) {
14+
this.it = it;
15+
}
16+
17+
@Override
18+
public Map<String, Object> serialize() {
19+
Map<String, Object> ret = new HashMap<>();
20+
if (it != null) {
21+
try {
22+
ret.put("nbt", ItemStackUtils.itemToBase64(it));
23+
} catch (Exception ex) {
24+
ex.printStackTrace();
25+
ret.put("nbt", "<null>");
26+
}
27+
} else {
28+
ret.put("nbt", "<null>");
29+
}
30+
31+
return ret;
32+
}
33+
34+
public static NbtItemStack deserialize(Map<String, Object> map) {
35+
try {
36+
String nbt = (String) map.getOrDefault("nbt", 0);
37+
if (nbt == null || "<null>".equalsIgnoreCase(nbt)) return new NbtItemStack(null);
38+
return new NbtItemStack(ItemStackUtils.itemFromBase64(nbt));
39+
} catch (Exception ex) {
40+
ex.printStackTrace();
41+
return new NbtItemStack(null);
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)