1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите NPC не отображаются но в TABe есть

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

Статус темы:
Закрыта.
  1. Автор темы
    slime_j

    slime_j Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    slime_j
    Такая интересная проблема. Я создаю NPC и всё прекрасно работает, их сохраняю в кастомный файл конфиг. Когда делаю рестарт они должны были бы назад появится и достать свои характеристики из файла. Но вместо этого они словно невидимы взаимодействовать нельзя, увидеть тоже, только в TABе их можно увидеть "никнеймы"(делаю вывод что из файла они достаются, но почему то не спавнятся)
    [​IMG] [​IMG]
    (При обычном перезаходе они видны) Вроде бы пакеты отправляю
    Код:
    public static void loadNPC(Location location, GameProfile profile) {
            MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
            WorldServer world = ((CraftWorld) location.getWorld()).getHandle();
            GameProfile gameProfile1 = profile;
            EntityPlayer npc = new EntityPlayer(server, world, gameProfile1);
            
            npc.setLocation(location.getX(), location.getY(), location.getZ(),
                    location.getYaw(), location.getPitch());
            
            addNPCPacket(npc);
            NPC.add(npc);
        }
    Код:
    public static void addNPCPacket(EntityPlayer npc) {
            for(Player player : Bukkit.getOnlinePlayers()) {
                PlayerConnection connection = ((CraftPlayer)player).getHandle().b;
                connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a, npc));
                connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
                connection.sendPacket(new PacketPlayOutEntityHeadRotation(npc, (byte) (npc.getYRot() * 256/360)));
            }
        }
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Смотри логи клиента на наличие ошибок
     
  3. Автор темы
    slime_j

    slime_j Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    slime_j
    нема
     
  4. SaMEC

    SaMEC Старожил Пользователь

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Пакеты отправляешь с определенным интервалом? Или что как
     
  5. Автор темы
    slime_j

    slime_j Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    slime_j
    задержка в 0 тиков
     
  6. Автор темы
    slime_j

    slime_j Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    slime_j
    То что NPC невидим или вообще отсутствует а только в табе есть, может быть связано с тем, что когда я спавню NPC через команду то его gameProfile ещё не обладает текстурой "скином", а когда он должен заспавнится из файла то его gameProfile имеет properties тобиж скин?
    GameProfile до получения скина (properties) :
    Код:
    com.mojang.authlib.GameProfile@51ddd5de[id=6c2e3e07-68da-4ab0-bf7c-81011652f7ad,name=зa123,properties={},legacy=false]
    GameProfile после получения скина (properties) :
    Код:
    com.mojang.authlib.GameProfile@51ddd5de[id=6c2e3e07-68da-4ab0-bf7c-81011652f7ad,name=зa123,properties={textures=[com.mojang.authlib.properties.Property@49a2c51e]},legacy=false]
     
    Последнее редактирование: 19 янв 2022
Статус темы:
Закрыта.

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