diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java b/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java
index b0cbda0..0416e96 100644
--- a/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java
+++ b/src/me/rockyhawk/commandpanels/classresources/ExecuteOpenVoids.java
@@ -13,6 +13,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
public class ExecuteOpenVoids {
diff --git a/src/me/rockyhawk/commandpanels/commands/CommandPanelImport.java b/src/me/rockyhawk/commandpanels/commands/CommandPanelImport.java
index c026216..dd83828 100644
--- a/src/me/rockyhawk/commandpanels/commands/CommandPanelImport.java
+++ b/src/me/rockyhawk/commandpanels/commands/CommandPanelImport.java
@@ -10,7 +10,10 @@ import org.bukkit.scheduler.BukkitRunnable;
public class CommandPanelImport implements CommandExecutor {
CommandPanels plugin;
- public CommandPanelImport(CommandPanels pl) { this.plugin = pl; }
+
+ public CommandPanelImport(CommandPanels pl) {
+ this.plugin = pl;
+ }
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
@@ -20,14 +23,14 @@ public class CommandPanelImport implements CommandExecutor {
new BukkitRunnable() {
@Override
public void run() {
- plugin.downloader.downloadPanel(sender,args[1],args[0]);
+ plugin.downloader.downloadPanel(sender, args[1], args[0]);
plugin.reloadPanelFiles();
plugin.hotbar.reloadHotbarSlots();
}
}.run();
return true;
}
- }else{
+ } else {
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms")));
}
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpi "));
diff --git a/src/me/rockyhawk/commandpanels/commands/Commandpanel.java b/src/me/rockyhawk/commandpanels/commands/Commandpanel.java
index f0b4e7f..1aff2a4 100644
--- a/src/me/rockyhawk/commandpanels/commands/Commandpanel.java
+++ b/src/me/rockyhawk/commandpanels/commands/Commandpanel.java
@@ -3,6 +3,7 @@ package me.rockyhawk.commandpanels.commands;
import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.api.Panel;
import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -22,72 +23,92 @@ public class Commandpanel implements CommandExecutor {
//below is going to go through the files and find the right one
Panel panel = null;
if (args.length != 0) { //check to make sure the person hasn't just left it empty
- for(Panel tempPanel : plugin.panelList){
- if(tempPanel.getName().equals(args[0])) {
+ for (Panel tempPanel : plugin.panelList) {
+ if (tempPanel.getName().equals(args[0])) {
panel = tempPanel;
break;
}
}
- }else{
+ } else {
plugin.helpMessage(sender);
return true;
}
- if(panel == null){
+ if (panel == null) {
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.nopanel")));
return true;
}
boolean disableCommand = false;
- if(panel.getConfig().contains("panelType")) {
+ if (panel.getConfig().contains("panelType")) {
if (panel.getConfig().getStringList("panelType").contains("nocommand")) {
//do not allow command with noCommand, console is an exception
- disableCommand = true;
+ disableCommand = true;
}
}
//below will start the command, once it got the right file and panel
- if(!(sender instanceof Player)) {
+ if (!(sender instanceof Player)) {
//do console command
- if(args.length == 2){
- if(!args[1].equals("item")){
- plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(), PanelPosition.Top, true);
- }else{
- sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp [item] [player]"));
+ if (args.length == 2) {
+ if (!args[1].equals("item")) {
+ if (args[1].equalsIgnoreCase("all")) {
+ for (Player player : Bukkit.getOnlinePlayers())
+ plugin.openVoids.openCommandPanel(sender, player, panel.copy(), PanelPosition.Top, true);
+ } else
+ plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(), PanelPosition.Top, true);
+ } else {
+ sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp [item] [player|all]"));
}
return true;
- }else if(args.length == 3){
+ } else if (args.length == 3) {
if (args[1].equals("item")) {
- plugin.openVoids.giveHotbarItem(sender,plugin.getServer().getPlayer(args[2]),panel.copy(),true);
- }else{
- sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp item [player]"));
+ if (args[2].equalsIgnoreCase("all")) {
+ // if the argument is all open the panel for all of the players
+ for (Player player : Bukkit.getOnlinePlayers())
+ plugin.openVoids.openCommandPanel(sender, player, panel.copy(), PanelPosition.Top, true);
+ } else
+ plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panel.copy(), true);
+ } else {
+ sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp item [player|all]"));
}
return true;
} else {
- sender.sendMessage(plugin.tex.colour( plugin.tag + ChatColor.RED + "Please execute command directed to a Player!"));
+ sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Please execute command directed to a Player!"));
return true;
}
- }else{
+ } else {
//get player
Player p = (Player) sender;
//do player command
if (args.length == 1) {
- if(!disableCommand) {
- plugin.openVoids.openCommandPanel(sender, p, panel.copy(),PanelPosition.Top, false);
+ if (!disableCommand) {
+ plugin.openVoids.openCommandPanel(sender, p, panel.copy(), PanelPosition.Top, false);
}
return true;
- }else if(args.length == 2){
+ } else if (args.length == 2) {
if (args[1].equals("item")) {
+
plugin.openVoids.giveHotbarItem(sender, p, panel.copy(), false);
- }else{
- if(!disableCommand) {
- plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(),PanelPosition.Top, true);
+ } else {
+ if (!disableCommand) {
+ if (args[1].equalsIgnoreCase("all")) {
+ // if the argument is all open the panel for all of the players
+ for (Player player : Bukkit.getOnlinePlayers())
+ plugin.openVoids.openCommandPanel(sender, player, panel.copy(), PanelPosition.Top, true);
+ } else
+ plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(), PanelPosition.Top, true);
}
}
return true;
- }else if(args.length == 3){
- plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panel.copy(),true);
+ } else if (args.length == 3) {
+ if (args[2].equalsIgnoreCase("all")) {
+ // if the argument is all open the panel for all of the players
+ for (Player player : Bukkit.getOnlinePlayers())
+ plugin.openVoids.giveHotbarItem(sender, player, panel.copy(), true);
+ } else
+ plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panel.copy(), true);
return true;
}
}
- sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp [player:item] [player]"));
+ sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp [player|all:item] [player|all]"));
return true;
}
}
diff --git a/src/me/rockyhawk/commandpanels/commands/Commandpanelsdata.java b/src/me/rockyhawk/commandpanels/commands/Commandpanelsdata.java
index 55f6eb6..96f933e 100644
--- a/src/me/rockyhawk/commandpanels/commands/Commandpanelsdata.java
+++ b/src/me/rockyhawk/commandpanels/commands/Commandpanelsdata.java
@@ -1,10 +1,13 @@
package me.rockyhawk.commandpanels.commands;
import me.rockyhawk.commandpanels.CommandPanels;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
+import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import java.util.Arrays;
@@ -13,7 +16,7 @@ public class Commandpanelsdata implements CommandExecutor {
CommandPanels plugin;
public Commandpanelsdata(CommandPanels pl) { this.plugin = pl; }
- @EventHandler
+ @Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (sender.hasPermission("commandpanel.data")) {
boolean sendPlayerMessage = true;
@@ -25,7 +28,12 @@ public class Commandpanelsdata implements CommandExecutor {
if(args.length == 2){
//for the clear command
if(args[0].equals("clear")){
- plugin.panelData.clearData(plugin.panelData.getOffline(args[1]));
+ if (args[1].equalsIgnoreCase("all")) {
+ for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ plugin.panelData.clearData(plugin.panelData.getOffline(player.getName()));
+ }
+ } else
+ plugin.panelData.clearData(plugin.panelData.getOffline(args[1]));
if(sendPlayerMessage) {
sender.sendMessage(plugin.tex.colour(plugin.tag
+ ChatColor.GREEN + "Cleared all data for "
@@ -36,7 +44,12 @@ public class Commandpanelsdata implements CommandExecutor {
}else if (args.length == 3){
//for the remove command
if(args[0].equals("remove")) {
- plugin.panelData.delUserData(plugin.panelData.getOffline(args[1]), args[2]);
+ if (args[1].equalsIgnoreCase("all")) {
+ for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ plugin.panelData.delUserData(plugin.panelData.getOffline(player.getName()), args[2]);
+ }
+ } else
+ plugin.panelData.delUserData(plugin.panelData.getOffline(args[1]), args[2]);
if(sendPlayerMessage) {
sender.sendMessage(plugin.tex.colour(plugin.tag
+ ChatColor.GREEN + "Removed "
@@ -55,7 +68,13 @@ public class Commandpanelsdata implements CommandExecutor {
}else if (args.length == 4){
if(args[0].equals("set")){
//for set command
- plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2],args[3],true);
+ if (args[1].equalsIgnoreCase("all")) {
+ for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2],args[3],true);
+ }
+ } else {
+ plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2], args[3], true);
+ }
if(sendPlayerMessage) {
sender.sendMessage(plugin.tex.colour(plugin.tag
+ ChatColor.GREEN + "Set "
@@ -65,7 +84,12 @@ public class Commandpanelsdata implements CommandExecutor {
}
}else{
//for add command
- plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2],args[3],false);
+ if (args[1].equalsIgnoreCase("all")) {
+ for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2],args[3],false);
+ }
+ } else
+ plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2],args[3],false);
if(sendPlayerMessage) {
sender.sendMessage(plugin.tex.colour(plugin.tag
+ ChatColor.GREEN + "Set "
@@ -77,7 +101,7 @@ public class Commandpanelsdata implements CommandExecutor {
}
return true;
}
- sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpdata [value]"));
+ sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpdata [value]"));
}else{
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms")));
}
diff --git a/src/me/rockyhawk/commandpanels/commands/Commandpanelsdebug.java b/src/me/rockyhawk/commandpanels/commands/Commandpanelsdebug.java
index a22887a..4aeaa83 100644
--- a/src/me/rockyhawk/commandpanels/commands/Commandpanelsdebug.java
+++ b/src/me/rockyhawk/commandpanels/commands/Commandpanelsdebug.java
@@ -12,7 +12,7 @@ public class Commandpanelsdebug implements CommandExecutor {
CommandPanels plugin;
public Commandpanelsdebug(CommandPanels pl) { this.plugin = pl; }
- @EventHandler
+ @Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (sender.hasPermission("commandpanel.debug")) {
if (args.length == 0) {
diff --git a/src/me/rockyhawk/commandpanels/completetabs/CpTabComplete.java b/src/me/rockyhawk/commandpanels/completetabs/CpTabComplete.java
index 2025f1e..3009ff1 100644
--- a/src/me/rockyhawk/commandpanels/completetabs/CpTabComplete.java
+++ b/src/me/rockyhawk/commandpanels/completetabs/CpTabComplete.java
@@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.completetabs;
import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.api.Panel;
+import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
@@ -9,41 +10,68 @@ import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
public class CpTabComplete implements TabCompleter {
CommandPanels plugin;
- public CpTabComplete(CommandPanels pl) { this.plugin = pl; }
+
+ public CpTabComplete(CommandPanels pl) {
+ this.plugin = pl;
+ }
+
@Override
public List onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
- if(sender instanceof Player && args.length == 1){
- Player p = ((Player) sender).getPlayer();
- if(label.equalsIgnoreCase("cp") || label.equalsIgnoreCase("cpanel") || label.equalsIgnoreCase("commandpanel")){
- ArrayList apanels = new ArrayList(); //all panels
- for(Panel panel : plugin.panelList) { //will loop through all the files in folder
- try {
- if (!panel.getName().startsWith(args[0])) {
- //this will narrow down the panels to what the user types
- continue;
- }
- if (sender.hasPermission("commandpanel.panel." + panel.getConfig().getString("perm"))) {
- if(panel.getConfig().contains("panelType")) {
- if (panel.getConfig().getStringList("panelType").contains("nocommand")) {
- //do not allow command with nocommand
- continue;
+ if (sender instanceof Player && args.length >= 1)
+ if (label.equalsIgnoreCase("cp") || label.equalsIgnoreCase("cpanel") || label.equalsIgnoreCase("commandpanel")) {
+ Player p = ((Player) sender).getPlayer();
+ if (args.length == 1) {
+ ArrayList apanels = new ArrayList(); //all panels
+ for (Panel panel : plugin.panelList) { //will loop through all the files in folder
+ try {
+ if (!panel.getName().startsWith(args[0])) {
+ //this will narrow down the panels to what the user types
+ continue;
+ }
+ if (sender.hasPermission("commandpanel.panel." + panel.getConfig().getString("perm"))) {
+ if (panel.getConfig().contains("panelType")) {
+ if (panel.getConfig().getStringList("panelType").contains("nocommand")) {
+ //do not allow command with nocommand
+ continue;
+ }
+ }
+ if (plugin.panelPerms.isPanelWorldEnabled(p, panel.getConfig())) {
+ apanels.add(panel.getName());
}
}
- if(plugin.panelPerms.isPanelWorldEnabled(p,panel.getConfig())){
- apanels.add(panel.getName());
- }
+ } catch (Exception skip) {
+ //ignore panel
}
- }catch(Exception skip){
- //ignore panel
}
+ return apanels;
}
- return apanels;
+
+ if (args.length == 2 || args.length == 3) {
+
+ List aplayers = new ArrayList<>();
+
+ if ("all".startsWith(args[(args.length == 2 ? 1 : 2)].toLowerCase())) aplayers.add("all");
+
+ if (args.length == 2 && "item".startsWith(args[1].toLowerCase())) aplayers.add("item");
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ String name = player.getName();
+ if (name.toLowerCase().startsWith(args[(args.length == 2 ? 1 : 2)])) {
+ //this will narrow down the panels to what the user types
+ aplayers.add(name);
+ }
+
+ }
+
+ return aplayers;
+ }
+
+
}
- }
return null;
}
}
\ No newline at end of file
diff --git a/src/me/rockyhawk/commandpanels/completetabs/DataTabComplete.java b/src/me/rockyhawk/commandpanels/completetabs/DataTabComplete.java
index d62f343..ec057a5 100644
--- a/src/me/rockyhawk/commandpanels/completetabs/DataTabComplete.java
+++ b/src/me/rockyhawk/commandpanels/completetabs/DataTabComplete.java
@@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.completetabs;
import me.rockyhawk.commandpanels.CommandPanels;
import org.bukkit.Bukkit;
+import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
@@ -19,17 +20,23 @@ public class DataTabComplete implements TabCompleter {
if(sender.hasPermission("commandpanel.data")) {
ArrayList output = new ArrayList<>();
if(args.length == 1){
- output.add("set");
- output.add("add");
- output.add("get");
- output.add("remove");
- output.add("clear");
+ String arg1 = args[0].toLowerCase();
+ if ("set".startsWith(arg1))output.add("set");
+ if ("add".startsWith(arg1))output.add("add");
+ if ("get".startsWith(arg1))output.add("get");
+ if ("remove".startsWith(arg1))output.add("remove");
+ if ("clear".startsWith(arg1))output.add("clear");
}else if(args.length == 2){
- for (Player p : Bukkit.getOnlinePlayers()) {
- if (!p.getName().startsWith(args[1])) {
- continue;
+ if ("all".startsWith(args[1].toLowerCase()) && !args[0].equalsIgnoreCase("get")) output.add("all");
+
+ for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ String name = player.getName();
+ // don't worry about it saying it may throw a NPE
+ if (name.toLowerCase().startsWith(args[1])) {
+ //this will narrow down the panels to what the user types
+ output.add(name);
}
- output.add(p.getName());
+
}
}else if(args.length == 3){
//the clear function is here as it is the only subcommand with 3 args