forked from Upstream/CommandPanels
Refresh/update command added. Used for refreshing a player open panel/s
This commit is contained in:
parent
acca60a4fa
commit
b512d94624
@ -18,6 +18,10 @@ commands:
|
||||
description: Change data values for players
|
||||
usage: /commandpaneldata
|
||||
aliases: [cpdata]
|
||||
commandpanelupdate:
|
||||
description: Refresh/update panel/s for player
|
||||
usage: /commandpanelupdate
|
||||
aliases: [ cpu, cpanelu ]
|
||||
commandpaneldebug:
|
||||
description: Enable and Disable debug mode globally
|
||||
usage: /commandpaneldebug
|
||||
@ -73,6 +77,8 @@ permissions:
|
||||
default: op
|
||||
commandpanel.data:
|
||||
default: op
|
||||
commandpanel.refresh:
|
||||
default: op
|
||||
commandpanel.edit:
|
||||
default: op
|
||||
commandpanel.list:
|
||||
|
@ -18,6 +18,7 @@ import me.rockyhawk.commandpanels.classresources.placeholders.Placeholders;
|
||||
import me.rockyhawk.commandpanels.commands.*;
|
||||
import me.rockyhawk.commandpanels.commandtags.CommandTags;
|
||||
import me.rockyhawk.commandpanels.completetabs.CpTabComplete;
|
||||
import me.rockyhawk.commandpanels.completetabs.UpdateTabComplete;
|
||||
import me.rockyhawk.commandpanels.customcommands.Commandpanelcustom;
|
||||
import me.rockyhawk.commandpanels.datamanager.DebugManager;
|
||||
import me.rockyhawk.commandpanels.datamanager.PanelDataLoader;
|
||||
@ -160,6 +161,9 @@ public class CommandPanels extends JavaPlugin{
|
||||
Objects.requireNonNull(this.getCommand("commandpaneldata")).setTabCompleter(new DataTabComplete(this));
|
||||
Objects.requireNonNull(this.getCommand("commandpaneldata")).setExecutor(new Commandpanelsdata(this));
|
||||
|
||||
Objects.requireNonNull(this.getCommand("commandpanelupdate")).setTabCompleter(new UpdateTabComplete(this));
|
||||
Objects.requireNonNull(this.getCommand("commandpanelupdate")).setExecutor(new Commandpanelsupdate(this));
|
||||
|
||||
Objects.requireNonNull(this.getCommand("commandpanelimport")).setExecutor(new CommandPanelImport(this));
|
||||
Objects.requireNonNull(this.getCommand("commandpanelimport")).setTabCompleter(new ImportTabComplete(this));
|
||||
Objects.requireNonNull(this.getCommand("commandpaneledit")).setExecutor(new CommandPanelsEditor(this));
|
||||
|
@ -0,0 +1,72 @@
|
||||
package me.rockyhawk.commandpanels.commands;
|
||||
|
||||
import me.rockyhawk.commandpanels.CommandPanels;
|
||||
import me.rockyhawk.commandpanels.openpanelsmanager.PanelOpenType;
|
||||
import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition;
|
||||
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.bukkit.event.EventHandler;
|
||||
|
||||
|
||||
public class Commandpanelsupdate implements CommandExecutor {
|
||||
CommandPanels plugin;
|
||||
public Commandpanelsupdate(CommandPanels pl) { this.plugin = pl; }
|
||||
|
||||
@EventHandler
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (label.equalsIgnoreCase("cpu") || label.equalsIgnoreCase("commandpanelupdate") || label.equalsIgnoreCase("cpanelu")) {
|
||||
if (sender.hasPermission("commandpanel.refresh")) {
|
||||
//command /cpu
|
||||
// /cpu <Playername> <Position/ALL>
|
||||
|
||||
String name;
|
||||
Player targetPlayer;
|
||||
try {
|
||||
name = args[0];
|
||||
targetPlayer = Bukkit.getPlayer(name);
|
||||
}catch (Exception e){
|
||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Player was not found."));
|
||||
return true;
|
||||
}
|
||||
assert targetPlayer != null;
|
||||
|
||||
PanelPosition pp;
|
||||
if(args[1].equalsIgnoreCase("all")){
|
||||
for(PanelPosition papo : PanelPosition.values()){
|
||||
if(plugin.openPanels.hasPanelOpen(name, papo)) {
|
||||
plugin.createGUI.openGui(plugin.openPanels.getOpenPanel(name, papo), targetPlayer, papo, PanelOpenType.Refresh, 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
pp = PanelPosition.valueOf(args[1]);
|
||||
}catch (Exception e){
|
||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Panel position not found."));
|
||||
return true;
|
||||
}
|
||||
|
||||
if(plugin.openPanels.hasPanelOpen(name, pp)) {
|
||||
plugin.createGUI.openGui(plugin.openPanels.getOpenPanel(name, pp), targetPlayer, pp, PanelOpenType.Refresh, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(plugin.inventorySaver.hasNormalInventory(targetPlayer)){
|
||||
plugin.hotbar.updateHotbarItems(targetPlayer);
|
||||
}
|
||||
|
||||
//Successfully refreshed panel for targetPlayer.getName()
|
||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.GREEN + "Successfully refreshed panel for " + targetPlayer.getName() + "."));
|
||||
}else{
|
||||
sender.sendMessage(plugin.tex.colour(plugin.tag + plugin.config.getString("config.format.perms")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(plugin.tex.colour(plugin.tag + ChatColor.RED + "Usage: /cpu <Playername> <Position/ALL>"));
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package me.rockyhawk.commandpanels.completetabs;
|
||||
|
||||
import me.rockyhawk.commandpanels.CommandPanels;
|
||||
import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
public class UpdateTabComplete implements TabCompleter {
|
||||
CommandPanels plugin;
|
||||
public UpdateTabComplete(CommandPanels pl) { this.plugin = pl; }
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if(sender.hasPermission("commandpanel.refresh")) {
|
||||
ArrayList<String> output = new ArrayList<>();
|
||||
if (args.length>=1 && args[0].equalsIgnoreCase("-s")) {
|
||||
|
||||
args = Arrays.copyOfRange(args, 1, args.length);
|
||||
}
|
||||
if(args.length == 1){
|
||||
for(Player player : Bukkit.getOnlinePlayers()){
|
||||
output.add(player.getName());
|
||||
}
|
||||
}else if(args.length == 2){
|
||||
output.add("ALL");
|
||||
for(PanelPosition pp : PanelPosition.values()){
|
||||
output.add(pp.toString());
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user