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

Помогите Заставить фейк игрока лежать

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

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

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

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    Хочу заставить фейк игрока лежать на версии 1.17.1.
    Что я делаю не так
    Код:
     GameProfile gameProfile = new GameProfile(UUID.randomUUID(), p.getName());
    
            EntityPlayer entityPlayer = new EntityPlayer(
                    ((CraftServer) Bukkit.getServer()).getServer(),
                    ((CraftWorld) p.getWorld()).getHandle(),
                    gameProfile);
            entityPlayer.setPosition(0,4,0);
            for(Player player :Bukkit.getOnlinePlayers()){
    
                PlayerConnection playerConnection = ((CraftPlayer)player).getHandle().b;
    
                playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a, entityPlayer));
                playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(entityPlayer));
            }
    
            entityPlayer.getBukkitEntity().sleep(new Location(Bukkit.getWorld("world"),0.5,4,0.5),true);
    
    
            for(Player player :Bukkit.getOnlinePlayers()){
                PlayerConnection playerConnection = ((CraftPlayer)player).getHandle().b;
                playerConnection.sendPacket(new PacketPlayOutEntityMetadata(entityPlayer.getId(), entityPlayer.getDataWatcher(), false));
    
            }
     
  2. Bomb

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

    Баллы:
    76
    Скорее всего проблема в невозможности получения Entity "entityPlayer.getBukkitEntity() " потому что игрок фейк.
     
  3. Автор темы
    ryfi

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

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    Нет, я пробовал
    entityPlayer.e(location);
    entityPlayer.sleep(location);
    entityPlayer.entitysleep(location);
    и это всё никак не помогло
     
  4. Bomb

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

    Баллы:
    76
    А какой у тебя location который ты передаёшь в
    entityPlayer.e(location);
    entityPlayer.sleep(location);
    entityPlayer.entitysleep(location);?
    EntityPlayer не должен брать Location bukkit'a
     
  5. Автор темы
    ryfi

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

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    Извиняюсь, попробовал еще раз entitySleep и это заработало, но моделька находится только на целых числах, а мне
    нужно что-бы она лежала на земле
     
  6. Автор темы
    ryfi

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

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    upload_2021-8-11_12-56-12.png upload_2021-8-11_12-56-39.png
    Моделька на y = 4
    А я хочу что-бы она была выше
     
  7. Bomb

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

    Баллы:
    76
    К сожалению точно сказать как это сделать на 1.17.1 не могу опробуй отправить PacketPlayOutEntityTeleport после
    PacketPlayOutEntityMetadata
     
  8. Автор темы
    ryfi

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

    Баллы:
    61
    Имя в Minecraft:
    Ryfi_Coder
    Оооо, спасибо! Теперь работает :)
     
Статус темы:
Закрыта.

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