diff --git a/pom.xml b/pom.xml index 725cc69..df9bb33 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.10.1 17 diff --git a/src/main/java/nl/sbdeveloper/showcontrol/ShowControlPlugin.java b/src/main/java/nl/sbdeveloper/showcontrol/ShowControlPlugin.java index 74a28d7..eeb4b8e 100644 --- a/src/main/java/nl/sbdeveloper/showcontrol/ShowControlPlugin.java +++ b/src/main/java/nl/sbdeveloper/showcontrol/ShowControlPlugin.java @@ -34,10 +34,7 @@ public final class ShowControlPlugin extends JavaPlugin { getLogger().info("Loading default triggers..."); ShowAPI.index(ShowControlPlugin.class, "nl.sbdeveloper.showcontrol.api.triggers.impl"); - Bukkit.getScheduler().runTaskLater(this, () -> { - getLogger().info("Loading data..."); - DataStorage.load(); - }, 1L); //Load 1 tick later, because of multi world + Bukkit.getScheduler().runTaskLater(this, DataStorage::load, 1L); //Load 1 tick later, because of multi world getLogger().info("Plugin enabled!"); getLogger().info("-------------------------------"); diff --git a/src/main/java/nl/sbdeveloper/showcontrol/api/ShowAPI.java b/src/main/java/nl/sbdeveloper/showcontrol/api/ShowAPI.java index 94d3204..9b11845 100644 --- a/src/main/java/nl/sbdeveloper/showcontrol/api/ShowAPI.java +++ b/src/main/java/nl/sbdeveloper/showcontrol/api/ShowAPI.java @@ -42,7 +42,7 @@ public class ShowAPI { } } - public static T getTrigger(String data) throws ReflectiveOperationException, InvalidTriggerException, TooFewArgumentsException { + public static T getTrigger(String data) throws ReflectiveOperationException, InvalidTriggerException, TooFewArgumentsException, IllegalArgumentException { String[] dataSplitter = data.split(" "); String[] dataSplitterNew = Arrays.copyOfRange(dataSplitter, 1, dataSplitter.length); @@ -52,6 +52,6 @@ public class ShowAPI { Constructor ctor = (Constructor) triggers.get(triggerType).getConstructor(String[].class); if (dataSplitter.length < triggers.get(triggerType).getAnnotation(TriggerIdentifier.class).minArgs() + 1) throw new TooFewArgumentsException("Provided triggerdata " + data + " has too few arguments!"); - return ctor.newInstance(dataSplitterNew); + return ctor.newInstance(new Object[] { dataSplitterNew }); } } diff --git a/src/main/java/nl/sbdeveloper/showcontrol/commands/ShowCMD.java b/src/main/java/nl/sbdeveloper/showcontrol/commands/ShowCMD.java index 706d3f9..ebb872b 100644 --- a/src/main/java/nl/sbdeveloper/showcontrol/commands/ShowCMD.java +++ b/src/main/java/nl/sbdeveloper/showcontrol/commands/ShowCMD.java @@ -45,7 +45,7 @@ public class ShowCMD extends BaseCommand { @Subcommand("add") @Description("") - @CommandCompletion("@showname @empty @showtype") + @CommandCompletion("@showname @empty @showtype @empty") public void onAdd(CommandSender sender, String name, String time, String args) { if (!Shows.exists(name)) { sender.sendMessage(ChatColor.RED + "That show doesn't exists."); @@ -73,6 +73,9 @@ public class ShowCMD extends BaseCommand { } catch (TooFewArgumentsException e) { sender.sendMessage(ChatColor.RED + "You did not provide enough information for the chosen trigger."); return; + } catch (IllegalArgumentException e) { + sender.sendMessage(ChatColor.RED + "Couldn't create the trigger: " + e.getMessage()); + return; } Shows.addPoint(name, timeMilli, data); diff --git a/src/main/java/nl/sbdeveloper/showcontrol/utils/MainUtil.java b/src/main/java/nl/sbdeveloper/showcontrol/utils/MainUtil.java index b7856f9..b768ac4 100644 --- a/src/main/java/nl/sbdeveloper/showcontrol/utils/MainUtil.java +++ b/src/main/java/nl/sbdeveloper/showcontrol/utils/MainUtil.java @@ -1,8 +1,8 @@ package nl.sbdeveloper.showcontrol.utils; import nl.sbdeveloper.showcontrol.api.ShowCuePoint; +import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.util.ChatPaginator; @@ -15,7 +15,9 @@ public class MainUtil { } public static ItemStack pointToItem(ShowCuePoint point) { - ItemBuilder builder = new ItemBuilder(Material.NOTE_BLOCK); + TriggerIdentifier identifier = point.getTask().getClass().getAnnotation(TriggerIdentifier.class); + + ItemBuilder builder = new ItemBuilder(identifier.item()); builder.setName(ChatColor.ITALIC + "TimeCode: " + TimeUtil.makeReadable(point.getTime())); List lores = new ArrayList<>();