Moved packages, fixed pagination, closes #17

This commit is contained in:
Stijn Bannink 2023-09-14 11:52:58 +02:00
parent a19b8567d5
commit 605eed5406
32 changed files with 132 additions and 132 deletions

View file

@ -4,12 +4,12 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>nl.SBDeveloper</groupId> <groupId>tech.sbdevelopment</groupId>
<artifactId>ShowControl</artifactId> <artifactId>ShowControl</artifactId>
<version>1.3</version> <version>1.4</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>ShowControl</name> <name>ShowControl</name>
<url>https://sbdplugins.nl</url> <url>https://sbdevelopment.tech</url>
<description>Create shows easily using this plugin!</description> <description>Create shows easily using this plugin!</description>
<properties> <properties>

View file

@ -1,11 +1,11 @@
package nl.sbdeveloper.showcontrol; package tech.sbdevelopment.showcontrol;
import co.aikar.commands.PaperCommandManager; import co.aikar.commands.PaperCommandManager;
import nl.sbdeveloper.showcontrol.api.ShowAPI; import tech.sbdevelopment.showcontrol.api.ShowAPI;
import nl.sbdeveloper.showcontrol.commands.ShowCMD; import tech.sbdevelopment.showcontrol.commands.ShowCMD;
import nl.sbdeveloper.showcontrol.data.DataStorage; import tech.sbdevelopment.showcontrol.data.DataStorage;
import nl.sbdeveloper.showcontrol.data.Shows; import tech.sbdevelopment.showcontrol.data.Shows;
import nl.sbdeveloper.showcontrol.utils.inventories.Inventory; import tech.sbdevelopment.showcontrol.utils.inventories.Inventory;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -32,7 +32,7 @@ public final class ShowControlPlugin extends JavaPlugin {
Inventory.init(this); Inventory.init(this);
getLogger().info("Loading default triggers..."); getLogger().info("Loading default triggers...");
ShowAPI.index(ShowControlPlugin.class, "nl.sbdeveloper.showcontrol.api.triggers.impl"); ShowAPI.index(ShowControlPlugin.class, "tech.sbdevelopment.showcontrol.api.triggers.impl");
Bukkit.getScheduler().runTaskLater(this, 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

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.api; package tech.sbdevelopment.showcontrol.api;
import lombok.experimental.StandardException; import lombok.experimental.StandardException;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.api; package tech.sbdevelopment.showcontrol.api;
import lombok.experimental.StandardException; import lombok.experimental.StandardException;

View file

@ -1,9 +1,9 @@
package nl.sbdeveloper.showcontrol.api; package tech.sbdevelopment.showcontrol.api;
import lombok.Getter; import lombok.Getter;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import org.bukkit.Bukkit; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.reflections.Reflections; import org.reflections.Reflections;
import org.reflections.scanners.Scanners; import org.reflections.scanners.Scanners;
import org.reflections.util.ClasspathHelper; import org.reflections.util.ClasspathHelper;
@ -21,7 +21,7 @@ public class ShowAPI {
private static final Map<String, Class<? extends Trigger>> triggers = new HashMap<>(); private static final Map<String, Class<? extends Trigger>> triggers = new HashMap<>();
public static void index(Class<?> clazz, String... packages) { public static void index(Class<?> clazz, String... packages) {
Bukkit.getLogger().info("Indexing triggers for starting point " + clazz.getSimpleName() + "..."); ShowControlPlugin.getInstance().getLogger().info("Indexing triggers for starting point " + clazz.getSimpleName() + "...");
FilterBuilder filterBuilder = new FilterBuilder(); FilterBuilder filterBuilder = new FilterBuilder();
for (String p : packages) filterBuilder.includePackage(p); for (String p : packages) filterBuilder.includePackage(p);
@ -35,7 +35,7 @@ public class ShowAPI {
Set<Class<?>> trig = reflections.getTypesAnnotatedWith(TriggerIdentifier.class); Set<Class<?>> trig = reflections.getTypesAnnotatedWith(TriggerIdentifier.class);
for (Class<?> trigger : trig) { for (Class<?> trigger : trig) {
Bukkit.getLogger().info("Found trigger " + trigger.getSimpleName() + "."); ShowControlPlugin.getInstance().getLogger().info("Found trigger " + trigger.getSimpleName() + ".");
TriggerIdentifier identifier = trigger.getAnnotation(TriggerIdentifier.class); TriggerIdentifier identifier = trigger.getAnnotation(TriggerIdentifier.class);
triggers.put(identifier.value(), (Class<? extends Trigger>) trigger); triggers.put(identifier.value(), (Class<? extends Trigger>) trigger);
@ -48,10 +48,12 @@ public class ShowAPI {
String triggerType = dataSplitter[0]; String triggerType = dataSplitter[0];
if (!triggers.containsKey(triggerType)) throw new InvalidTriggerException("Provided trigger " + triggerType + " does not exists!"); if (!triggers.containsKey(triggerType))
throw new InvalidTriggerException("Provided trigger " + triggerType + " does not exists!");
Constructor<T> ctor = (Constructor<T>) triggers.get(triggerType).getConstructor(String[].class); Constructor<T> ctor = (Constructor<T>) 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!"); if (dataSplitter.length < triggers.get(triggerType).getAnnotation(TriggerIdentifier.class).minArgs() + 1)
throw new TooFewArgumentsException("Provided triggerdata " + data + " has too few arguments!");
return ctor.newInstance(new Object[]{dataSplitterNew}); return ctor.newInstance(new Object[]{dataSplitterNew});
} }
} }

View file

@ -1,6 +1,6 @@
package nl.sbdeveloper.showcontrol.api; package tech.sbdevelopment.showcontrol.api;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import java.util.UUID; import java.util.UUID;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.api; package tech.sbdevelopment.showcontrol.api;
import lombok.experimental.StandardException; import lombok.experimental.StandardException;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.api.triggers; package tech.sbdevelopment.showcontrol.api.triggers;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@ -17,7 +17,8 @@ public abstract class Trigger {
* This method gets fired when the cue gets removed * This method gets fired when the cue gets removed
* It's not required, and does nothing if it's not needed. * It's not required, and does nothing if it's not needed.
*/ */
public void remove() {} public void remove() {
}
/** /**
* Get the datastring from this cue * Get the datastring from this cue

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.api.triggers; package tech.sbdevelopment.showcontrol.api.triggers;
import org.bukkit.Material; import org.bukkit.Material;
@ -11,7 +11,10 @@ import java.lang.annotation.Target;
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
public @interface TriggerIdentifier { public @interface TriggerIdentifier {
String value(); String value();
int minArgs() default 0; int minArgs() default 0;
String argDesc() default ""; String argDesc() default "";
Material item() default Material.NOTE_BLOCK; Material item() default Material.NOTE_BLOCK;
} }

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;

View file

@ -1,10 +1,10 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.InvalidArgumentException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import nl.sbdeveloper.showcontrol.elements.Fireworks; import tech.sbdevelopment.showcontrol.elements.Fireworks;
import nl.sbdeveloper.showcontrol.utils.Color; import tech.sbdevelopment.showcontrol.utils.Color;
import org.bukkit.*; import org.bukkit.*;
@TriggerIdentifier(value = "firework", minArgs = 5, argDesc = "<world> <x> <y> <z> <configuration ...>", item = Material.FIREWORK_ROCKET) @TriggerIdentifier(value = "firework", minArgs = 5, argDesc = "<world> <x> <y> <z> <configuration ...>", item = Material.FIREWORK_ROCKET)
@ -40,7 +40,7 @@ public class FireworkTrigger extends Trigger {
String key = data[i].split(":")[0]; String key = data[i].split(":")[0];
String value = data[i].split(":")[1]; String value = data[i].split(":")[1];
if (key.equalsIgnoreCase("color")) { if (key.equalsIgnoreCase("color")) {
firework = firework.addColor(Color.valueOf(value.toUpperCase()).getBukkitColor()); firework = firework.addColor(tech.sbdevelopment.showcontrol.utils.Color.valueOf(value.toUpperCase()).getBukkitColor());
} else if (key.equalsIgnoreCase("shape")) { } else if (key.equalsIgnoreCase("shape")) {
firework = firework.setType(FireworkEffect.Type.valueOf(value.toUpperCase())); firework = firework.setType(FireworkEffect.Type.valueOf(value.toUpperCase()));
} else if (key.equalsIgnoreCase("fade")) { } else if (key.equalsIgnoreCase("fade")) {

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.bukkit.Material; import org.bukkit.Material;
@TriggerIdentifier(value = "flamethrower", minArgs = 5, argDesc = "<world> <x> <y> <z> <delay>", item = Material.FIRE) @TriggerIdentifier(value = "flamethrower", minArgs = 5, argDesc = "<world> <x> <y> <z> <delay>", item = Material.FIRE)

View file

@ -1,9 +1,9 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.InvalidArgumentException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import nl.sbdeveloper.showcontrol.elements.Lasers; import tech.sbdevelopment.showcontrol.elements.Lasers;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;

View file

@ -1,8 +1,8 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.InvalidArgumentException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Particle; import org.bukkit.Particle;

View file

@ -1,9 +1,9 @@
package nl.sbdeveloper.showcontrol.api.triggers.impl; package tech.sbdevelopment.showcontrol.api.triggers.impl;
import nl.sbdeveloper.showcontrol.api.InvalidArgumentException; import tech.sbdevelopment.showcontrol.api.InvalidArgumentException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import nl.sbdeveloper.showcontrol.elements.Spots; import tech.sbdevelopment.showcontrol.elements.Spots;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;

View file

@ -1,14 +1,14 @@
package nl.sbdeveloper.showcontrol.commands; package tech.sbdevelopment.showcontrol.commands;
import co.aikar.commands.BaseCommand; import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.*; import co.aikar.commands.annotation.*;
import nl.sbdeveloper.showcontrol.api.InvalidTriggerException; import tech.sbdevelopment.showcontrol.api.InvalidTriggerException;
import nl.sbdeveloper.showcontrol.api.ShowAPI; import tech.sbdevelopment.showcontrol.api.ShowAPI;
import nl.sbdeveloper.showcontrol.api.TooFewArgumentsException; import tech.sbdevelopment.showcontrol.api.TooFewArgumentsException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.data.Shows; import tech.sbdevelopment.showcontrol.data.Shows;
import nl.sbdeveloper.showcontrol.gui.ShowCueGUI; import tech.sbdevelopment.showcontrol.gui.ShowCueGUI;
import nl.sbdeveloper.showcontrol.utils.TimeUtil; import tech.sbdevelopment.showcontrol.utils.TimeUtil;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View file

@ -1,12 +1,12 @@
package nl.sbdeveloper.showcontrol.data; package tech.sbdevelopment.showcontrol.data;
import nl.sbdeveloper.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import nl.sbdeveloper.showcontrol.api.InvalidTriggerException; import tech.sbdevelopment.showcontrol.api.InvalidTriggerException;
import nl.sbdeveloper.showcontrol.api.ShowAPI; import tech.sbdevelopment.showcontrol.api.ShowAPI;
import nl.sbdeveloper.showcontrol.api.ShowCuePoint; import tech.sbdevelopment.showcontrol.api.ShowCuePoint;
import nl.sbdeveloper.showcontrol.api.TooFewArgumentsException; import tech.sbdevelopment.showcontrol.api.TooFewArgumentsException;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.utils.YamlFile; import tech.sbdevelopment.showcontrol.utils.YamlFile;
import java.io.File; import java.io.File;
import java.util.*; import java.util.*;
@ -19,6 +19,12 @@ public class DataStorage {
} }
public static void load() { public static void load() {
// Create data folder if not exists
if (!ShowControlPlugin.getInstance().getDataFolder().exists())
ShowControlPlugin.getInstance().getDataFolder().mkdir();
if (!new File(ShowControlPlugin.getInstance().getDataFolder(), "data").exists())
new File(ShowControlPlugin.getInstance().getDataFolder(), "data").mkdir();
File showsFolder = new File(ShowControlPlugin.getInstance().getDataFolder(), "data"); File showsFolder = new File(ShowControlPlugin.getInstance().getDataFolder(), "data");
for (File showFile : showsFolder.listFiles()) { for (File showFile : showsFolder.listFiles()) {
String showID = removeExtension(showFile.getName()); String showID = removeExtension(showFile.getName());

View file

@ -1,10 +1,10 @@
package nl.sbdeveloper.showcontrol.data; package tech.sbdevelopment.showcontrol.data;
import lombok.Getter; import lombok.Getter;
import nl.sbdeveloper.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import nl.sbdeveloper.showcontrol.api.ShowCuePoint; import tech.sbdevelopment.showcontrol.api.ShowCuePoint;
import nl.sbdeveloper.showcontrol.api.triggers.Trigger; import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
import nl.sbdeveloper.showcontrol.utils.YamlFile; import tech.sbdevelopment.showcontrol.utils.YamlFile;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.io.File; import java.io.File;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.elements; package tech.sbdevelopment.showcontrol.elements;
import org.bukkit.Color; import org.bukkit.Color;
import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect;

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.elements; package tech.sbdevelopment.showcontrol.elements;
import fr.skytasul.guardianbeam.Laser; import fr.skytasul.guardianbeam.Laser;
import nl.sbdeveloper.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
@ -26,7 +26,6 @@ public class Lasers {
* *
* @param name The name of the laser * @param name The name of the laser
* @param baseLoc The start location * @param baseLoc The start location
*
* @return true if done, false if an exception * @return true if done, false if an exception
*/ */
public static boolean start(String name, Location baseLoc) { public static boolean start(String name, Location baseLoc) {
@ -42,9 +41,9 @@ public class Lasers {
/** /**
* Move a laser to a location * Move a laser to a location
*
* @param name The name of the laser * @param name The name of the laser
* @param posLoc The new location * @param posLoc The new location
*
* @return true if done, false if it doesn't exists * @return true if done, false if it doesn't exists
*/ */
public static boolean move(String name, Location posLoc) { public static boolean move(String name, Location posLoc) {

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.elements; package tech.sbdevelopment.showcontrol.elements;
import fr.skytasul.guardianbeam.Laser; import fr.skytasul.guardianbeam.Laser;
import nl.sbdeveloper.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
@ -26,7 +26,6 @@ public class Spots {
* *
* @param name The name of the spot * @param name The name of the spot
* @param baseLoc The start location * @param baseLoc The start location
*
* @return true if done, false if an exception * @return true if done, false if an exception
*/ */
public static boolean start(String name, Location baseLoc) { public static boolean start(String name, Location baseLoc) {
@ -42,9 +41,9 @@ public class Spots {
/** /**
* Move a spot to a location * Move a spot to a location
*
* @param name The name of the spot * @param name The name of the spot
* @param posLoc The new location * @param posLoc The new location
*
* @return true if done, false if it doesn't exists * @return true if done, false if it doesn't exists
*/ */
public static boolean move(String name, Location posLoc) { public static boolean move(String name, Location posLoc) {

View file

@ -1,22 +1,14 @@
package nl.sbdeveloper.showcontrol.gui; package tech.sbdevelopment.showcontrol.gui;
import fr.minuskube.inv.ClickableItem; import fr.minuskube.inv.ClickableItem;
import fr.minuskube.inv.content.InventoryContents; import tech.sbdevelopment.showcontrol.api.ShowCuePoint;
import fr.minuskube.inv.content.Pagination; import tech.sbdevelopment.showcontrol.data.Shows;
import fr.minuskube.inv.content.SlotIterator; import tech.sbdevelopment.showcontrol.utils.MainUtil;
import nl.sbdeveloper.showcontrol.api.ShowCuePoint; import tech.sbdevelopment.showcontrol.utils.inventories.PaginationInventory;
import nl.sbdeveloper.showcontrol.data.Shows;
import nl.sbdeveloper.showcontrol.utils.MainUtil;
import nl.sbdeveloper.showcontrol.utils.inventories.PaginationInventory;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List;
import static nl.sbdeveloper.showcontrol.utils.MainUtil.__;
public class ShowCueGUI extends PaginationInventory { public class ShowCueGUI extends PaginationInventory {
public ShowCueGUI(Player p, String name) { public ShowCueGUI(Player p, String name) {
@ -25,7 +17,7 @@ public class ShowCueGUI extends PaginationInventory {
Shows.getPoints(name).stream().sorted(Comparator.comparing(ShowCuePoint::getTime)) Shows.getPoints(name).stream().sorted(Comparator.comparing(ShowCuePoint::getTime))
.forEach(cue -> addItem(ClickableItem.of(MainUtil.pointToItem(cue), e -> { .forEach(cue -> addItem(ClickableItem.of(MainUtil.pointToItem(cue), e -> {
Shows.removePoint(name, cue); Shows.removePoint(name, cue);
refresh(p); new ShowCueGUI(p, name).open(p);
}))); })));
open(p); open(p);

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
public enum Color { public enum Color {
WHITE(org.bukkit.Color.fromRGB(16777215)), WHITE(org.bukkit.Color.fromRGB(16777215)),

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
import com.cryptomorin.xseries.SkullUtils; import com.cryptomorin.xseries.SkullUtils;
import com.cryptomorin.xseries.XMaterial; import com.cryptomorin.xseries.XMaterial;
@ -156,7 +156,8 @@ public class ItemBuilder {
} }
public ItemBuilder potionEffect(PotionType type) { public ItemBuilder potionEffect(PotionType type) {
if (!itemStack.getType().name().contains("POTION")) throw new UnsupportedOperationException("ItemStack is not a potion! (Type: " + itemStack.getType().name() + ")"); if (!itemStack.getType().name().contains("POTION"))
throw new UnsupportedOperationException("ItemStack is not a potion! (Type: " + itemStack.getType().name() + ")");
applyToMeta(meta -> { applyToMeta(meta -> {
if (!(meta instanceof org.bukkit.inventory.meta.PotionMeta)) return meta; if (!(meta instanceof org.bukkit.inventory.meta.PotionMeta)) return meta;
((org.bukkit.inventory.meta.PotionMeta) meta).setBasePotionData(new PotionData(type)); ((org.bukkit.inventory.meta.PotionMeta) meta).setBasePotionData(new PotionData(type));

View file

@ -1,7 +1,7 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
import nl.sbdeveloper.showcontrol.api.ShowCuePoint; import tech.sbdevelopment.showcontrol.api.ShowCuePoint;
import nl.sbdeveloper.showcontrol.api.triggers.TriggerIdentifier; import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.util.ChatPaginator; import org.bukkit.util.ChatPaginator;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View file

@ -1,6 +1,6 @@
package nl.sbdeveloper.showcontrol.utils; package tech.sbdevelopment.showcontrol.utils;
import nl.sbdeveloper.showcontrol.ShowControlPlugin; import tech.sbdevelopment.showcontrol.ShowControlPlugin;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;

View file

@ -1,4 +1,4 @@
package nl.sbdeveloper.showcontrol.utils.inventories; package tech.sbdevelopment.showcontrol.utils.inventories;
import com.cryptomorin.xseries.XMaterial; import com.cryptomorin.xseries.XMaterial;
import fr.minuskube.inv.ClickableItem; import fr.minuskube.inv.ClickableItem;
@ -6,11 +6,12 @@ import fr.minuskube.inv.InventoryManager;
import fr.minuskube.inv.SmartInventory; import fr.minuskube.inv.SmartInventory;
import fr.minuskube.inv.content.InventoryContents; import fr.minuskube.inv.content.InventoryContents;
import fr.minuskube.inv.content.InventoryProvider; import fr.minuskube.inv.content.InventoryProvider;
import nl.sbdeveloper.showcontrol.utils.ItemBuilder; import tech.sbdevelopment.showcontrol.utils.ItemBuilder;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import static nl.sbdeveloper.showcontrol.utils.MainUtil.__; import static tech.sbdevelopment.showcontrol.utils.MainUtil.__;
public abstract class Inventory implements InventoryProvider { public abstract class Inventory implements InventoryProvider {
private static InventoryManager manager; private static InventoryManager manager;
@ -35,6 +36,7 @@ public abstract class Inventory implements InventoryProvider {
} }
protected void open(Player player, int page) { protected void open(Player player, int page) {
Bukkit.getLogger().info("Opening page " + page + " for " + player.getName() + "...");
this.inventory.open(player, page); this.inventory.open(player, page);
} }

View file

@ -1,23 +1,22 @@
package nl.sbdeveloper.showcontrol.utils.inventories; package tech.sbdevelopment.showcontrol.utils.inventories;
import com.cryptomorin.xseries.XMaterial; import com.cryptomorin.xseries.XMaterial;
import fr.minuskube.inv.ClickableItem; import fr.minuskube.inv.ClickableItem;
import fr.minuskube.inv.content.InventoryContents; import fr.minuskube.inv.content.InventoryContents;
import fr.minuskube.inv.content.Pagination; import fr.minuskube.inv.content.Pagination;
import fr.minuskube.inv.content.SlotIterator; import fr.minuskube.inv.content.SlotIterator;
import nl.sbdeveloper.showcontrol.utils.ItemBuilder;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import tech.sbdevelopment.showcontrol.utils.ItemBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static nl.sbdeveloper.showcontrol.utils.MainUtil.__; import static tech.sbdevelopment.showcontrol.utils.MainUtil.__;
public abstract class PaginationInventory extends Inventory { public abstract class PaginationInventory extends Inventory {
private final int paginationRows; //Amount of rows for pagination (excluding button row) private final int paginationRows; //Amount of rows for pagination (excluding button row)
private final int paginationRow; //The start row of the pagination (starts from 0) private final int paginationRow; //The start row of the pagination (starts from 0)
private final List<ClickableItem> items = new ArrayList<>(); private final List<ClickableItem> items = new ArrayList<>();
private Pagination pagination; //Available after init() is called, can only be used in the event of a ClickableItem!!!
private final int staticRows; //Amount of rows that are static private final int staticRows; //Amount of rows that are static
private final boolean filler; private final boolean filler;
@ -44,10 +43,6 @@ public abstract class PaginationInventory extends Inventory {
this.items.add(item); this.items.add(item);
} }
public void refresh(Player player) {
open(player, pagination.getPage());
}
@Override @Override
public void addItems(Player player, InventoryContents contents) { public void addItems(Player player, InventoryContents contents) {
//Set up static items //Set up static items
@ -60,22 +55,22 @@ public abstract class PaginationInventory extends Inventory {
addStaticItems(player, contents); addStaticItems(player, contents);
//Set up pagination //Set up pagination
pagination = contents.pagination(); Pagination pagination = contents.pagination();
pagination.setItems(items.toArray(ClickableItem[]::new)); pagination.setItems(items.toArray(ClickableItem[]::new));
pagination.setItemsPerPage(9 * paginationRows); pagination.setItemsPerPage(9 * paginationRows);
pagination.addToIterator(contents.newIterator(SlotIterator.Type.HORIZONTAL, paginationRow, 0)); pagination.addToIterator(contents.newIterator(SlotIterator.Type.HORIZONTAL, paginationRow, 0));
contents.set(paginationRows, 0, ClickableItem.of(new ItemBuilder(XMaterial.ARROW.parseItem()).displayname(__("&6First page")) contents.set(paginationRows, 0, ClickableItem.of(new ItemBuilder(XMaterial.ARROW.parseItem()).displayname(__("&6First page"))
.lore(__("&fGo to the first page (" + pagination.first().getPage() + ")")).getItemStack(), .lore(__("&fGo to the first page (0)")).getItemStack(),
e -> open(player, pagination.first().getPage()))); e -> open(player, pagination.first().getPage())));
contents.set(paginationRows, 3, ClickableItem.of(new ItemBuilder(XMaterial.OAK_SIGN.parseItem()).displayname(__("&6Previous")) contents.set(paginationRows, 3, ClickableItem.of(new ItemBuilder(XMaterial.OAK_SIGN.parseItem()).displayname(__("&6Previous"))
.lore(__("&fGo to the previous page (" + pagination.previous().getPage() + ")")).getItemStack(), .lore(__("&fGo to the previous page (" + (pagination.isFirst() ? pagination.getPage() : pagination.getPage() - 1) + ")")).getItemStack(),
e -> open(player, pagination.previous().getPage()))); e -> open(player, pagination.previous().getPage())));
contents.set(paginationRows, 5, ClickableItem.of(new ItemBuilder(XMaterial.OAK_SIGN.parseItem()).displayname(__("&6Next")) contents.set(paginationRows, 5, ClickableItem.of(new ItemBuilder(XMaterial.OAK_SIGN.parseItem()).displayname(__("&6Next"))
.lore(__("&fGo to the next page (" + pagination.next().getPage() + ")")).getItemStack(), .lore(__("&fGo to the next page (" + (pagination.isLast() ? pagination.getPage() : pagination.getPage() + 1) + ")")).getItemStack(),
e -> open(player, pagination.next().getPage()))); e -> open(player, pagination.next().getPage())));
contents.set(paginationRows, 8, ClickableItem.of(new ItemBuilder(XMaterial.ARROW.parseItem()).displayname(__("&6Last page")) contents.set(paginationRows, 8, ClickableItem.of(new ItemBuilder(XMaterial.ARROW.parseItem()).displayname(__("&6Last page"))
.lore(__("&fGo to the last page (" + pagination.last().getPage() + ")")).getItemStack(), .lore(__("&fGo to the last page (" + items.size() / (9 * paginationRows) + ")")).getItemStack(),
e -> open(player, pagination.last().getPage()))); e -> open(player, pagination.last().getPage())));
} }

View file

@ -1,6 +1,6 @@
name: ShowControl name: ShowControl
version: ${project.version} version: ${project.version}
main: nl.sbdeveloper.showcontrol.ShowControlPlugin main: tech.sbdevelopment.showcontrol.ShowControlPlugin
api-version: 1.13 api-version: 1.13
authors: [SBDeveloper] authors: [SBDeveloper]
description: Create shows easily using this plugin! description: Create shows easily using this plugin!