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

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

Discussion in 'Разработка плагинов для новичков' started by Fenix78563, Dec 25, 2016.

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

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

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

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

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

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

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

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

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

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

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

Share This Page