- Баллы
- 76
- Имя в Minecraft
- Blc_Dragon
Доброго времени суток, форумчане.
пытаюсь добавить спавнеру в инвентаре NBT Tag EntityId
Однако код не пашет. Ни ошибок ничего.
Сначала пытался сделать код независимым от версии и было так:
Но он делал все ту же свинью, и я решил сначала проверить на более простом, но он, как я сказал выше, не пашет(делает свинку). Где подстава?
пытаюсь добавить спавнеру в инвентаре NBT Tag EntityId
Java:
net.minecraft.server.v1_10_R1.ItemStack stack = CraftItemStack.asNMSCopy(item);
NBTTagCompound tag = stack.getTag(); //Create the NMS Stack's NBT (item data)
tag.setString("EntityId", monster);stack.setTag(tag);
item = CraftItemStack.asCraftMirror(stack);
return item;
Сначала пытался сделать код независимым от версии и было так:
Java:
Object nmsStack = getCraftbukkitClass("inventory.CraftItemStack").getMethod("asNMSCopy", ItemStack.class).invoke(null, item);
Object tag = (Boolean)nmsStack.getClass().getMethod("hasTag").invoke(nmsStack) ? nmsStack.getClass().getMethod("getTag").invoke(nmsStack) : getNmsClass("NBTTagCompound").newInstance();
Object nested = getNmsClass("NBTTagCompound").newInstance();
nested.getClass().getMethod("setString", String.class, String.class).invoke(nested, "EntityId", monster);
tag.getClass().getMethod("set", String.class, getNmsClass("NBTBase")).invoke(tag, "SpawnData", nested);
nmsStack.getClass().getMethod("setTag", getNmsClass("NBTTagCompound")).invoke(nmsStack, tag);
item = (ItemStack) getCraftbukkitClass("inventory.CraftItemStack").getMethod("asBukkitCopy", getNmsClass("ItemStack")).invoke(null, nmsStack);
Последнее редактирование: