forked from Upstream/CommandPanels
added some more tab completion stuff
This commit is contained in:
parent
69b650bc41
commit
840bd53d66
@ -1,5 +1,6 @@
|
|||||||
package me.rockyhawk.commandpanels;
|
package me.rockyhawk.commandpanels;
|
||||||
|
|
||||||
|
import com.bencodez.votingplugin.VotingPluginHooks;
|
||||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||||
import me.rockyhawk.commandpanels.api.CommandPanelsAPI;
|
import me.rockyhawk.commandpanels.api.CommandPanelsAPI;
|
||||||
import me.rockyhawk.commandpanels.api.Panel;
|
import me.rockyhawk.commandpanels.api.Panel;
|
||||||
@ -66,6 +67,7 @@ import java.util.*;
|
|||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
|
|
||||||
public class CommandPanels extends JavaPlugin{
|
public class CommandPanels extends JavaPlugin{
|
||||||
|
public VotingPluginHooks votingPlugin;
|
||||||
public YamlConfiguration config;
|
public YamlConfiguration config;
|
||||||
public Economy econ = null;
|
public Economy econ = null;
|
||||||
public boolean openWithItem = false; //this will be true if there is a panel with open-with-item
|
public boolean openWithItem = false; //this will be true if there is a panel with open-with-item
|
||||||
@ -213,7 +215,10 @@ public class CommandPanels extends JavaPlugin{
|
|||||||
if (!Bukkit.getVersion().contains("1.8")) {
|
if (!Bukkit.getVersion().contains("1.8")) {
|
||||||
this.getServer().getPluginManager().registerEvents(new SwapItemEvent(this), this);
|
this.getServer().getPluginManager().registerEvents(new SwapItemEvent(this), this);
|
||||||
}
|
}
|
||||||
|
//if VotingPlugin is enabled
|
||||||
|
if (getServer().getPluginManager().isPluginEnabled("VotingPlugin")) {
|
||||||
|
votingPlugin= VotingPluginHooks.getInstance();
|
||||||
|
}
|
||||||
//if plugin ChestSort is enabled
|
//if plugin ChestSort is enabled
|
||||||
if(getServer().getPluginManager().isPluginEnabled("ChestSort")){
|
if(getServer().getPluginManager().isPluginEnabled("ChestSort")){
|
||||||
this.getServer().getPluginManager().registerEvents(new UtilsChestSortEvent(this), this);
|
this.getServer().getPluginManager().registerEvents(new UtilsChestSortEvent(this), this);
|
||||||
|
@ -379,7 +379,7 @@ public class Placeholders {
|
|||||||
}
|
}
|
||||||
if (plugin.getServer().getPluginManager().isPluginEnabled("VotingPlugin")) {
|
if (plugin.getServer().getPluginManager().isPluginEnabled("VotingPlugin")) {
|
||||||
if(identifier.equals("votingplugin-points")) {
|
if(identifier.equals("votingplugin-points")) {
|
||||||
return String.valueOf(VotingPluginMain.plugin.getVotingPluginUserManager().getVotingPluginUser(p).getPoints());
|
return String.valueOf(plugin.votingPlugin.getUserManager().getVotingPluginUser(p).getPoints());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//end nodes with PlaceHolders
|
//end nodes with PlaceHolders
|
||||||
|
@ -26,28 +26,33 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
args = Arrays.copyOfRange(args, 1, args.length);
|
args = Arrays.copyOfRange(args, 1, args.length);
|
||||||
sendPlayerMessage = false;
|
sendPlayerMessage = false;
|
||||||
}
|
}
|
||||||
|
int count = 0;
|
||||||
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")) {
|
if (args[1].equalsIgnoreCase("all") || args[1].equalsIgnoreCase("online")) {
|
||||||
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
|
if (args[1].equalsIgnoreCase("online") && !player.isOnline()) continue;
|
||||||
plugin.panelData.clearData(plugin.panelData.getOffline(player.getName()));
|
plugin.panelData.clearData(plugin.panelData.getOffline(player.getName()));
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
} else
|
} 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
|
||||||
+ ChatColor.GREEN + "Cleared all data for "
|
+ ChatColor.GREEN + "Cleared all data for "
|
||||||
+ ChatColor.WHITE + args[1]));
|
+ ChatColor.WHITE + (count == 0 ? args[1] : count + "" + ChatColor.GREEN + " players")));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} 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")) {
|
if (args[1].equalsIgnoreCase("all") || args[1].equalsIgnoreCase("online")) {
|
||||||
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
|
if (args[1].equalsIgnoreCase("online") && !player.isOnline()) continue;
|
||||||
plugin.panelData.delUserData(plugin.panelData.getOffline(player.getName()), args[2]);
|
plugin.panelData.delUserData(plugin.panelData.getOffline(player.getName()), args[2]);
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
plugin.panelData.delUserData(plugin.panelData.getOffline(args[1]), args[2]);
|
plugin.panelData.delUserData(plugin.panelData.getOffline(args[1]), args[2]);
|
||||||
@ -56,7 +61,7 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
+ ChatColor.GREEN + "Removed "
|
+ ChatColor.GREEN + "Removed "
|
||||||
+ ChatColor.WHITE + args[2]
|
+ ChatColor.WHITE + args[2]
|
||||||
+ ChatColor.GREEN + " from "
|
+ ChatColor.GREEN + " from "
|
||||||
+ ChatColor.WHITE + args[1]));
|
+ ChatColor.WHITE + (count == 0 ? args[1] : count + "" + ChatColor.GREEN + " players")));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else if (args[0].equals("get")) {
|
} else if (args[0].equals("get")) {
|
||||||
@ -69,9 +74,11 @@ 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")) {
|
if (args[1].equalsIgnoreCase("all") || args[1].equalsIgnoreCase("online")) {
|
||||||
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
|
if (args[1].equalsIgnoreCase("online") && !player.isOnline()) continue;
|
||||||
plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2], args[3], true);
|
plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2], args[3], true);
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
} else {
|
} 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);
|
||||||
@ -81,13 +88,18 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
+ ChatColor.GREEN + "Set "
|
+ ChatColor.GREEN + "Set "
|
||||||
+ ChatColor.WHITE + args[2]
|
+ ChatColor.WHITE + args[2]
|
||||||
+ ChatColor.GREEN + " to "
|
+ ChatColor.GREEN + " to "
|
||||||
+ ChatColor.WHITE + args[3]));
|
+ ChatColor.WHITE + args[3]
|
||||||
|
+ ChatColor.GREEN + " for "
|
||||||
|
+ ChatColor.WHITE + (count == 0 ? args[1] : count + "" + ChatColor.GREEN + " players")));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//for add command
|
//for add command
|
||||||
if (args[1].equalsIgnoreCase("all")) {
|
if (args[1].equalsIgnoreCase("all") || args[1].equalsIgnoreCase("online")) {
|
||||||
|
|
||||||
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
|
if (args[1].equalsIgnoreCase("online") && !player.isOnline()) continue;
|
||||||
plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2], args[3], false);
|
plugin.panelData.setUserData(plugin.panelData.getOffline(player.getName()), args[2], args[3], false);
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
} else
|
} 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);
|
||||||
@ -97,7 +109,9 @@ public class Commandpanelsdata implements CommandExecutor {
|
|||||||
+ ChatColor.WHITE + args[2]
|
+ ChatColor.WHITE + args[2]
|
||||||
+ ChatColor.GREEN + " to "
|
+ ChatColor.GREEN + " to "
|
||||||
+ ChatColor.WHITE + args[3])
|
+ ChatColor.WHITE + args[3])
|
||||||
+ ChatColor.GREEN + " if it did not exist already");
|
+ ChatColor.GREEN + " for "
|
||||||
|
+ ChatColor.WHITE + (count == 0 ? args[1] : count + "" + ChatColor.GREEN + " players")
|
||||||
|
+ " if it did not exist already");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -8,8 +8,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
public class DataTabComplete implements TabCompleter {
|
public class DataTabComplete implements TabCompleter {
|
||||||
@ -19,6 +18,10 @@ public class DataTabComplete implements TabCompleter {
|
|||||||
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.hasPermission("commandpanel.data")) {
|
if(sender.hasPermission("commandpanel.data")) {
|
||||||
ArrayList<String> output = new ArrayList<>();
|
ArrayList<String> output = new ArrayList<>();
|
||||||
|
if (args.length>=1) {
|
||||||
|
if (args[0].equalsIgnoreCase("-s"))
|
||||||
|
args = Arrays.copyOfRange(args, 1, args.length);
|
||||||
|
}
|
||||||
if(args.length == 1){
|
if(args.length == 1){
|
||||||
String arg1 = args[0].toLowerCase();
|
String arg1 = args[0].toLowerCase();
|
||||||
if ("set".startsWith(arg1))output.add("set");
|
if ("set".startsWith(arg1))output.add("set");
|
||||||
@ -28,22 +31,37 @@ public class DataTabComplete implements TabCompleter {
|
|||||||
if ("clear".startsWith(arg1))output.add("clear");
|
if ("clear".startsWith(arg1))output.add("clear");
|
||||||
}else if(args.length == 2){
|
}else if(args.length == 2){
|
||||||
if ("all".startsWith(args[1].toLowerCase()) && !args[0].equalsIgnoreCase("get")) output.add("all");
|
if ("all".startsWith(args[1].toLowerCase()) && !args[0].equalsIgnoreCase("get")) output.add("all");
|
||||||
|
if ("online".startsWith(args[1].toLowerCase()) && !args[0].equalsIgnoreCase("get")) output.add("online");
|
||||||
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
String name = player.getName();
|
String name = player.getName();
|
||||||
// don't worry about it saying it may throw a NPE
|
// don't worry about it saying it may throw a NPE
|
||||||
if (name.toLowerCase().startsWith(args[1])) {
|
if (name.toLowerCase().startsWith(args[1].toLowerCase())) {
|
||||||
//this will narrow down the panels to what the user types
|
//this will narrow down the panels to what the user types
|
||||||
output.add(name);
|
output.add(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}else if(args.length == 3){
|
}else if(args.length == 3){
|
||||||
|
if (!args[0].equalsIgnoreCase("remove")) return new ArrayList<>();
|
||||||
//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
|
||||||
try {
|
try {
|
||||||
return new ArrayList<>(plugin.panelData.dataConfig.getConfigurationSection("playerData." + plugin.panelData.getOffline(args[1])).getKeys(false));
|
|
||||||
|
if (!args[1].equalsIgnoreCase("all") && !args[1].equalsIgnoreCase("online"))
|
||||||
|
return new ArrayList<>(plugin.panelData.dataConfig.getConfigurationSection("playerData." + plugin.panelData.getOffline(args[1])).getKeys(false));
|
||||||
|
|
||||||
|
else {
|
||||||
|
Set<String> set = new HashSet<>();
|
||||||
|
for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
|
||||||
|
if (!player.isOnline()&&args[1].equalsIgnoreCase("online")) continue;
|
||||||
|
set.addAll(plugin.panelData.dataConfig.getConfigurationSection("playerData." + plugin.panelData.getOffline(player.getName())).getKeys(false));
|
||||||
|
|
||||||
|
}
|
||||||
|
String[] finalArgs = args;
|
||||||
|
set.removeIf(s -> !s.toLowerCase().startsWith(finalArgs[2]));
|
||||||
|
return new ArrayList<>(set);
|
||||||
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return null;
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
|
Loading…
Reference in New Issue
Block a user