Skip to content

Commit a3cf27b

Browse files
committed
copy NBTModifier temporary to start working on a fix for 1.20.6
1 parent 64e35fe commit a3cf27b

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/main/java/me/hsgamer/bettergui/builder/ItemModifierBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import me.hsgamer.bettergui.modifier.NBTModifier;
34
import me.hsgamer.hscore.builder.MassBuilder;
45
import me.hsgamer.hscore.bukkit.item.modifier.*;
56
import me.hsgamer.hscore.minecraft.item.ItemModifier;
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package me.hsgamer.bettergui.modifier;
2+
3+
import com.google.gson.Gson;
4+
import me.hsgamer.hscore.common.StringReplacer;
5+
import me.hsgamer.hscore.common.Validate;
6+
import me.hsgamer.hscore.minecraft.item.ItemModifier;
7+
import org.bukkit.Bukkit;
8+
import org.bukkit.inventory.ItemStack;
9+
import org.jetbrains.annotations.NotNull;
10+
11+
import java.util.Collection;
12+
import java.util.Map;
13+
import java.util.Objects;
14+
import java.util.UUID;
15+
16+
public class NBTModifier implements ItemModifier<ItemStack> {
17+
private static final Gson GSON = new Gson();
18+
private String nbtData = "";
19+
20+
@SuppressWarnings("deprecation")
21+
@Override
22+
public @NotNull ItemStack modify(@NotNull ItemStack original, UUID uuid, @NotNull Collection<StringReplacer> stringReplacers) {
23+
if (Validate.isNullOrEmpty(nbtData)) {
24+
return original;
25+
}
26+
try {
27+
return Bukkit.getUnsafe().modifyItemStack(original, StringReplacer.replace(nbtData, uuid, stringReplacers));
28+
} catch (Throwable throwable) {
29+
return original;
30+
}
31+
}
32+
33+
@Override
34+
public Object toObject() {
35+
return nbtData;
36+
}
37+
38+
@Override
39+
public void loadFromObject(Object object) {
40+
if (object instanceof Map) {
41+
Map<?, ?> map = (Map<?, ?>) object;
42+
this.nbtData = GSON.toJson(map);
43+
} else {
44+
this.nbtData = Objects.toString(object, "");
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)