ThemeParkAudio/src/me/mctp/MCTPAudioCmd.java
2020-05-17 21:55:32 +02:00

149 lines
5.8 KiB
Java

package me.mctp;
import me.mctp.api.AudioType;
import me.mctp.managers.PinManager;
import me.mctp.utils.SpigotPlayerSelector;
import org.bukkit.Bukkit;
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.json.simple.JSONObject;
import java.util.ArrayList;
public class MCTPAudioCmd implements CommandExecutor {
public String prefix = (ChatColor.GOLD + "[" + ChatColor.YELLOW + "MCTP" + ChatColor.GOLD + "] " + ChatColor.GRAY);
public boolean onCommand(CommandSender sender, Command cmd, String commandlabel, String[] args) {
if (cmd.getName().equalsIgnoreCase("mctpaudio")) {
// /mctpaudio play SELECTOR TYPE URL
// /mctpaudio stop SELECTOR TYPE
if (args.length == 4 && args[0].equalsIgnoreCase("play")) {
AudioType type;
try {
type = AudioType.valueOf(args[2].toUpperCase());
} catch (IllegalArgumentException ex) {
sender.sendMessage(prefix + args[2] + " is geen correcte type.");
return true;
}
ArrayList<Player> players = new ArrayList<>();
Player target = Bukkit.getPlayer(args[1]);
if (target != null) {
if (!PinManager.hasPin(target.getUniqueId())) {
sender.sendMessage(prefix + "Die speler is niet verbonden met de client.");
return true;
}
players.add(target);
} else {
SpigotPlayerSelector selector = new SpigotPlayerSelector(args[1]);
players.addAll(selector.getPlayers(sender));
}
JSONObject data;
for (Player p : players) {
data = new JSONObject();
if (!PinManager.hasPin(p.getUniqueId())) continue;
data.put("task", type.name());
data.put("path", args[3]);
data.put("uuid", p.getUniqueId().toString().replace("-", ""));
Main.getClient().sendData(data);
}
sender.sendMessage(prefix + "Gestart met afspelen!");
return true;
} else if (args.length == 5 && args[0].equalsIgnoreCase("hue")) {
int r;
int g;
int b;
try {
r = Integer.parseInt(args[2]);
g = Integer.parseInt(args[3]);
b = Integer.parseInt(args[4]);
} catch (IllegalArgumentException ex) {
sender.sendMessage(prefix + args[2] + ", " + args[3] + ", " + args[4] + " zijn incorrecte RGB waardes.");
return true;
}
ArrayList<Player> players = new ArrayList<>();
Player target = Bukkit.getPlayer(args[1]);
if (target != null) {
if (!PinManager.hasPin(target.getUniqueId())) {
sender.sendMessage(prefix + "Die speler is niet verbonden met de client.");
return true;
}
players.add(target);
} else {
SpigotPlayerSelector selector = new SpigotPlayerSelector(args[1]);
players.addAll(selector.getPlayers(sender));
}
JSONObject data;
for (Player p : players) {
data = new JSONObject();
if (!PinManager.hasPin(p.getUniqueId())) continue;
data.put("task", "HUE");
data.put("rgb", r + ":" + g + ":" + b);
data.put("uuid", p.getUniqueId().toString().replace("-", ""));
Main.getClient().sendData(data);
}
sender.sendMessage(prefix + "Gestart met afspelen!");
return true;
} else if (args.length == 2 && args[0].equalsIgnoreCase("stop")) {
ArrayList<Player> players = new ArrayList<>();
Player target = Bukkit.getPlayer(args[1]);
if (target != null) {
if (!PinManager.hasPin(target.getUniqueId())) {
sender.sendMessage(prefix + "Die speler is niet verbonden met de client.");
return true;
}
players.add(target);
} else {
SpigotPlayerSelector selector = new SpigotPlayerSelector(args[1]);
players.addAll(selector.getPlayers(sender));
}
JSONObject data;
for (Player p : players) {
data = new JSONObject();
if (!PinManager.hasPin(p.getUniqueId())) continue;
data.put("task", "STOP");
data.put("uuid", p.getUniqueId().toString().replace("-", ""));
Main.getClient().sendData(data);
}
sender.sendMessage(prefix + "Gestopt met afspelen!");
return true;
}
} else if (cmd.getName().equalsIgnoreCase("audio")) {
if (!(sender instanceof Player)) {
sender.sendMessage(prefix + "Alleen spelers kunnen verbinden met onze audioclient.");
return true;
}
Player p = (Player) sender;
String pin = PinManager.getPIN(p.getUniqueId());
String url = "http://localhost/audio/index";
url = url + "?uuid=" + p.getUniqueId().toString().replace("-", "") + "&pin=" + pin;
sender.sendMessage(prefix + "Gebruik: " + url);
return true;
}
return false;
}
}