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

Помогите Не работает setY

Discussion in 'Разработка плагинов для новичков' started by anton3312578859, May 2, 2021.

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

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

    Trophy Points:
    68
    Имя в Minecraft:
    fynjy1111
    e.setCancelled(true); работает, а setY нет
    Code:
    @EventHandler
       public void onMove(PlayerMoveEvent e) {
           Location loc = e.getPlayer().getLocation();
           double x = loc.getX();
           double y = loc.getY();
           double z = loc.getZ();
           if (loc.getWorld().getEnvironment() == World.Environment.NETHER && loc.getY() >= 128.0D) {
               //e.setCancelled(true);
               loc.setY(126);
           }
       }
    
     
  2. Хостинг MineCraft
    <
  3. veyn12

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

    Trophy Points:
    68
    Имя в Minecraft:
    Veynique
    Писал от руки с телефона, могут быть ошибки, проверь
    PHP:
    Player p e.getPlayer();
    p.teleport(loc.add(0,126,0));
     
  4. Автор темы
    anton3312578859

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

    Trophy Points:
    68
    Имя в Minecraft:
    fynjy1111
    спасибо, но меня телепортирует в обычный мир, поэтому вот что я нашёл по запросу "player.teleport" в яндексе:
    Code:
    Location location = new Location(world, x, y, z);
    player.teleport(location);
    
     
  5. veyn12

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

    Trophy Points:
    68
    Имя в Minecraft:
    Veynique
    Можно и так, просто мир получи по локации игрока и телепортируй
     
  6. BrokenFG

    BrokenFG Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    BrokenFG
    Это так не работает. От изменения объекта локации, которые ты получил у игрока ты ничего не изменишь, т.к. метод player.getLocation() возвращает копию локации игрока. В твоем случае надо либо телепортировать игрока на локацию которую ты изменил, либо пользоваться методом этого ивента:
    Code:
    @EventHandler
       public void onMove(PlayerMoveEvent e) {
          Location loc = e.getPlayer().getLocation();
          double x = loc.getX();
          double y = loc.getY();
          double z = loc.getZ();
          if (loc.getWorld().getEnvironment() == World.Environment.NETHER && loc.getY() >= 128.0D) {
              loc.setY(126);
              e.setTo(loc);
          }
       }
    
     
  7. Автор темы
    anton3312578859

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

    Trophy Points:
    68
    Имя в Minecraft:
    fynjy1111
    Понял, огромное спасибо!
     

Share This Page