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

Помогите Считывание двойного клика.

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

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

    GoldenDragon Новичок

    Баллы:
    6
    Имя в Minecraft:
    GDragonChannel
    Мне нужно считывать двойное нажатие ЛКМ
    Вот код:
    Код:
    package GDevs.paths.Events;
    
    import org.bukkit.Server;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    
    import java.net.http.WebSocket;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
    
    public class AbilityUse implements Listener, WebSocket.Listener {
        private final Map<UUID, Long> lastClick = new HashMap<>();
        private static final long DOUBLE_CLICK_DELAY = 500;
    
        @Override
        public void onOpen(WebSocket webSocket) {
            WebSocket.Listener.super.onOpen(webSocket);
        }
    
        @EventHandler
        public void onPlayerClick(PlayerInteractEvent event) {
            UUID uuid = event.getPlayer().getUniqueId();
            long currentTime = System.currentTimeMillis();
    
            if (lastClick.containsKey(uuid)) {
                long lastTime = lastClick.get(uuid);
                if (currentTime - lastTime <= DOUBLE_CLICK_DELAY) {
                    event.getPlayer().performCommand("a use " + SelectSlotEvent.SelectedSlot);
                    event.getPlayer().sendMessage("Работает клик");
                    lastClick.remove(uuid); // сбросить таймер после двойного нажатия
                    return;
                } else {
                    return;
                }
            }
        }
    }
    
     
  2. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну так а вопрос-то в чём? Что конкретно не работает?

    Я сходу, например, вижу условие, которое никогда не выполнится:
    if (lastClick.containsKey(uuid))

    Ты нигде не заносишь значения в lastClick
     
  3. Автор темы
    GoldenDragon

    GoldenDragon Новичок

    Баллы:
    6
    Имя в Minecraft:
    GDragonChannel
    Я хочу сделать активацию команды по двойному нажатию ЛКМ
    А, не работает считывание это самого двойного нажатия
     
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Выше уже написал, в чём одна из причин. Разбирайся, как работает твой же код
     
Статус темы:
Закрыта.

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