Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.

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;
            }
        }
    }
}
 
Ну так а вопрос-то в чём? Что конкретно не работает?

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

Ты нигде не заносишь значения в lastClick
 
Ну так а вопрос-то в чём? Что конкретно не работает?

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

Ты нигде не заносишь значения в lastClick
Я хочу сделать активацию команды по двойному нажатию ЛКМ
А, не работает считывание это самого двойного нажатия
 
Я хочу сделать активацию команды по двойному нажатию ЛКМ
А, не работает считывание это самого двойного нажатия
Выше уже написал, в чём одна из причин. Разбирайся, как работает твой же код
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх