Skip to content

Commit 840ad50

Browse files
committed
fix: using DataVersion for items in 1.9-1.13.2
1 parent dcc9027 commit 840ad50

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

nms/build.gradle

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ accessors {
3535
constructor()
3636
method void, 'putInt', String, int
3737
method void, 'putString', String, String
38-
method 'net.minecraft.nbt.Tag', 'put', String, 'net.minecraft.nbt.Tag'
38+
methodChain {
39+
it.item('net.minecraft.nbt.Tag', 'put', String, 'net.minecraft.nbt.Tag')
40+
it.item(void, 'set', String, 'net.minecraft.server.VVV.NBTBase') // Spigot mapped
41+
}
3942
method('net.minecraft.nbt.Tag', 'get', String)
4043
}
4144
mapClass('net.minecraft.nbt.TagParser') {
@@ -312,6 +315,7 @@ accessors {
312315
}
313316
mapClass('net.minecraft.world.item.ItemStack') {
314317
method(void, 'setTag', CompoundTag)
318+
getter('net.minecraft.world.item.Item', 'item')
315319

316320
// 1.20.5+
317321
method(java.util.Optional, 'parse', 'net.minecraft.core.HolderLookup$Provider', 'net.minecraft.nbt.Tag')
@@ -337,4 +341,11 @@ accessors {
337341
mapClass('net.minecraft.nbt.NbtOps') {
338342
field(it.name, 'INSTANCE')
339343
}
344+
mapClass('net.minecraft.world.item.Item') {
345+
field('net.minecraft.server.VVV.RegistryMaterials', 'REGISTRY') // <= 1.13
346+
}
347+
348+
mapClass('net.minecraft.core.MappedRegistry') {
349+
method(Object, 'func_177774_c', Object) // < 1.13
350+
}
340351
}

plugin/src/main/java/org/screamingsandals/bedwars/lib/nms/utils/TagApplier.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import org.jetbrains.annotations.NotNull;
66
import org.screamingsandals.bedwars.lib.nms.accessors.CompoundTagAccessor;
77
import org.screamingsandals.bedwars.lib.nms.accessors.DataConverterManagerAccessor;
8+
import org.screamingsandals.bedwars.lib.nms.accessors.ItemAccessor;
89
import org.screamingsandals.bedwars.lib.nms.accessors.ItemStackAccessor;
10+
import org.screamingsandals.bedwars.lib.nms.accessors.MappedRegistryAccessor;
911
import org.screamingsandals.bedwars.lib.nms.accessors.MinecraftServerAccessor;
1012
import org.screamingsandals.bedwars.lib.nms.accessors.NbtOpsAccessor;
1113
import org.screamingsandals.bedwars.lib.nms.accessors.ReferencesAccessor;
@@ -81,7 +83,7 @@ public class TagApplier {
8183

8284
// 1.9-1.12.2
8385
Object compound = CompoundTagAccessor.CONSTRUCTOR_0.get().newInstance();
84-
ClassStorage.getMethod(compound, CompoundTagAccessor.METHOD_PUT_STRING.get()).invoke("id", stack.getType().getKey().toString());
86+
ClassStorage.getMethod(compound, CompoundTagAccessor.METHOD_PUT_STRING.get()).invoke("id", ClassStorage.getMethod(ItemAccessor.FIELD_REGISTRY.get(), MappedRegistryAccessor.METHOD_FUNC_177774_C.get()).invoke(ClassStorage.getMethod(ClassStorage.getHandleOfItemStack(stack), ItemStackAccessor.METHOD_GET_ITEM.get()).invoke()).toString());
8587
ClassStorage.getMethod(compound, CompoundTagAccessor.METHOD_PUT_INT.get()).invoke("Count", stack.getAmount());
8688
ClassStorage.getMethod(compound, CompoundTagAccessor.METHOD_PUT.get()).invoke("tag", parsedTag);
8789

0 commit comments

Comments
 (0)