Tried fixing double interact event, fixed not spawning scruff

This commit is contained in:
Teriuihi 2022-05-29 17:46:50 +02:00
parent f87cac8d52
commit 686925361a
10 changed files with 34 additions and 22 deletions

View File

@ -9,11 +9,11 @@ import com.alttd.altitudequests.events.TalkToQuest;
import com.alttd.altitudequests.util.Logger;
import org.bukkit.plugin.java.JavaPlugin;
public final class AQuests extends JavaPlugin {
public final class AQuest extends JavaPlugin {
public static AQuests instance;
public static AQuest instance;
public static AQuests getInstance() {
public static AQuest getInstance() {
return instance;
}

View File

@ -1,6 +1,6 @@
package com.alttd.altitudequests.commands;
import com.alttd.altitudequests.AQuests;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.commands.subcommands.CommandCreateScruff;
import com.alttd.altitudequests.commands.subcommands.CommandHelp;
import com.alttd.altitudequests.commands.subcommands.CommandReload;
@ -19,9 +19,9 @@ public class CommandManager implements CommandExecutor, TabExecutor {
private final List<SubCommand> subCommands;
public CommandManager() {
AQuests aQuests = AQuests.getInstance();
AQuest aQuest = AQuest.getInstance();
PluginCommand command = aQuests.getCommand("aquest");
PluginCommand command = aQuest.getCommand("aquest");
if (command == null) {
subCommands = null;
Logger.severe("Unable to find AltitudeQuests command.");

View File

@ -18,7 +18,7 @@ public abstract class SubCommand {
public abstract String getName();
public String getPermission() {
return "aquests." + getName();
return "aquest." + getName();
}
public abstract List<String> getTabComplete(CommandSender commandSender, String[] args);

View File

@ -22,20 +22,20 @@ public class CommandCreateScruff extends SubCommand {
@Override
public boolean onCommand(CommandSender commandSender, String[] args) {
if (args.length != 8) {
if (args.length != 7) {
commandSender.sendMiniMessage(getHelpMessage(), null);
return true;
}
World world = Bukkit.getServer().getWorld(args[7]);
World world = Bukkit.getServer().getWorld(args[6]);
if (world == null) {
commandSender.sendMiniMessage(getHelpMessage(), null);
return true;
}
Location location;
try {
location = new Location(world, Double.parseDouble(args[2]), Double.parseDouble(args[3]), Double.parseDouble(args[4]),
Float.parseFloat(args[5]), Float.parseFloat(args[6]));
location = new Location(world, Double.parseDouble(args[1]), Double.parseDouble(args[2]), Double.parseDouble(args[3]),
Float.parseFloat(args[4]), Float.parseFloat(args[5]));
} catch (NumberFormatException exception) {
commandSender.sendMiniMessage("<red>Invalid arguments.</red>", null);
return true;
@ -48,11 +48,13 @@ public class CommandCreateScruff extends SubCommand {
wolf.setAI(false);
wolf.setCollarColor(DyeColor.MAGENTA);
wolf.setCustomNameVisible(true);
wolf.customName(getMiniMessage().deserialize("Scruff"));
wolf.customName(getMiniMessage().deserialize("<magenta>Scruff</magenta>"));
wolf.setSitting(true);
UUID uuid = wolf.getUniqueId();
LocalConfig.setActiveNPC(uuid);
commandSender.sendMiniMessage("<green>Spawned Scruff</green>", null);
return true;
}

View File

@ -1,6 +1,6 @@
package com.alttd.altitudequests.config;
import com.alttd.altitudequests.AQuests;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.util.Logger;
import com.google.common.collect.ImmutableMap;
import org.bukkit.configuration.ConfigurationSection;
@ -24,7 +24,7 @@ abstract class AbstractConfig {
YamlConfiguration yaml;
AbstractConfig(String filename) {
init(new File(AQuests.getInstance().getDataFolder(), filename), filename);
init(new File(AQuest.getInstance().getDataFolder(), filename), filename);
}
AbstractConfig(File file, String filename) {

View File

@ -1,6 +1,6 @@
package com.alttd.altitudequests.database;
import com.alttd.altitudequests.AQuests;
import com.alttd.altitudequests.AQuest;
import com.alttd.altitudequests.config.DatabaseConfig;
import com.alttd.altitudequests.util.Logger;
import org.bukkit.Bukkit;
@ -75,7 +75,7 @@ public class Database {
e.printStackTrace();
Logger.severe("Error while trying to create user point table");
Logger.severe("Shutting down AltitudeQuests");
Bukkit.getPluginManager().disablePlugin(AQuests.getInstance());
Bukkit.getPluginManager().disablePlugin(AQuest.getInstance());
}
}

View File

@ -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);
}
}

View File

@ -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?

View File

@ -1,13 +1,13 @@
package com.alttd.altitudequests.util;
import com.alttd.altitudequests.AQuests;
import com.alttd.altitudequests.AQuest;
public class Logger {
static private final java.util.logging.Logger logger;
static {
logger = AQuests.getInstance().getLogger();
logger = AQuest.getInstance().getLogger();
}
public static void info(String info, String... variables)

View File

@ -1,6 +1,6 @@
name: AQuests
version: '${version}'
main: com.alttd.altitudequests.AQuests
main: com.alttd.altitudequests.AQuest
api-version: 1.18
authors: [ Teriuihi ]
description: A plugin to run quests on a server