Moved to ACF and Java 11, and started with FakeFirework
This commit is contained in:
parent
a3047234b3
commit
05a473b538
11 changed files with 211 additions and 133 deletions
36
pom.xml
36
pom.xml
|
@ -13,7 +13,6 @@
|
|||
|
||||
<description>Make perfect shows with this API!</description>
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
|
@ -31,16 +30,18 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
<release>11</release>
|
||||
<compilerArgs>
|
||||
<arg>-parameters</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<version>3.2.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
|
@ -50,6 +51,7 @@
|
|||
<configuration>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<shadedArtifactAttached>false</shadedArtifactAttached>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.inventivetalent.apihelper</pattern>
|
||||
|
@ -59,6 +61,18 @@
|
|||
<pattern>fr.minuskube.inv</pattern>
|
||||
<shadedPattern>nl.sbdeveloper.showapi.helpers.inv</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.github.fierioziy.particlenativeapi</pattern>
|
||||
<shadedPattern>nl.sbdeveloper.showapi.helpers.particleapi</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>co.aikar.commands</pattern>
|
||||
<shadedPattern>nl.sbdeveloper.showapi.helpers.acf</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>co.aikar.locales</pattern>
|
||||
<shadedPattern>nl.sbdeveloper.showapi.helpers.locales</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
@ -155,5 +169,17 @@
|
|||
<artifactId>XSeries</artifactId>
|
||||
<version>7.8.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.fierioziy.particlenativeapi</groupId>
|
||||
<artifactId>ParticleNativeAPI-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>co.aikar</groupId>
|
||||
<artifactId>acf-paper</artifactId>
|
||||
<version>0.5.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package nl.sbdeveloper.showapi;
|
||||
|
||||
import co.aikar.commands.PaperCommandManager;
|
||||
import com.github.fierioziy.particlenativeapi.api.ParticleNativeAPI;
|
||||
import com.github.fierioziy.particlenativeapi.api.utils.ParticleException;
|
||||
import com.github.fierioziy.particlenativeapi.core.ParticleNativeCore;
|
||||
import nl.sbdeveloper.showapi.commands.ShowCMD;
|
||||
import nl.sbdeveloper.showapi.data.DataSaving;
|
||||
import nl.sbdeveloper.showapi.data.Shows;
|
||||
|
@ -12,8 +16,10 @@ import org.inventivetalent.apihelper.APIManager;
|
|||
public final class ShowAPIPlugin extends JavaPlugin {
|
||||
|
||||
private static ShowAPIPlugin instance;
|
||||
private static PaperCommandManager commandManager;
|
||||
private final ShowAPI showAPI = new ShowAPI();
|
||||
private static YamlFile data;
|
||||
private static ParticleNativeAPI particleAPI;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
|
@ -29,9 +35,20 @@ public final class ShowAPIPlugin extends JavaPlugin {
|
|||
|
||||
APIManager.initAPI(ShowAPI.class);
|
||||
|
||||
Inventory.init();
|
||||
commandManager = new PaperCommandManager(this);
|
||||
commandManager.enableUnstableAPI("help");
|
||||
|
||||
getCommand("mctpshow").setExecutor(new ShowCMD());
|
||||
commandManager.registerCommand(new ShowCMD());
|
||||
|
||||
try {
|
||||
particleAPI = ParticleNativeCore.loadAPI(this);
|
||||
} catch (ParticleException ex) {
|
||||
ex.printStackTrace();
|
||||
getPluginLoader().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
|
||||
Inventory.init();
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(this, DataSaving::load, 1L); //Load 1 tick later, because of multi world
|
||||
}
|
||||
|
@ -51,7 +68,15 @@ public final class ShowAPIPlugin extends JavaPlugin {
|
|||
return instance;
|
||||
}
|
||||
|
||||
public static PaperCommandManager getCommandManager() {
|
||||
return commandManager;
|
||||
}
|
||||
|
||||
public static YamlFile getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public static ParticleNativeAPI getParticleAPI() {
|
||||
return particleAPI;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,8 +19,9 @@ public abstract class TriggerTask {
|
|||
|
||||
/**
|
||||
* This method gets fired when the cue gets removed
|
||||
* It's not required, and does nothing if it's not needed.
|
||||
*/
|
||||
public abstract void remove();
|
||||
public void remove() {}
|
||||
|
||||
/**
|
||||
* Get the trigger type
|
||||
|
|
|
@ -5,6 +5,7 @@ import nl.sbdeveloper.showapi.api.triggers.*;
|
|||
public enum TriggerType {
|
||||
COMMAND(CommandTrigger.class, 2),
|
||||
FIREWORK(FireworkTrigger.class, 6),
|
||||
FAKE_FIREWORK(FakeFireworkTrigger.class, 7),
|
||||
SPOT(SpotTrigger.class, 6),
|
||||
LASER(LaserTrigger.class, 6),
|
||||
ANIMA(AnimaTrigger.class, 2),
|
||||
|
|
|
@ -17,9 +17,4 @@ public class AnimaTrigger extends TriggerTask {
|
|||
public void trigger() {
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "anima play " + name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
//TODO Remove the anima?
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,4 @@ public class CommandTrigger extends TriggerTask {
|
|||
public void trigger() {
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {} //A command is one time, ignore.
|
||||
}
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
package nl.sbdeveloper.showapi.api.triggers;
|
||||
|
||||
import nl.sbdeveloper.showapi.ShowAPIPlugin;
|
||||
import nl.sbdeveloper.showapi.api.TriggerTask;
|
||||
import nl.sbdeveloper.showapi.api.TriggerType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
||||
public class FakeFireworkTrigger extends TriggerTask {
|
||||
private Location spawnLoc;
|
||||
private float xVelocity;
|
||||
private float yVelocity;
|
||||
private float zVelocity;
|
||||
|
||||
public FakeFireworkTrigger(String[] data) {
|
||||
super(TriggerType.FAKE_FIREWORK, data);
|
||||
|
||||
World w = Bukkit.getWorld(data[0]);
|
||||
if (w == null) {
|
||||
Bukkit.getLogger().info("De wereld is null!");
|
||||
return;
|
||||
}
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
try {
|
||||
x = Integer.parseInt(data[1]);
|
||||
y = Integer.parseInt(data[2]);
|
||||
z = Integer.parseInt(data[3]);
|
||||
} catch (NumberFormatException ex) {
|
||||
Bukkit.getLogger().info("De positie is incorrect!");
|
||||
return;
|
||||
}
|
||||
|
||||
this.spawnLoc = new Location(w, x, y, z);
|
||||
|
||||
try {
|
||||
this.xVelocity = Float.parseFloat(data[4]);
|
||||
this.yVelocity = Float.parseFloat(data[5]);
|
||||
this.zVelocity = Float.parseFloat(data[6]);
|
||||
} catch (NumberFormatException ex) {
|
||||
Bukkit.getLogger().info("De velocity is incorrect!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trigger() {
|
||||
//TODO Fix this trigger
|
||||
ShowAPIPlugin.getParticleAPI().getParticles_1_13().DUST().color(255, 0, 0, 5).packet(true, spawnLoc.getX(), spawnLoc.getY(), spawnLoc.getZ(), xVelocity, yVelocity, zVelocity, 0.01, 40);
|
||||
}
|
||||
}
|
|
@ -73,7 +73,4 @@ public class FireworkTrigger extends TriggerTask {
|
|||
public void trigger() {
|
||||
ShowAPI.Fireworks.spawn(fw, spawnLoc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {} //Firework is one-time, ignore.
|
||||
}
|
||||
|
|
|
@ -53,7 +53,4 @@ public class ParticleTrigger extends TriggerTask {
|
|||
public void trigger() {
|
||||
spawnLoc.getWorld().spawnParticle(type, spawnLoc, count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {} //A particle is one time, ignore.
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
package nl.sbdeveloper.showapi.commands;
|
||||
|
||||
import co.aikar.commands.BaseCommand;
|
||||
import co.aikar.commands.annotation.*;
|
||||
import nl.sbdeveloper.showapi.api.TriggerTask;
|
||||
import nl.sbdeveloper.showapi.data.Shows;
|
||||
import nl.sbdeveloper.showapi.gui.ShowCueGUI;
|
||||
import nl.sbdeveloper.showapi.utils.MainUtil;
|
||||
import nl.sbdeveloper.showapi.utils.TimeUtil;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ShowCMD implements CommandExecutor {
|
||||
@CommandAlias("mctpshow|show")
|
||||
@CommandPermission("mctp.show")
|
||||
public class ShowCMD extends BaseCommand {
|
||||
/*
|
||||
/mctpshow create <Naam>
|
||||
/mctpshow delete <Naam>
|
||||
|
@ -22,106 +23,97 @@ public class ShowCMD implements CommandExecutor {
|
|||
/mctpshow gui <Naam>
|
||||
*/
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, @NotNull String[] args) {
|
||||
if (label.equalsIgnoreCase("mctpshow")) {
|
||||
if (!sender.hasPermission("mctp.show")) {
|
||||
sender.sendMessage(ChatColor.RED + "Je hebt hier geen permissie voor.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 2 && args[0].equalsIgnoreCase("create")) {
|
||||
String name = args[1];
|
||||
if (Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat al.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Shows.create(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is aangemaakt!");
|
||||
return true;
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("delete")) {
|
||||
String name = args[1];
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Shows.delete(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is verwijderd!");
|
||||
return true;
|
||||
} else if (args.length >= 5 && args[0].equalsIgnoreCase("add")) {
|
||||
String name = args[1];
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Long time;
|
||||
try {
|
||||
time = TimeUtil.toMilis(args[2]);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage(ChatColor.RED + "Heeft een correcte tijd mee.");
|
||||
return false;
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 3; i < args.length; i++) {
|
||||
builder.append(args[i]).append(" ");
|
||||
}
|
||||
TriggerTask data = MainUtil.parseData(builder.toString().trim());
|
||||
|
||||
if (data == null) {
|
||||
sender.sendMessage(ChatColor.RED + "Je hebt niet genoeg informatie meegeven voor de trigger.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Shows.addPoint(name, time, data);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " bevat nu een extra punt!");
|
||||
return true;
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("start")) {
|
||||
String name = args[1];
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Shows.startShow(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is gestart!");
|
||||
return true;
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("cancel")) {
|
||||
String name = args[1];
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Shows.cancelShow(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is gestopt!");
|
||||
return true;
|
||||
} else if (args.length == 2 && args[0].equalsIgnoreCase("gui")) {
|
||||
if (!(sender instanceof Player)) {
|
||||
sender.sendMessage(ChatColor.RED + "Je moet een speler zijn om dit te doen.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Player p = (Player) sender;
|
||||
|
||||
String name = args[1];
|
||||
if (!Shows.exists(name)) {
|
||||
p.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return false;
|
||||
}
|
||||
|
||||
new ShowCueGUI(p, name);
|
||||
return true;
|
||||
}
|
||||
@Subcommand("create")
|
||||
@Description("")
|
||||
public void onCreate(CommandSender sender, @Single String name) {
|
||||
if (Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat al.");
|
||||
return;
|
||||
}
|
||||
return false;
|
||||
|
||||
Shows.create(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is aangemaakt!");
|
||||
}
|
||||
|
||||
@Subcommand("delete")
|
||||
@Description("")
|
||||
@CommandCompletion("@showname")
|
||||
public void onDelete(CommandSender sender, @Single String name) {
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return;
|
||||
}
|
||||
|
||||
Shows.delete(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is verwijderd!");
|
||||
}
|
||||
|
||||
@Subcommand("add")
|
||||
@Description("")
|
||||
@CommandCompletion("@showname @empty @showtype")
|
||||
public void onAdd(CommandSender sender, String name, String time, String args) {
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return;
|
||||
}
|
||||
|
||||
Long timeMilli;
|
||||
try {
|
||||
timeMilli = TimeUtil.toMilis(time);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage(ChatColor.RED + "Geef een correcte tijd mee.");
|
||||
return;
|
||||
}
|
||||
|
||||
TriggerTask data = MainUtil.parseData(args);
|
||||
if (data == null) {
|
||||
sender.sendMessage(ChatColor.RED + "Je hebt niet genoeg informatie meegeven voor de trigger.");
|
||||
return;
|
||||
}
|
||||
|
||||
Shows.addPoint(name, timeMilli, data);
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " bevat nu een extra punt!");
|
||||
}
|
||||
|
||||
@Subcommand("start")
|
||||
@Description("")
|
||||
@CommandCompletion("@showname")
|
||||
public void onStart(CommandSender sender, @Single String name) {
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return;
|
||||
}
|
||||
|
||||
Shows.startShow(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is gestart!");
|
||||
}
|
||||
|
||||
@Subcommand("cancel")
|
||||
@Description("")
|
||||
@CommandCompletion("@showname")
|
||||
public void onCancel(CommandSender sender, @Single String name) {
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return;
|
||||
}
|
||||
|
||||
Shows.cancelShow(name);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "De show " + ChatColor.WHITE + name + ChatColor.GREEN + " is gestopt!");
|
||||
}
|
||||
|
||||
@Subcommand("gui")
|
||||
@Description("")
|
||||
@CommandCompletion("@showname")
|
||||
public void onGUI(Player sender, @Single String name) {
|
||||
if (!Shows.exists(name)) {
|
||||
sender.sendMessage(ChatColor.RED + "Die show bestaat niet.");
|
||||
return;
|
||||
}
|
||||
|
||||
new ShowCueGUI(sender, name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,10 +4,4 @@ main: nl.sbdeveloper.showapi.ShowAPIPlugin
|
|||
api-version: 1.13
|
||||
authors: [SBDeveloper]
|
||||
description: Make perfect shows with this API!
|
||||
website: https://sbdplugins.nl
|
||||
commands:
|
||||
mctpshow:
|
||||
description: Het show command!
|
||||
permissions:
|
||||
mctp.show:
|
||||
description: De permissie voor /mctpshow
|
||||
website: https://sbdplugins.nl
|
Loading…
Add table
Reference in a new issue