Tried fixing double interact event, fixed not spawning scruff

This commit is contained in:
2022-05-29 17:46:50 +02:00
parent f87cac8d52
commit 686925361a
10 changed files with 34 additions and 22 deletions
@@ -9,7 +9,7 @@ public class QuestComplete implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onQuestComplete(QuestCompleteEvent event) {
event.getPlayer().sendMiniMessage("<green>You completed a quest gj.</green>", null);
event.getPlayer().sendMiniMessage("<green>You completed a quest gj. - DEBUG</green>", null);
}
}
@@ -1,6 +1,6 @@
package com.alttd.altitudequests.events;
import com.alttd.altitudequests.AQuests;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.config.Config;
import com.alttd.altitudequests.config.LocalConfig;
import net.kyori.adventure.inventory.Book;
@@ -14,24 +14,34 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
public class TalkToQuest implements Listener {
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
private static final Set<UUID> tmp = new HashSet<>();
@EventHandler(priority = EventPriority.HIGH)
public void onEntityInteract(PlayerInteractEntityEvent event) {
if (LocalConfig.activeNPC == null || !LocalConfig.activeNPC.equals(event.getRightClicked().getUniqueId()))
return;
event.setCancelled(true);
if (!tmp.remove(event.getPlayer().getUniqueId())) {
tmp.add(event.getPlayer().getUniqueId());
return;
}
event.getPlayer().sendMiniMessage("Interacted with scruff - DEBUG", null);
new BukkitRunnable() {
@Override
public void run() {
event.getPlayer().openBook(getBook(event));
}
}.runTaskTimerAsynchronously(AQuests.getInstance(), 0, 0);
}.runTaskTimerAsynchronously(AQuest.getInstance(), 0, 0);
//TODO make it so there can be one book config per quest
//TODO make it so everything can be done with commands and just don't let them tab complete and do them through the book instead
//TODO in config allow a multitude of events to be prepared and randomly select from them at certain times of day?