Moved to ACF and Java 11, and started with FakeFirework

This commit is contained in:
stijnb1234 2021-01-29 15:22:56 +01:00
parent a3047234b3
commit 05a473b538
11 changed files with 211 additions and 133 deletions

36
pom.xml
View file

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

View file

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

View file

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

View file

@ -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),

View file

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

View file

@ -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.
}

View file

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

View file

@ -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.
}

View file

@ -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.
}

View file

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

View file

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