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

Помогите Как мне обработать событие во время выполения кода

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

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

    FurEN Новичок

    Баллы:
    16
    В общем пишу небольшой плагин, который работает с модом emotecraft. Мод стоит на клиенте, а на сервере стоит плагин.Все работает, теперь хочу предусмотреть события при которых игрок отходит от определенного блока или использует клавишу Shift. Вот я не понимаю как мне это сделать.
    Вот сам код:

    @EventHandler
    public void handlerEventShiftPlusRightClick(PlayerInteractEvent e) {
    Player p = e.getPlayer();
    if (e.getAction() == Action.RIGHT_CLICK_BLOCK && p.isSneaking()) {
    Block block = e.getClickedBlock();
    if (block.getType() == Material.SNOW) {
    double distance = p.getLocation().distance(block.getLocation());
    if (distance >= 1.3) return;
    else {
    p.performCommand("emotes play \"ThrowAsnowball\""); // здесь вызов эмоции​

    Bukkit.getServer().getScheduler().runTaskLater(this, () ->
    {
    p.performCommand("emotes stop ");
    ItemStack item = new ItemStack(Material.SNOWBALL);
    p.getInventory().addItem(item);
    e.getClickedBlock().setType(Material.AIR);​
    }, 100L);
    }​
    }​
    }​
    }
     
  2. KvaytG

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

    Баллы:
    66
    Имя в Minecraft:
    KvaytG
    Если я правильно понял, то тебе нужно просто отслеживать PlayerMoveEvent, в котором ты будешь проверять шифтится ли игрок и если это так, то проверять дистанцию между блоком и игроком
     

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