150 lines
6.3 KiB
Java
150 lines
6.3 KiB
Java
package me.Travja.HungerArena;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
|
|
public class CommandBlock implements Listener {
|
|
public Main plugin;
|
|
public CommandBlock(Main m) {
|
|
this.plugin = m;
|
|
}
|
|
@EventHandler(priority = EventPriority.MONITOR)
|
|
public void CatchCommand(PlayerCommandPreprocessEvent event){
|
|
String cmd = event.getMessage();
|
|
Player p = event.getPlayer();
|
|
String pname = p.getName();
|
|
int i = 0;
|
|
int x = 0;
|
|
for(x = 1; x < plugin.Watching.size(); x++){
|
|
if(plugin.Watching.get(x).contains(p.getName())){
|
|
if(!p.hasPermission("HungerArena.UseCommands")){
|
|
if(!plugin.management.getStringList("commands.whitelist").isEmpty()){
|
|
for(String whitelist: plugin.management.getStringList("commands.whitelist")){
|
|
i = i+1;
|
|
if(i== plugin.management.getStringList("commands.whitelist").size()){
|
|
if(!cmd.toLowerCase().startsWith(whitelist.toLowerCase()) || !cmd.toLowerCase().startsWith("/ha")){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
|
|
for(String whitelistfull: plugin.management.getStringList("commands.whitelist")){
|
|
p.sendMessage(ChatColor.AQUA + whitelistfull);
|
|
}
|
|
p.sendMessage(ChatColor.AQUA + "/ha");
|
|
p.sendMessage(ChatColor.AQUA + "/ha close");
|
|
p.sendMessage(ChatColor.AQUA + "/ha help");
|
|
p.sendMessage(ChatColor.AQUA + "/ha join");
|
|
p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
|
|
p.sendMessage(ChatColor.AQUA + "/ha leave");
|
|
p.sendMessage(ChatColor.AQUA + "/ha list");
|
|
p.sendMessage(ChatColor.AQUA + "/ha open");
|
|
p.sendMessage(ChatColor.AQUA + "/ha ready");
|
|
p.sendMessage(ChatColor.AQUA + "/ha refill");
|
|
p.sendMessage(ChatColor.AQUA + "/ha reload");
|
|
p.sendMessage(ChatColor.AQUA + "/ha restart");
|
|
p.sendMessage(ChatColor.AQUA + "/ha rlist");
|
|
p.sendMessage(ChatColor.AQUA + "/ha setspawn");
|
|
p.sendMessage(ChatColor.AQUA + "/ha start");
|
|
p.sendMessage(ChatColor.AQUA + "/ha tp");
|
|
p.sendMessage(ChatColor.AQUA + "/ha watch");
|
|
p.sendMessage(ChatColor.AQUA + "/ha warpall");
|
|
}
|
|
}
|
|
}
|
|
}else if(!cmd.toLowerCase().startsWith("/ha")){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You are only allowed to perform /ha commands!");
|
|
}
|
|
}else if(!cmd.toLowerCase().startsWith("/ha")){
|
|
if(cmd.toLowerCase().startsWith("/spawn")){
|
|
event.setCancelled(true);
|
|
p.sendMessage("You have perms for all commands except this one!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(plugin.getArena(p)!= null){
|
|
if(!p.hasPermission("HungerArena.UseCommands")){
|
|
if(!plugin.management.getStringList("commands.whitelist").isEmpty()){
|
|
for(String whitelist: plugin.management.getStringList("commands.whitelist")){
|
|
i = i+1;
|
|
if(i== plugin.management.getStringList("commands.whitelist").size()){
|
|
if(!cmd.toLowerCase().startsWith(whitelist.toLowerCase()) || !cmd.toLowerCase().startsWith("/ha")){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
|
|
for(String whitelistfull: plugin.management.getStringList("commands.whitelist")){
|
|
p.sendMessage(ChatColor.AQUA + whitelistfull);
|
|
}
|
|
p.sendMessage(ChatColor.AQUA + "/ha");
|
|
p.sendMessage(ChatColor.AQUA + "/ha close");
|
|
p.sendMessage(ChatColor.AQUA + "/ha help");
|
|
p.sendMessage(ChatColor.AQUA + "/ha join");
|
|
p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
|
|
p.sendMessage(ChatColor.AQUA + "/ha leave");
|
|
p.sendMessage(ChatColor.AQUA + "/ha list");
|
|
p.sendMessage(ChatColor.AQUA + "/ha open");
|
|
p.sendMessage(ChatColor.AQUA + "/ha ready");
|
|
p.sendMessage(ChatColor.AQUA + "/ha refill");
|
|
p.sendMessage(ChatColor.AQUA + "/ha reload");
|
|
p.sendMessage(ChatColor.AQUA + "/ha restart");
|
|
p.sendMessage(ChatColor.AQUA + "/ha rlist");
|
|
p.sendMessage(ChatColor.AQUA + "/ha setspawn");
|
|
p.sendMessage(ChatColor.AQUA + "/ha start");
|
|
p.sendMessage(ChatColor.AQUA + "/ha tp");
|
|
p.sendMessage(ChatColor.AQUA + "/ha watch");
|
|
p.sendMessage(ChatColor.AQUA + "/ha warpall");
|
|
}
|
|
}
|
|
}
|
|
}else if(!cmd.toLowerCase().startsWith("/ha")){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You are only allowed to perform /ha commands!");
|
|
}
|
|
}else if(!cmd.toLowerCase().startsWith("/ha")){
|
|
if(cmd.toLowerCase().startsWith("/spawn")){
|
|
event.setCancelled(true);
|
|
p.sendMessage("You have perms for all commands except this one!");
|
|
}
|
|
}
|
|
}else if(cmd.toLowerCase().equals("/back")){
|
|
for(i = 1; i < plugin.Dead.size(); i++){
|
|
if(plugin.Dead.get(i).contains(pname) && plugin.canjoin.get(i))
|
|
plugin.Tele.add(p);
|
|
}
|
|
}else if(cmd.startsWith("/tp") || cmd.startsWith("/tpa") || cmd.startsWith("/tpo")){
|
|
String[] args = cmd.split(" ");
|
|
Player arg1 = null;
|
|
Player arg2 = null;
|
|
if(args.length == 2){
|
|
if(Bukkit.getPlayer(args[0]) != null && Bukkit.getPlayer(args[1]) != null){
|
|
arg1 = Bukkit.getPlayer(args[0]);
|
|
arg2 = Bukkit.getPlayer(args[1]);
|
|
if(plugin.isSpectating(p)){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "Invalid command for spectating, using /ha tp " + arg2);
|
|
p.performCommand("/ha tp " + arg2);
|
|
}else if(plugin.getArena(arg1)!= null || plugin.getArena(arg2)!= null){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You can't teleport to other tributes!");
|
|
}
|
|
}
|
|
}else if(args.length == 1){
|
|
if(Bukkit.getPlayer(args[0]) != null){
|
|
arg1 = Bukkit.getPlayer(args[0]);
|
|
if(plugin.isSpectating(p)){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "Invalid command for spectating, using /ha tp " + arg1);
|
|
p.performCommand("/ha tp " + arg1);
|
|
}else if(plugin.getArena(arg1)!= null || plugin.getArena(p)!= null){
|
|
event.setCancelled(true);
|
|
p.sendMessage(ChatColor.RED + "You can't teleport to other tributes!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|