149 lines
5.8 KiB
Java
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;
|
|
}
|
|
|
|
}
|