Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите NBT для спавнера

Тема в разделе "Разработка плагинов для новичков", создана пользователем Fenix78563, 25 дек 2016.

  1. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Доброго времени суток, форумчане.

    пытаюсь добавить спавнеру в инвентаре NBT Tag EntityId

    Код:
    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;
    
    Однако код не пашет. Ни ошибок ничего.

    Сначала пытался сделать код независимым от версии и было так:
    Код:
    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);
    
    Но он делал все ту же свинью, и я решил сначала проверить на более простом, но он, как я сказал выше, не пашет(делает свинку). Где подстава?
     
    Последнее редактирование: 25 дек 2016
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Тут есть свои плюсы и минусы, рефлексия раза в 3 тормознее будет.
     
  4. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    зато мультиверсия.

    И проблема в том что таг не ставится. (вместо коровы\курицы и т.д все еще дефолтная свинюха)
     

Поделиться этой страницей