From 9da384693ee1d30c037f62c72812da1c8a9cc2db Mon Sep 17 00:00:00 2001 From: Stijn Bannink Date: Thu, 21 Sep 2023 17:34:48 +0200 Subject: [PATCH] Fully implemented tab complete --- .../showcontrol/ShowControlPlugin.java | 20 ++++---- .../sbdevelopment/showcontrol/api/SCAPI.java | 17 ++++++- .../showcontrol/api/triggers/Trigger.java | 11 +++-- .../api/triggers/impl/AnimaTrigger.java | 35 ++++++++++++-- .../api/triggers/impl/CommandTrigger.java | 9 ++-- .../api/triggers/impl/FireworkTrigger.java | 48 ++++++++++--------- .../api/triggers/impl/LaserTrigger.java | 23 ++++++--- .../api/triggers/impl/ParticleTrigger.java | 22 ++++++--- .../api/triggers/impl/SpotTrigger.java | 26 ++++++---- .../showcontrol/commands/ShowCMD.java | 14 +++--- .../showcontrol/data/DataStorage.java | 2 +- .../showcontrol/elements/Lasers.java | 2 +- .../showcontrol/elements/Spots.java | 2 +- .../showcontrol/gui/ShowCueGUI.java | 8 ++-- .../showcontrol/utils/MainUtil.java | 4 +- src/main/resources/plugin.yml | 1 + 16 files changed, 166 insertions(+), 78 deletions(-) diff --git a/src/main/java/tech/sbdevelopment/showcontrol/ShowControlPlugin.java b/src/main/java/tech/sbdevelopment/showcontrol/ShowControlPlugin.java index 01458ea..8a61674 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/ShowControlPlugin.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/ShowControlPlugin.java @@ -1,12 +1,13 @@ package tech.sbdevelopment.showcontrol; import co.aikar.commands.PaperCommandManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import tech.sbdevelopment.showcontrol.api.SCAPI; import tech.sbdevelopment.showcontrol.commands.ShowCMD; import tech.sbdevelopment.showcontrol.data.DataStorage; -import tech.sbdevelopment.showcontrol.api.SCAPI; import tech.sbdevelopment.showcontrol.utils.inventories.Inventory; -import org.bukkit.Bukkit; -import org.bukkit.plugin.java.JavaPlugin; public final class ShowControlPlugin extends JavaPlugin { private static ShowControlPlugin instance; @@ -27,12 +28,13 @@ public final class ShowControlPlugin extends JavaPlugin { commandManager.getCommandCompletions().registerCompletion("showname", c -> SCAPI.getShowsMap().keySet()); commandManager.getCommandCompletions().registerCompletion("showtype", c -> SCAPI.getTriggers().keySet()); commandManager.getCommandCompletions().registerCompletion("cuearg", c -> { - //Get the show type argument value, and return the tab complete for that argument - String showType = c.getContextValue(String.class, 2); - if (showType == null) { - return null; - } - return SCAPI.getTrigger().getArgumentTabComplete(c.getContextValue(Integer.class, 3), c.getContextValue(String.class, 4)); + String arguments = c.getContextValue(String.class, 3); + String[] args = arguments.split(" ", -1); + if (args.length < 1) { + return null; + } + int lastArgIndex = args.length - 2; + return SCAPI.getTabComplete(args[0], c.getSender() instanceof Player ? c.getPlayer() : null, lastArgIndex, args[lastArgIndex + 1]); }); getLogger().info("Loading GUI manageer..."); diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/SCAPI.java b/src/main/java/tech/sbdevelopment/showcontrol/api/SCAPI.java index ecf7d24..edef746 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/SCAPI.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/SCAPI.java @@ -1,6 +1,8 @@ package tech.sbdevelopment.showcontrol.api; import lombok.Getter; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.reflections.Reflections; import org.reflections.scanners.Scanners; import org.reflections.util.ClasspathHelper; @@ -14,16 +16,18 @@ import tech.sbdevelopment.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.data.DataStorage; import tech.sbdevelopment.showcontrol.utils.YamlFile; -import org.bukkit.Bukkit; import java.io.File; import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.*; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class SCAPI { + @Getter + private static final Map defaultTriggers = new HashMap<>(); //DO NOT USE, just for tab complete! @Getter private static final Map> triggers = new HashMap<>(); @Getter @@ -49,9 +53,20 @@ public class SCAPI { TriggerIdentifier identifier = trigger.getAnnotation(TriggerIdentifier.class); triggers.put(identifier.value(), (Class) trigger); + try { + defaultTriggers.put(identifier.value(), (Trigger) trigger.getDeclaredConstructor().newInstance()); + } catch (NoSuchMethodException | InvocationTargetException | InstantiationException | + IllegalAccessException ex) { + throw new RuntimeException("Could not find default constructor for trigger " + trigger.getSimpleName() + "! Tab complete will not work for this trigger.", ex); + } } } + public static List getTabComplete(String triggerType, Player player, int index, String arg) { + if (!defaultTriggers.containsKey(triggerType)) return new ArrayList<>(); + return defaultTriggers.get(triggerType).getArgumentTabComplete(player, index, arg); + } + public static T getTrigger(String data) throws ReflectiveOperationException, InvalidTriggerException, TooFewArgumentsException, IllegalArgumentException { String[] dataSplitter = data.split(" "); String[] dataSplitterNew = Arrays.copyOfRange(dataSplitter, 1, dataSplitter.length); diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/Trigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/Trigger.java index cb036db..704cc5e 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/Trigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/Trigger.java @@ -2,9 +2,13 @@ package tech.sbdevelopment.showcontrol.api.triggers; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; +import org.bukkit.entity.Player; +import javax.annotation.Nullable; import java.util.List; +@NoArgsConstructor(force = true) @AllArgsConstructor @Getter public abstract class Trigger { @@ -18,11 +22,12 @@ public abstract class Trigger { /** * This method gets fired when a player wants to add a cue * - * @param index The current argument index - * @param arg The current argument + * @param player The player that wants to add the cue, will be null if it's not a player + * @param index The current argument index + * @param arg The current argument * @return The tab complete value based on the index and argument */ - public abstract List getArgumentTabComplete(int index, String arg); + public abstract List getArgumentTabComplete(@Nullable Player player, int index, String arg); /** * This method gets fired when the cue gets removed diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/AnimaTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/AnimaTrigger.java index d2276fe..f631a12 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/AnimaTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/AnimaTrigger.java @@ -1,16 +1,26 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; -import tech.sbdevelopment.showcontrol.api.triggers.Trigger; -import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.triggers.Trigger; +import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "animatronic", minArgs = 1, argDesc = "", item = Material.ARMOR_STAND) public class AnimaTrigger extends Trigger { public AnimaTrigger(String[] data) { super(data); + if (Bukkit.getPluginManager().getPlugin("Animatronics") == null) { + throw new RuntimeException("Animatronics is not installed, can't run an animatronic trigger!"); + } } @Override @@ -19,7 +29,24 @@ public class AnimaTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { - return List.of(); //TODO Return list of animatronics if possible + public List getArgumentTabComplete(Player player, int index, String arg) { + //This trigger supports one argument! + if (index > 0) { + return List.of(); + } + + List animaFiles = new ArrayList<>(); + File directory = new File(Bukkit.getPluginManager().getPlugin("Animatronics").getDataFolder(), "animatronics"); + if (directory.isDirectory()) { + File[] files = directory.listFiles((dir, name) -> name.endsWith(".anima")); + if (files != null) { + animaFiles.addAll( + Arrays.stream(files) + .map(file -> file.getName().replaceFirst("[.][^.]+$", "")) + .collect(Collectors.toList()) + ); + } + } + return animaFiles; } } diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/CommandTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/CommandTrigger.java index 188c8fb..f151152 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/CommandTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/CommandTrigger.java @@ -1,12 +1,15 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; -import tech.sbdevelopment.showcontrol.api.triggers.Trigger; -import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.triggers.Trigger; +import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import java.util.List; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "command", minArgs = 1, argDesc = "", item = Material.COMMAND_BLOCK) public class CommandTrigger extends Trigger { public CommandTrigger(String[] data) { @@ -19,7 +22,7 @@ public class CommandTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { + public List getArgumentTabComplete(Player player, int index, String arg) { return List.of(); } } diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/FireworkTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/FireworkTrigger.java index 6d54605..5108396 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/FireworkTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/FireworkTrigger.java @@ -1,6 +1,8 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; +import lombok.NoArgsConstructor; import org.bukkit.*; +import org.bukkit.entity.Player; import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; @@ -12,6 +14,7 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "firework", minArgs = 5, argDesc = " ", item = Material.FIREWORK_ROCKET) public class FireworkTrigger extends Trigger { private final Fireworks.Firework fw; @@ -81,31 +84,32 @@ public class FireworkTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { + public List getArgumentTabComplete(Player player, int index, String arg) { if (index == 0) { - return Bukkit.getWorlds().stream().map(World::getName).toList(); - } else if (index == 4) { - if (arg.contains(":")) { - String[] split = arg.split(":"); - if (split.length != 2) return List.of(); + return player != null ? List.of(player.getWorld().getName()) : Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toList()); + } else if (index == 1) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockX())) : List.of(); + } else if (index == 2) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockY())) : List.of(); + } else if (index == 3) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockZ())) : List.of(); + } else if (index >= 4) { + String key = arg.contains(":") ? arg.split(":", -1)[0] : arg; - String key = split[0]; - - if (key.equalsIgnoreCase("color")) { - return Arrays.stream(Color.values()).map(c -> "color:" + c.name()).toList(); - } else if (key.equalsIgnoreCase("shape")) { - return Arrays.stream(FireworkEffect.Type.values()).map(t -> "shape:" + t.name()).toList(); - } else if (key.equalsIgnoreCase("fade")) { - return Arrays.stream(Color.values()).map(c -> "fade:" + c.name()).toList(); - } else if (key.equalsIgnoreCase("effect")) { - return List.of("effect:trail", "effect:twinkle"); - } else if (key.equalsIgnoreCase("power")) { - return IntStream.rangeClosed(0, 127) - .mapToObj(i -> "power:" + i) - .collect(Collectors.toList()); - } - } else { + if (key.isBlank()) { return List.of("color:", "shape:", "fade:", "effect:", "power:"); + } else if ("color".startsWith(key)) { + return Arrays.stream(Color.values()).map(c -> "color:" + c.name()).collect(Collectors.toList()); + } else if ("shape".startsWith(key)) { + return Arrays.stream(FireworkEffect.Type.values()).map(t -> "shape:" + t.name()).collect(Collectors.toList()); + } else if ("fade".startsWith(key)) { + return Arrays.stream(Color.values()).map(c -> "fade:" + c.name()).collect(Collectors.toList()); + } else if ("effect".startsWith(key)) { + return List.of("effect:trail", "effect:twinkle"); + } else if ("power".startsWith(key)) { + return IntStream.rangeClosed(0, 127) + .mapToObj(i -> "power:" + i) + .collect(Collectors.toList()); } } return List.of(); diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/LaserTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/LaserTrigger.java index e9c51ce..8cac4c7 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/LaserTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/LaserTrigger.java @@ -1,15 +1,20 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; +import lombok.NoArgsConstructor; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Player; import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.elements.Lasers; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.World; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "laser", minArgs = 5, argDesc = " ") public class LaserTrigger extends Trigger { private final String name; @@ -49,11 +54,17 @@ public class LaserTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { + public List getArgumentTabComplete(Player player, int index, String arg) { if (index == 0) { - return Lasers.getLasers().keySet().stream().toList(); + return new ArrayList<>(Lasers.getLasers().keySet()); } else if (index == 1) { - return Bukkit.getWorlds().stream().map(World::getName).toList(); + return player != null ? List.of(player.getWorld().getName()) : Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toList()); + } else if (index == 2) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockX())) : List.of(); + } else if (index == 3) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockY())) : List.of(); + } else if (index == 4) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockZ())) : List.of(); } return List.of(); } diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/ParticleTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/ParticleTrigger.java index a74a916..fa82db9 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/ParticleTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/ParticleTrigger.java @@ -1,16 +1,20 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; -import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; -import tech.sbdevelopment.showcontrol.api.triggers.Trigger; -import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.World; +import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; +import tech.sbdevelopment.showcontrol.api.triggers.Trigger; +import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "particle", minArgs = 6, argDesc = " ") public class ParticleTrigger extends Trigger { private final Particle type; @@ -57,11 +61,17 @@ public class ParticleTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { + public List getArgumentTabComplete(Player player, int index, String arg) { if (index == 0) { - return Bukkit.getWorlds().stream().map(World::getName).toList(); + return player != null ? List.of(player.getWorld().getName()) : Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toList()); + } else if (index == 1) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockX())) : List.of(); + } else if (index == 2) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockY())) : List.of(); + } else if (index == 3) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockZ())) : List.of(); } else if (index == 4) { - return Arrays.stream(Particle.values()).map(Enum::name).toList(); + return Arrays.stream(Particle.values()).map(Enum::name).collect(Collectors.toList()); } return List.of(); } diff --git a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/SpotTrigger.java b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/SpotTrigger.java index b794d1c..0e0c504 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/SpotTrigger.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl/SpotTrigger.java @@ -1,16 +1,20 @@ package tech.sbdevelopment.showcontrol.api.triggers.impl; -import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; -import tech.sbdevelopment.showcontrol.api.triggers.Trigger; -import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; -import tech.sbdevelopment.showcontrol.elements.Lasers; -import tech.sbdevelopment.showcontrol.elements.Spots; +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.exceptions.InvalidArgumentException; +import tech.sbdevelopment.showcontrol.api.triggers.Trigger; +import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; +import tech.sbdevelopment.showcontrol.elements.Spots; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +@NoArgsConstructor(force = true) @TriggerIdentifier(value = "spot", minArgs = 5, argDesc = " ") public class SpotTrigger extends Trigger { private final String name; @@ -50,11 +54,17 @@ public class SpotTrigger extends Trigger { } @Override - public List getArgumentTabComplete(int index, String arg) { + public List getArgumentTabComplete(Player player, int index, String arg) { if (index == 0) { - return Spots.getSpots().keySet().stream().toList(); + return new ArrayList<>(Spots.getSpots().keySet()); } else if (index == 1) { - return Bukkit.getWorlds().stream().map(World::getName).toList(); + return player != null ? List.of(player.getWorld().getName()) : Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toList()); + } else if (index == 2) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockX())) : List.of(); + } else if (index == 3) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockY())) : List.of(); + } else if (index == 4) { + return player != null ? List.of(String.valueOf(player.getLocation().getBlockZ())) : List.of(); } return List.of(); } diff --git a/src/main/java/tech/sbdevelopment/showcontrol/commands/ShowCMD.java b/src/main/java/tech/sbdevelopment/showcontrol/commands/ShowCMD.java index 7fb8a16..408e930 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/commands/ShowCMD.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/commands/ShowCMD.java @@ -3,15 +3,15 @@ package tech.sbdevelopment.showcontrol.commands; import co.aikar.commands.BaseCommand; import co.aikar.commands.CommandHelp; import co.aikar.commands.annotation.*; -import tech.sbdevelopment.showcontrol.api.exceptions.InvalidTriggerException; -import tech.sbdevelopment.showcontrol.api.exceptions.TooFewArgumentsException; -import tech.sbdevelopment.showcontrol.api.triggers.Trigger; -import tech.sbdevelopment.showcontrol.api.SCAPI; -import tech.sbdevelopment.showcontrol.gui.ShowCueGUI; -import tech.sbdevelopment.showcontrol.utils.TimeUtil; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.SCAPI; +import tech.sbdevelopment.showcontrol.api.exceptions.InvalidTriggerException; +import tech.sbdevelopment.showcontrol.api.exceptions.TooFewArgumentsException; +import tech.sbdevelopment.showcontrol.api.triggers.Trigger; +import tech.sbdevelopment.showcontrol.gui.ShowCueGUI; +import tech.sbdevelopment.showcontrol.utils.TimeUtil; @CommandAlias("showcontrol|sc") @CommandPermission("sc.admin") @@ -52,7 +52,7 @@ public class ShowCMD extends BaseCommand { @Subcommand("add") @Description("") - @CommandCompletion("@showname @empty @showtype @empty") + @CommandCompletion("@showname @empty @showtype @cuearg") public void onAdd(CommandSender sender, String name, String time, String args) { if (!SCAPI.exists(name)) { sender.sendMessage(ChatColor.RED + "That show doesn't exists."); diff --git a/src/main/java/tech/sbdevelopment/showcontrol/data/DataStorage.java b/src/main/java/tech/sbdevelopment/showcontrol/data/DataStorage.java index 2f4479d..05b594e 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/data/DataStorage.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/data/DataStorage.java @@ -3,8 +3,8 @@ package tech.sbdevelopment.showcontrol.data; import tech.sbdevelopment.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.api.SCAPI; import tech.sbdevelopment.showcontrol.api.exceptions.InvalidTriggerException; -import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; import tech.sbdevelopment.showcontrol.api.exceptions.TooFewArgumentsException; +import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; import tech.sbdevelopment.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.utils.YamlFile; diff --git a/src/main/java/tech/sbdevelopment/showcontrol/elements/Lasers.java b/src/main/java/tech/sbdevelopment/showcontrol/elements/Lasers.java index a18cfd9..c31e757 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/elements/Lasers.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/elements/Lasers.java @@ -2,9 +2,9 @@ package tech.sbdevelopment.showcontrol.elements; import fr.skytasul.guardianbeam.Laser; import lombok.Getter; -import tech.sbdevelopment.showcontrol.ShowControlPlugin; import org.bukkit.Location; import org.bukkit.scheduler.BukkitRunnable; +import tech.sbdevelopment.showcontrol.ShowControlPlugin; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/tech/sbdevelopment/showcontrol/elements/Spots.java b/src/main/java/tech/sbdevelopment/showcontrol/elements/Spots.java index 61c5cc3..0430a4e 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/elements/Spots.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/elements/Spots.java @@ -2,9 +2,9 @@ package tech.sbdevelopment.showcontrol.elements; import fr.skytasul.guardianbeam.Laser; import lombok.Getter; -import tech.sbdevelopment.showcontrol.ShowControlPlugin; import org.bukkit.Location; import org.bukkit.scheduler.BukkitRunnable; +import tech.sbdevelopment.showcontrol.ShowControlPlugin; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/tech/sbdevelopment/showcontrol/gui/ShowCueGUI.java b/src/main/java/tech/sbdevelopment/showcontrol/gui/ShowCueGUI.java index d9c92e7..9be6930 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/gui/ShowCueGUI.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/gui/ShowCueGUI.java @@ -1,12 +1,12 @@ package tech.sbdevelopment.showcontrol.gui; import fr.minuskube.inv.ClickableItem; -import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; -import tech.sbdevelopment.showcontrol.api.SCAPI; -import tech.sbdevelopment.showcontrol.utils.MainUtil; -import tech.sbdevelopment.showcontrol.utils.inventories.PaginationInventory; import org.bukkit.ChatColor; import org.bukkit.entity.Player; +import tech.sbdevelopment.showcontrol.api.SCAPI; +import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; +import tech.sbdevelopment.showcontrol.utils.MainUtil; +import tech.sbdevelopment.showcontrol.utils.inventories.PaginationInventory; import java.util.Comparator; diff --git a/src/main/java/tech/sbdevelopment/showcontrol/utils/MainUtil.java b/src/main/java/tech/sbdevelopment/showcontrol/utils/MainUtil.java index d54ef9d..da5860d 100644 --- a/src/main/java/tech/sbdevelopment/showcontrol/utils/MainUtil.java +++ b/src/main/java/tech/sbdevelopment/showcontrol/utils/MainUtil.java @@ -1,10 +1,10 @@ package tech.sbdevelopment.showcontrol.utils; -import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; -import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import org.bukkit.ChatColor; import org.bukkit.inventory.ItemStack; import org.bukkit.util.ChatPaginator; +import tech.sbdevelopment.showcontrol.api.points.ShowCuePoint; +import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier; import java.util.ArrayList; import java.util.List; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index db43d08..d8a15fd 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,5 +3,6 @@ version: ${project.version} main: tech.sbdevelopment.showcontrol.ShowControlPlugin api-version: 1.13 authors: [SBDeveloper] +softdepend: [Animatronics] description: Create shows easily using this plugin! website: https://sbdevelopment.tech \ No newline at end of file