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

Помогите Как заспавнить entity (ArmorStand), добавить ему бесконечный эффект невидимости и посадить игрка

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Почему-то не работает
    Код:
        @EventHandler
        public void EntityLeft (EntityDismountEvent e) {
            if (e.getEntity() == CommandSIT.as)
                CommandSIT.as.remove();
        }
    Код:
    public class CommandSIT implements CommandExecutor {
        static public ArmorStand as;
    
        @Override
        public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
            //Получеие игрока, отправившего комманду
            Player pl = (Player) commandSender;
    
            //Получаем мир в котором находиться отправитель комманды
            World world = pl.getWorld();
            //Получаем позицию, на коотрой долеш стоять Армор Стенд
            Location location = pl.getLocation().add(0, -1.8f, 0);
    
            //Если пользователь не стоит на земле, то выводит ошибку
            if (!pl.isOnGround()) {
                pl.sendMessage(ChatColor.GOLD + "CatLand RP" + ChatColor.RED + " | " + ChatColor.WHITE + "Вы не можете сидеть в воздухе!");
                return true;
            }
            //Если пользователь в\на транспорте, то выводит ошибку
            if (pl.isInsideVehicle()) {
                pl.sendMessage(ChatColor.GOLD + "CatLand RP" + ChatColor.RED + " | " + ChatColor.WHITE + "Вы не можете сидеть в\\на транспорте!");
                return true;
            }
    
            //Слздаём Энтити
            Entity ent = world.spawn(location, ArmorStand.class);
    
            //Создаём Стойку Для Брони
            as = (ArmorStand)ent;
    
            //Делаем Стойку невидимой
            as.setVisible(false);
            //Убираем гравитацию со стойки
            as.setGravity(false);
    
            //Садим игрока на Стойку
            as.addPassenger(pl);
    
            return true;
        }
    }
     
  2. alexandrage

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

    Баллы:
    173
    Чет в голос.
     
  3. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Что?
     
  4. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Помогите пожалуйста, я знаю, что я нуб :cry:
     
  5. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Учись пользоваться гуглом. В начале у тебя были вполне нормальные вопросы, но теперь ты спрашиваешь совсем уж банальные вещи.

    Объекты сравниваются через equals.
     
  6. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Всё-равно не работает
     
  7. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Что мне спрашивать?
     
  8. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Я-бы давно поискал-бы если-бы знал что мне спрашивать
     
  9. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Пожалуйста, просто скиньте код :cry:
     
  10. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    На форуме ПОМОГАЮТ, а не пишут код за тебя.
    Хендлер команды один, но срабатывает на ВСЕХ кто написал команду хендлера. Твоя переменная статична, а следовательно будет постоянно изменяться в зависимости от того, кто последний исполнил команду.

    Тебе нужно, как минимум, иметь Set / List со всеми арморстендами что когда-либо были созданы. для того чтобы на них посидеть
    И уже на этапе хендла дизмаунта проверять, есть ли в сете / листе арморстенд, с которого слазит игрок и если есть - деспавнить игрока и удалять сервер к херам арморстенд.
     
  11. alexandrage

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

    Баллы:
    173
    Сложна, можно тупо скорборд ему повесить и по нему определять.
     
  12. Автор темы
    AlexP_

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

    Баллы:
    66
    Имя в Minecraft:
    AlexP_
    Я не понял не одного слова. Ясно...
    Я говно и мой сервер тоже! Спасибо всем вам, тема закрыта, как и моё желание заниматься плагинами! :good:
     
Статус темы:
Закрыта.

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