forked from Upstream/CommandPanels
Add extensive tab completion to /cp and /cpdata
This commit is contained in:
parent
48367ae177
commit
a9919eb705
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -13,6 +13,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ExecuteOpenVoids {
|
public class ExecuteOpenVoids {
|
||||||
|
@ -10,7 +10,10 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||||||
|
|
||||||
public class CommandPanelImport implements CommandExecutor {
|
public class CommandPanelImport implements CommandExecutor {
|
||||||
CommandPanels plugin;
|
CommandPanels plugin;
|
||||||
public CommandPanelImport(CommandPanels pl) { this.plugin = pl; }
|
|
||||||
|
public CommandPanelImport(CommandPanels pl) {
|
||||||
|
this.plugin = pl;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
|
@ -3,6 +3,7 @@ package me.rockyhawk.commandpanels.commands;
|
|||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import me.rockyhawk.commandpanels.api.Panel;
|
import me.rockyhawk.commandpanels.api.Panel;
|
||||||
import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition;
|
import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@ -48,16 +49,25 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
//do console command
|
//do console command
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
if (!args[1].equals("item")) {
|
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);
|
plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(), PanelPosition.Top, true);
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> [item] [player]"));
|
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> [item] [player|all]"));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else if (args.length == 3) {
|
} else if (args.length == 3) {
|
||||||
if (args[1].equals("item")) {
|
if (args[1].equals("item")) {
|
||||||
|
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);
|
plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panel.copy(), true);
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> item [player]"));
|
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> item [player|all]"));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -75,19 +85,30 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
} else if (args.length == 2) {
|
} else if (args.length == 2) {
|
||||||
if (args[1].equals("item")) {
|
if (args[1].equals("item")) {
|
||||||
|
|
||||||
plugin.openVoids.giveHotbarItem(sender, p, panel.copy(), false);
|
plugin.openVoids.giveHotbarItem(sender, p, panel.copy(), false);
|
||||||
} else {
|
} else {
|
||||||
if (!disableCommand) {
|
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);
|
plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panel.copy(), PanelPosition.Top, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else if (args.length == 3) {
|
} 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);
|
plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panel.copy(), true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> [player:item] [player]"));
|
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cp <panel> [player|all:item] [player|all]"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package me.rockyhawk.commandpanels.commands;
|
package me.rockyhawk.commandpanels.commands;
|
||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -13,7 +16,7 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
CommandPanels plugin;
|
CommandPanels plugin;
|
||||||
public Commandpanelsdata(CommandPanels pl) { this.plugin = pl; }
|
public Commandpanelsdata(CommandPanels pl) { this.plugin = pl; }
|
||||||
|
|
||||||
@EventHandler
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (sender.hasPermission("commandpanel.data")) {
|
if (sender.hasPermission("commandpanel.data")) {
|
||||||
boolean sendPlayerMessage = true;
|
boolean sendPlayerMessage = true;
|
||||||
@ -25,6 +28,11 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
if(args.length == 2){
|
if(args.length == 2){
|
||||||
//for the clear command
|
//for the clear command
|
||||||
if(args[0].equals("clear")){
|
if(args[0].equals("clear")){
|
||||||
|
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]));
|
plugin.panelData.clearData(plugin.panelData.getOffline(args[1]));
|
||||||
if(sendPlayerMessage) {
|
if(sendPlayerMessage) {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag
|
sender.sendMessage(plugin.tex.colour(plugin.tag
|
||||||
@ -36,6 +44,11 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
}else if (args.length == 3){
|
}else if (args.length == 3){
|
||||||
//for the remove command
|
//for the remove command
|
||||||
if(args[0].equals("remove")) {
|
if(args[0].equals("remove")) {
|
||||||
|
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]);
|
plugin.panelData.delUserData(plugin.panelData.getOffline(args[1]), args[2]);
|
||||||
if(sendPlayerMessage) {
|
if(sendPlayerMessage) {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag
|
sender.sendMessage(plugin.tex.colour(plugin.tag
|
||||||
@ -55,7 +68,13 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
}else if (args.length == 4){
|
}else if (args.length == 4){
|
||||||
if(args[0].equals("set")){
|
if(args[0].equals("set")){
|
||||||
//for set command
|
//for set command
|
||||||
|
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);
|
plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2], args[3], true);
|
||||||
|
}
|
||||||
if(sendPlayerMessage) {
|
if(sendPlayerMessage) {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag
|
sender.sendMessage(plugin.tex.colour(plugin.tag
|
||||||
+ ChatColor.GREEN + "Set "
|
+ ChatColor.GREEN + "Set "
|
||||||
@ -65,6 +84,11 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
//for add command
|
//for add command
|
||||||
|
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);
|
plugin.panelData.setUserData(plugin.panelData.getOffline(args[1]), args[2],args[3],false);
|
||||||
if(sendPlayerMessage) {
|
if(sendPlayerMessage) {
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag
|
sender.sendMessage(plugin.tex.colour(plugin.tag
|
||||||
@ -77,7 +101,7 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpdata <set:add:get:remove:clear> <player> <data> [value]"));
|
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpdata <set:add:get:remove:clear> <player|all> <data> [value]"));
|
||||||
}else{
|
}else{
|
||||||
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms")));
|
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms")));
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ public class Commandpanelsdebug implements CommandExecutor {
|
|||||||
CommandPanels plugin;
|
CommandPanels plugin;
|
||||||
public Commandpanelsdebug(CommandPanels pl) { this.plugin = pl; }
|
public Commandpanelsdebug(CommandPanels pl) { this.plugin = pl; }
|
||||||
|
|
||||||
@EventHandler
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (sender.hasPermission("commandpanel.debug")) {
|
if (sender.hasPermission("commandpanel.debug")) {
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
|
@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.completetabs;
|
|||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import me.rockyhawk.commandpanels.api.Panel;
|
import me.rockyhawk.commandpanels.api.Panel;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
@ -9,16 +10,22 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
|
||||||
public class CpTabComplete implements TabCompleter {
|
public class CpTabComplete implements TabCompleter {
|
||||||
CommandPanels plugin;
|
CommandPanels plugin;
|
||||||
public CpTabComplete(CommandPanels pl) { this.plugin = pl; }
|
|
||||||
|
public CpTabComplete(CommandPanels pl) {
|
||||||
|
this.plugin = pl;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if(sender instanceof Player && args.length == 1){
|
if (sender instanceof Player && args.length >= 1)
|
||||||
Player p = ((Player) sender).getPlayer();
|
|
||||||
if (label.equalsIgnoreCase("cp") || label.equalsIgnoreCase("cpanel") || label.equalsIgnoreCase("commandpanel")) {
|
if (label.equalsIgnoreCase("cp") || label.equalsIgnoreCase("cpanel") || label.equalsIgnoreCase("commandpanel")) {
|
||||||
|
Player p = ((Player) sender).getPlayer();
|
||||||
|
if (args.length == 1) {
|
||||||
ArrayList<String> apanels = new ArrayList<String>(); //all panels
|
ArrayList<String> apanels = new ArrayList<String>(); //all panels
|
||||||
for (Panel panel : plugin.panelList) { //will loop through all the files in folder
|
for (Panel panel : plugin.panelList) { //will loop through all the files in folder
|
||||||
try {
|
try {
|
||||||
@ -43,6 +50,27 @@ public class CpTabComplete implements TabCompleter {
|
|||||||
}
|
}
|
||||||
return apanels;
|
return apanels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.length == 2 || args.length == 3) {
|
||||||
|
|
||||||
|
List<String> 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;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.completetabs;
|
|||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
@ -19,17 +20,23 @@ public class DataTabComplete implements TabCompleter {
|
|||||||
if(sender.hasPermission("commandpanel.data")) {
|
if(sender.hasPermission("commandpanel.data")) {
|
||||||
ArrayList<String> output = new ArrayList<>();
|
ArrayList<String> output = new ArrayList<>();
|
||||||
if(args.length == 1){
|
if(args.length == 1){
|
||||||
output.add("set");
|
String arg1 = args[0].toLowerCase();
|
||||||
output.add("add");
|
if ("set".startsWith(arg1))output.add("set");
|
||||||
output.add("get");
|
if ("add".startsWith(arg1))output.add("add");
|
||||||
output.add("remove");
|
if ("get".startsWith(arg1))output.add("get");
|
||||||
output.add("clear");
|
if ("remove".startsWith(arg1))output.add("remove");
|
||||||
|
if ("clear".startsWith(arg1))output.add("clear");
|
||||||
}else if(args.length == 2){
|
}else if(args.length == 2){
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
if ("all".startsWith(args[1].toLowerCase()) && !args[0].equalsIgnoreCase("get")) output.add("all");
|
||||||
if (!p.getName().startsWith(args[1])) {
|
|
||||||
continue;
|
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){
|
}else if(args.length == 3){
|
||||||
//the clear function is here as it is the only subcommand with 3 args
|
//the clear function is here as it is the only subcommand with 3 args
|
||||||
|
Loading…
Reference in New Issue
Block a user