forked from Upstream/CommandPanels
v3.12.2 Fixes
This commit is contained in:
parent
b87a45130e
commit
21bb0913be
@ -1,18 +1,19 @@
|
|||||||
# |------------------------------------------------------------------------
|
# |------------------------------------------------------------------------
|
||||||
# | CommandPanels Config File
|
# | CommandPanels Config File
|
||||||
# | By RockyHawk v4.0
|
# | By RockyHawk v4.1
|
||||||
# | https://www.spigotmc.org/resources/command-panels-custom-guis.67788/
|
# | https://www.spigotmc.org/resources/command-panels-custom-guis.67788/
|
||||||
# |------------------------------------------------------------------------
|
# |------------------------------------------------------------------------
|
||||||
config:
|
config:
|
||||||
refresh-panels: true
|
refresh-panels: true
|
||||||
panel-blocks: true
|
panel-blocks: true
|
||||||
|
ingame-editor: true
|
||||||
|
hotbar-items: true
|
||||||
refresh-delay: 4
|
refresh-delay: 4
|
||||||
server-ping-timeout: 10
|
server-ping-timeout: 10
|
||||||
stop-sound: true
|
stop-sound: true
|
||||||
disabled-world-message: true
|
disabled-world-message: true
|
||||||
update-notifications: true
|
update-notifications: true
|
||||||
panel-snooper: false
|
panel-snooper: false
|
||||||
ingame-editor: true
|
|
||||||
input-cancel: cancel
|
input-cancel: cancel
|
||||||
input-cancelled: '&cCancelled!'
|
input-cancelled: '&cCancelled!'
|
||||||
input-message:
|
input-message:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# |------------------------------------------------------------------------
|
# |------------------------------------------------------------------------
|
||||||
panels:
|
panels:
|
||||||
example:
|
example:
|
||||||
perm: default
|
perm: admin
|
||||||
panelType: default
|
panelType: default
|
||||||
rows: 4
|
rows: 4
|
||||||
title: '&6[&bExample Panel&6]&f Welcome!'
|
title: '&6[&bExample Panel&6]&f Welcome!'
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
# |------------------------------------------------------------------------
|
# |------------------------------------------------------------------------
|
||||||
panels:
|
panels:
|
||||||
example:
|
example:
|
||||||
perm: default
|
perm: admin
|
||||||
|
panelType: default
|
||||||
rows: 4
|
rows: 4
|
||||||
title: '&6[&bExample Panel&6]&f Welcome!'
|
title: '&6[&bExample Panel&6]&f Welcome!'
|
||||||
command: example
|
command: example
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
version: 3.12.1
|
version: 3.12.2
|
||||||
main: me.rockyhawk.commandpanels.CommandPanels
|
main: me.rockyhawk.commandpanels.CommandPanels
|
||||||
name: CommandPanels
|
name: CommandPanels
|
||||||
author: RockyHawk
|
author: RockyHawk
|
||||||
|
@ -27,6 +27,9 @@ import me.rockyhawk.commandpanels.ioclasses.Sequence_1_14;
|
|||||||
|
|
||||||
import me.rockyhawk.commandpanels.legacy.LegacyVersion;
|
import me.rockyhawk.commandpanels.legacy.LegacyVersion;
|
||||||
import me.rockyhawk.commandpanels.legacy.PlayerHeads;
|
import me.rockyhawk.commandpanels.legacy.PlayerHeads;
|
||||||
|
import me.rockyhawk.commandpanels.openpanelsmanager.OpenGUI;
|
||||||
|
import me.rockyhawk.commandpanels.openpanelsmanager.OpenPanelsLoader;
|
||||||
|
import me.rockyhawk.commandpanels.openpanelsmanager.UtilsPanelsLoader;
|
||||||
import me.rockyhawk.commandpanels.openwithitem.SwapItemEvent;
|
import me.rockyhawk.commandpanels.openwithitem.SwapItemEvent;
|
||||||
import me.rockyhawk.commandpanels.openwithitem.UtilsOpenWithItem;
|
import me.rockyhawk.commandpanels.openwithitem.UtilsOpenWithItem;
|
||||||
import me.rockyhawk.commandpanels.panelblocks.BlocksTabComplete;
|
import me.rockyhawk.commandpanels.panelblocks.BlocksTabComplete;
|
||||||
@ -41,7 +44,6 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.*;
|
import org.bukkit.inventory.meta.*;
|
||||||
@ -56,7 +58,6 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
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
|
||||||
|
|
||||||
public List<Player> generateMode = new ArrayList<>(); //players that are currently in generate mode
|
public List<Player> generateMode = new ArrayList<>(); //players that are currently in generate mode
|
||||||
public List<String> panelRunning = new ArrayList<>();
|
|
||||||
public List<String[]> userInputStrings = new ArrayList<>();
|
public List<String[]> userInputStrings = new ArrayList<>();
|
||||||
public List<String[]> editorInputStrings = new ArrayList<>();
|
public List<String[]> editorInputStrings = new ArrayList<>();
|
||||||
public List<String> panelFiles = new ArrayList<>(); //names of all the files in the panels folder including extension
|
public List<String> panelFiles = new ArrayList<>(); //names of all the files in the panels folder including extension
|
||||||
@ -71,6 +72,8 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
public Updater updater = new Updater(this);
|
public Updater updater = new Updater(this);
|
||||||
public PlayerHeads getHeads = new PlayerHeads(this);
|
public PlayerHeads getHeads = new PlayerHeads(this);
|
||||||
public LegacyVersion legacy = new LegacyVersion(this);
|
public LegacyVersion legacy = new LegacyVersion(this);
|
||||||
|
public OpenPanelsLoader openPanels = new OpenPanelsLoader(this);
|
||||||
|
public OpenGUI createGUI = new OpenGUI(this);
|
||||||
|
|
||||||
public File panelsf;
|
public File panelsf;
|
||||||
public YamlConfiguration blockConfig; //where panel block locations are stored
|
public YamlConfiguration blockConfig; //where panel block locations are stored
|
||||||
@ -81,38 +84,9 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
this.config = YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "config.yml"));
|
|
||||||
Bukkit.getLogger().info("[CommandPanels] RockyHawk's CommandPanels v" + this.getDescription().getVersion() + " Plugin Loading...");
|
Bukkit.getLogger().info("[CommandPanels] RockyHawk's CommandPanels v" + this.getDescription().getVersion() + " Plugin Loading...");
|
||||||
this.setupEconomy();
|
|
||||||
this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
|
||||||
new Metrics(this);
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanel")).setExecutor(new Commandpanel(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanel")).setTabCompleter(new CpTabComplete(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelblock")).setTabCompleter(new BlocksTabComplete(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelgenerate")).setTabCompleter(new TabCompleteGenerate(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpaneledit")).setTabCompleter(new CpTabCompleteIngame(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelgenerate")).setExecutor(new Commandpanelsgenerate(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelreload")).setExecutor(new Commandpanelsreload(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpaneldebug")).setExecutor(new Commandpanelsdebug(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelclose")).setExecutor(new Commandpanelclose(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelversion")).setExecutor(new Commandpanelversion(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpaneladdons")).setExecutor(new Commandpanelresources(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanellist")).setExecutor(new Commandpanelslist(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpaneledit")).setExecutor(new CpIngameEditCommand(this));
|
|
||||||
Objects.requireNonNull(this.getCommand("commandpanelblock")).setExecutor(new Commandpanelblocks(this));
|
|
||||||
this.getServer().getPluginManager().registerEvents(new Utils(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new UtilsOpenWithItem(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new EditorUtils(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new GenUtils(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new Commandpanelcustom(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new CommandpanelUserInput(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new EditorUserInput(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new Commandpanelrefresher(this), this);
|
|
||||||
this.getServer().getPluginManager().registerEvents(new PanelBlockOnClick(this), this);
|
|
||||||
if (!Bukkit.getVersion().contains("1.8")) {
|
|
||||||
this.getServer().getPluginManager().registerEvents(new SwapItemEvent(this), this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
this.config = YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "config.yml"));
|
||||||
//save the config.yml file
|
//save the config.yml file
|
||||||
File configFile = new File(this.getDataFolder() + File.separator + "config.yml");
|
File configFile = new File(this.getDataFolder() + File.separator + "config.yml");
|
||||||
if (!configFile.exists()) {
|
if (!configFile.exists()) {
|
||||||
@ -136,6 +110,56 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//setup class files
|
||||||
|
this.setupEconomy();
|
||||||
|
this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
||||||
|
new Metrics(this);
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanel")).setExecutor(new Commandpanel(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanel")).setTabCompleter(new CpTabComplete(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelgenerate")).setTabCompleter(new TabCompleteGenerate(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelgenerate")).setExecutor(new Commandpanelsgenerate(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelreload")).setExecutor(new Commandpanelsreload(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpaneldebug")).setExecutor(new Commandpanelsdebug(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelclose")).setExecutor(new Commandpanelclose(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelversion")).setExecutor(new Commandpanelversion(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpaneladdons")).setExecutor(new Commandpanelresources(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanellist")).setExecutor(new Commandpanelslist(this));
|
||||||
|
this.getServer().getPluginManager().registerEvents(new Utils(this), this);
|
||||||
|
this.getServer().getPluginManager().registerEvents(new UtilsPanelsLoader(this), this);
|
||||||
|
this.getServer().getPluginManager().registerEvents(new GenUtils(this), this);
|
||||||
|
this.getServer().getPluginManager().registerEvents(new Commandpanelcustom(this), this);
|
||||||
|
this.getServer().getPluginManager().registerEvents(new CommandpanelUserInput(this), this);
|
||||||
|
|
||||||
|
//if refresh-panels set to false, don't load this
|
||||||
|
if(Objects.requireNonNull(config.getString("config.refresh-panels")).equalsIgnoreCase("true")){
|
||||||
|
this.getServer().getPluginManager().registerEvents(new Commandpanelrefresher(this), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
//if hotbar-items set to false, don't load this
|
||||||
|
if(Objects.requireNonNull(config.getString("config.hotbar-items")).equalsIgnoreCase("true")){
|
||||||
|
this.getServer().getPluginManager().registerEvents(new UtilsOpenWithItem(this), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
//if ingame-editor set to false, don't load this
|
||||||
|
if(Objects.requireNonNull(config.getString("config.ingame-editor")).equalsIgnoreCase("true")){
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpaneledit")).setTabCompleter(new CpTabCompleteIngame(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpaneledit")).setExecutor(new CpIngameEditCommand(this));
|
||||||
|
this.getServer().getPluginManager().registerEvents(new EditorUtils(this), this);
|
||||||
|
this.getServer().getPluginManager().registerEvents(new EditorUserInput(this), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
//if panel-blocks set to false, don't load this
|
||||||
|
if(Objects.requireNonNull(config.getString("config.panel-blocks")).equalsIgnoreCase("true")){
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelblock")).setExecutor(new Commandpanelblocks(this));
|
||||||
|
Objects.requireNonNull(this.getCommand("commandpanelblock")).setTabCompleter(new BlocksTabComplete(this));
|
||||||
|
this.getServer().getPluginManager().registerEvents(new PanelBlockOnClick(this), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
//if 1.8 don't use this
|
||||||
|
if (!Bukkit.getVersion().contains("1.8")) {
|
||||||
|
this.getServer().getPluginManager().registerEvents(new SwapItemEvent(this), this);
|
||||||
|
}
|
||||||
|
|
||||||
//save the example.yml file
|
//save the example.yml file
|
||||||
if (!this.panelsf.exists() || Objects.requireNonNull(this.panelsf.list()).length == 0) {
|
if (!this.panelsf.exists() || Objects.requireNonNull(this.panelsf.list()).length == 0) {
|
||||||
try {
|
try {
|
||||||
@ -165,131 +189,6 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
Bukkit.getLogger().info("RockyHawk's CommandPanels Plugin Disabled, aww man.");
|
Bukkit.getLogger().info("RockyHawk's CommandPanels Plugin Disabled, aww man.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Inventory openGui(String panels, Player p, YamlConfiguration pconfig, int onOpen, int animateValue) {
|
|
||||||
String tag = this.config.getString("config.format.tag") + " ";
|
|
||||||
if (Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) < 7 && Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) > 0) {
|
|
||||||
Inventory i;
|
|
||||||
if (onOpen != 3) {
|
|
||||||
//use the regular inventory
|
|
||||||
i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, papi(p, Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))));
|
|
||||||
} else {
|
|
||||||
//this means it is the Editor window
|
|
||||||
i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, "Editing Panel: " + panels);
|
|
||||||
}
|
|
||||||
String item = "";
|
|
||||||
|
|
||||||
String key;
|
|
||||||
for (Iterator var6 = Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item")).getKeys(false).iterator(); var6.hasNext(); item = item + key + " ") {
|
|
||||||
key = (String) var6.next();
|
|
||||||
}
|
|
||||||
|
|
||||||
item = item.trim();
|
|
||||||
int c;
|
|
||||||
for (c = 0; item.split("\\s").length - 1 >= c; ++c) {
|
|
||||||
if(item.equals("")){
|
|
||||||
//skip putting any items in the inventory if it is empty
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
String section = "";
|
|
||||||
//onOpen needs to not be 3 so the editor won't include hasperm and hasvalue, etc items
|
|
||||||
if (onOpen != 3) {
|
|
||||||
section = itemCreate.hasSection(pconfig.getConfigurationSection("panels." + panels + ".item." + Integer.parseInt(item.split("\\s")[c])), p);
|
|
||||||
//This section is for animations below here: VISUAL ONLY
|
|
||||||
|
|
||||||
//check for if there is animations inside the items section
|
|
||||||
if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + section + ".animate" + animateValue)) {
|
|
||||||
//check for if it contains the animate that has the animvatevalue
|
|
||||||
if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + section + ".animate" + animateValue)) {
|
|
||||||
section = section + ".animate" + animateValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ItemStack s = itemCreate.makeItemFromConfig(Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item." + item.split("\\s")[c] + section)), p, onOpen != 3, onOpen != 3);
|
|
||||||
try {
|
|
||||||
i.setItem(Integer.parseInt(item.split("\\s")[c]), s);
|
|
||||||
} catch (ArrayIndexOutOfBoundsException var24) {
|
|
||||||
debug(var24);
|
|
||||||
if (debug) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " item: One of the items does not fit in the Panel!"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (pconfig.contains("panels." + panels + ".empty") && !Objects.equals(pconfig.getString("panels." + panels + ".empty"), "AIR")) {
|
|
||||||
for (c = 0; Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9 - 1 >= c; ++c) {
|
|
||||||
boolean found = false;
|
|
||||||
if(!item.equals("")) {
|
|
||||||
for (int f = 0; item.split("\\s").length - 1 >= f; ++f) {
|
|
||||||
if (Integer.parseInt(item.split("\\s")[f]) == c) {
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!found) {
|
|
||||||
ItemStack empty;
|
|
||||||
try {
|
|
||||||
short id = 0;
|
|
||||||
if(pconfig.contains("panels." + panels + ".emptyID")){
|
|
||||||
id = Short.parseShort(pconfig.getString("panels." + panels + ".emptyID"));
|
|
||||||
}
|
|
||||||
empty = new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(pconfig.getString("panels." + panels + ".empty")).toUpperCase())), 1,id);
|
|
||||||
if (empty.getType() == Material.AIR) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
} catch (IllegalArgumentException | NullPointerException var26) {
|
|
||||||
debug(var26);
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " empty: " + pconfig.getString("panels." + panels + ".empty")));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemMeta renamedMeta = empty.getItemMeta();
|
|
||||||
assert renamedMeta != null;
|
|
||||||
renamedMeta.setDisplayName(" ");
|
|
||||||
empty.setItemMeta(renamedMeta);
|
|
||||||
if (onOpen != 3) {
|
|
||||||
//only place empty items if not editing
|
|
||||||
i.setItem(c, empty);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Chest")) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot be named Chest"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Editing Panel:")) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Editing Panel:"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Panel Settings:")) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Panel Settings:"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Item Settings:")) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Item Settings:"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Command Panels Editor")) {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot be named Command Panels Editor"));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (onOpen == 1 || onOpen == 3) {
|
|
||||||
//onOpen 1 is default and 3 is for the editor
|
|
||||||
p.openInventory(i);
|
|
||||||
} else if (onOpen == 0) {
|
|
||||||
//onOpen 0 will just refresh the panel
|
|
||||||
legacy.setStorageContents(p,legacy.getStorageContents(i));
|
|
||||||
} else if (onOpen == 2) {
|
|
||||||
//will return the inventory, not opening it at all
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
return i;
|
|
||||||
} else {
|
|
||||||
p.sendMessage(papi(tag + this.config.getString("config.format.error") + " rows: " + pconfig.getString("panels." + panels + ".rows")));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(ItemStack renamed, String customName, List<String> lore, Player p, Boolean usePlaceholders, Boolean useColours) {
|
public void setName(ItemStack renamed, String customName, List<String> lore, Player p, Boolean usePlaceholders, Boolean useColours) {
|
||||||
try {
|
try {
|
||||||
ItemMeta renamedMeta = renamed.getItemMeta();
|
ItemMeta renamedMeta = renamed.getItemMeta();
|
||||||
@ -512,6 +411,30 @@ public class CommandPanels extends JavaPlugin {
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//check for duplicate panel names
|
||||||
|
public boolean checkDuplicatePanel(CommandSender sender){
|
||||||
|
ArrayList<String> apanels = new ArrayList<>();
|
||||||
|
for(String[] panelName : panelNames){
|
||||||
|
apanels.add(panelName[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//names is a list of the titles for the Panels
|
||||||
|
Set<String> oset = new HashSet<String>(apanels);
|
||||||
|
if (oset.size() < apanels.size()) {
|
||||||
|
//there are duplicate panel names
|
||||||
|
ArrayList<String> opanelsTemp = new ArrayList<String>();
|
||||||
|
for(String tempName : apanels){
|
||||||
|
if(opanelsTemp.contains(tempName)){
|
||||||
|
sender.sendMessage("[CommandPanels]" + ChatColor.RED + " Error duplicate panel name: " + tempName);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
opanelsTemp.add(tempName);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//look through all files in all folders
|
//look through all files in all folders
|
||||||
public void fileNamesFromDirectory(File directory) {
|
public void fileNamesFromDirectory(File directory) {
|
||||||
for (String fileName : Objects.requireNonNull(directory.list())) {
|
for (String fileName : Objects.requireNonNull(directory.list())) {
|
||||||
|
@ -22,66 +22,19 @@ public class Utils implements Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPanelClick(InventoryClickEvent e) {
|
public void onPanelClick(InventoryClickEvent e) {
|
||||||
//when clicked on a panel
|
//when clicked on a panel
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
|
||||||
Player p = (Player)e.getWhoClicked();
|
Player p = (Player)e.getWhoClicked();
|
||||||
ItemStack clicked = e.getCurrentItem();
|
ItemStack clicked = e.getCurrentItem();
|
||||||
try {
|
if(!plugin.openPanels.hasPanelOpen(p.getName())){
|
||||||
if(e.getView().getType() != InventoryType.CHEST){
|
|
||||||
//if it isn't a chest interface
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(ChatColor.stripColor(e.getView().getTitle()).equals("Chest") || ChatColor.stripColor(e.getView().getTitle()).equals("Large Chest") || ChatColor.stripColor(e.getView().getTitle()).equals("Trapped Chest")){
|
|
||||||
//if the inventory is just a chest that has no panel
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (plugin.panelFiles == null) {
|
|
||||||
//if no panels are present
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(clicked == null){
|
|
||||||
//if itemstack is null
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}catch(Exception b){
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
YamlConfiguration cf = null; //this is the file to use for any panel.* requests
|
ConfigurationSection cf = plugin.openPanels.getOpenPanel(p.getName()); //this is the panel cf section
|
||||||
String panel = null;
|
|
||||||
boolean foundPanel = false;
|
if(e.getSlotType().equals(InventoryType.SlotType.CONTAINER) && e.getRawSlot() <= Integer.parseInt(Objects.requireNonNull(cf.getString("rows")))*9-1){
|
||||||
for (String filename : plugin.panelFiles) { //will loop through all the files in folder
|
|
||||||
String key;
|
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + filename));
|
|
||||||
if (!plugin.checkPanels(temp)) {
|
|
||||||
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": Syntax error Found or Missing certain element!"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) {
|
|
||||||
key = s;
|
|
||||||
if (plugin.papi(Objects.requireNonNull(temp.getString("panels." + key + ".title"))).equals(e.getView().getTitle())) {
|
|
||||||
panel = key;
|
|
||||||
cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + filename));
|
|
||||||
foundPanel = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (foundPanel) {
|
|
||||||
//this is to avoid the plugin to continue looking when it was already found
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(panel == null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(cf.getString("panels." + panel + ".title")))).equals("Command Panels Editor")){
|
|
||||||
//cancel if it is the editor (this should never happen unless the user made a panel called Command Panels Editor for some reason)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(e.getSlotType().equals(InventoryType.SlotType.CONTAINER) && e.getRawSlot() <= Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panel + ".rows")))*9-1){
|
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
p.updateInventory();
|
p.updateInventory();
|
||||||
//this loops through all the items in the panel
|
//this loops through all the items in the panel
|
||||||
boolean foundSlot = false;
|
boolean foundSlot = false;
|
||||||
for(String slot : Objects.requireNonNull(cf.getConfigurationSection("panels." + panel + ".item")).getKeys(false)){
|
for(String slot : Objects.requireNonNull(cf.getConfigurationSection("item")).getKeys(false)){
|
||||||
if(slot.equals(Integer.toString(e.getSlot()))){
|
if(slot.equals(Integer.toString(e.getSlot()))){
|
||||||
foundSlot = true;
|
foundSlot = true;
|
||||||
}
|
}
|
||||||
@ -90,7 +43,7 @@ public class Utils implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//loop through possible hasvalue/hasperm 1,2,3,etc
|
//loop through possible hasvalue/hasperm 1,2,3,etc
|
||||||
String section = plugin.itemCreate.hasSection(cf.getConfigurationSection("panels." + panel + ".item." + e.getSlot()), p);
|
String section = plugin.itemCreate.hasSection(cf.getConfigurationSection("item." + e.getSlot()), p);
|
||||||
//this will remove any pending user inputs, if there is already something there from a previous item
|
//this will remove any pending user inputs, if there is already something there from a previous item
|
||||||
for(int o = 0; plugin.userInputStrings.size() > o; o++){
|
for(int o = 0; plugin.userInputStrings.size() > o; o++){
|
||||||
if(plugin.userInputStrings.get(o)[0].equals(p.getName())){
|
if(plugin.userInputStrings.get(o)[0].equals(p.getName())){
|
||||||
@ -98,9 +51,9 @@ public class Utils implements Listener {
|
|||||||
o=o-1;
|
o=o-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
redirectPanel(p,cf,panel,section,e.getSlot());
|
redirectPanel(p,cf,section,e.getSlot());
|
||||||
if(cf.contains("panels." + panel + ".item." + e.getSlot() + section + ".commands")) {
|
if(cf.contains("item." + e.getSlot() + section + ".commands")) {
|
||||||
List<String> commands = cf.getStringList("panels." + panel + ".item." + e.getSlot() + section + ".commands");
|
List<String> commands = cf.getStringList("item." + e.getSlot() + section + ".commands");
|
||||||
if (commands.size() != 0) {
|
if (commands.size() != 0) {
|
||||||
//this will replace a sequence tag command with the commands from the sequence
|
//this will replace a sequence tag command with the commands from the sequence
|
||||||
List<String> commandsAfterSequence = commands;
|
List<String> commandsAfterSequence = commands;
|
||||||
@ -183,16 +136,16 @@ public class Utils implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void redirectPanel(Player p, YamlConfiguration cf, String panel, String section, int slot){
|
public void redirectPanel(Player p, ConfigurationSection cf, String section, int slot){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
if(!cf.contains("panels." + panel + ".item." + slot + section + ".redirect") || !cf.contains("panels." + panel + ".item." + slot + section + ".redirect.panel")) {
|
if(!cf.contains("item." + slot + section + ".redirect") || !cf.contains("item." + slot + section + ".redirect.panel")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String panelName = cf.getString("panels." + panel + ".item." + slot + section + ".redirect.panel");
|
String panelName = cf.getString("item." + slot + section + ".redirect.panel");
|
||||||
YamlConfiguration panelConfig = null;
|
ConfigurationSection panelConfig = null;
|
||||||
for(String[] tempName : plugin.panelNames){
|
for(String[] tempName : plugin.panelNames){
|
||||||
if(tempName[0].equals(panelName)){
|
if(tempName[0].equals(panelName)){
|
||||||
panelConfig = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(tempName[1]))));
|
panelConfig = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(tempName[1])))).getConfigurationSection("panels." + panelName);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -200,26 +153,15 @@ public class Utils implements Listener {
|
|||||||
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean forced = false;
|
if(cf.contains("item." + slot + section + ".redirect.replacements")){
|
||||||
if(cf.contains("panels." + panel + ".item." + slot + section + ".redirect.force")){
|
|
||||||
//this will force the panel open without consideration of permissions, world, etc
|
|
||||||
if(cf.getBoolean("panels." + panel + ".item." + slot + section + ".redirect.force")){
|
|
||||||
forced = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(cf.contains("panels." + panel + ".item." + slot + section + ".redirect.replacements")){
|
|
||||||
if(!panelConfig.getString("panels." + panelName + ".panelType").equalsIgnoreCase("temporary") && plugin.config.getBoolean("config.refresh-panels")){
|
if(!panelConfig.getString("panels." + panelName + ".panelType").equalsIgnoreCase("temporary") && plugin.config.getBoolean("config.refresh-panels")){
|
||||||
p.sendMessage(plugin.papi(tag + ChatColor.RED + panelName + " panel type needs to be temporary to replace elements."));
|
p.sendMessage(plugin.papi(tag + ChatColor.RED + panelName + " panel type needs to be temporary to replace elements."));
|
||||||
}
|
}
|
||||||
for(String sectionName : cf.getConfigurationSection("panels." + panel + ".item." + slot + section + ".redirect.replacements").getKeys(false)){
|
for(String sectionName : cf.getConfigurationSection("item." + slot + section + ".redirect.replacements").getKeys(false)){
|
||||||
ConfigurationSection temp = cf.getConfigurationSection("panels." + panel + ".item." + slot + section + ".redirect.replacements." + sectionName);
|
ConfigurationSection temp = cf.getConfigurationSection("item." + slot + section + ".redirect.replacements." + sectionName);
|
||||||
panelConfig.set("panels." + panelName + ".item." + sectionName, temp);
|
panelConfig.set("panels." + panelName + ".item." + sectionName, temp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(forced){
|
plugin.openVoids.openCommandPanel(p, p, panelName, panelConfig, false);
|
||||||
plugin.openGui(panelName, p, panelConfig, 1, 0);
|
|
||||||
}else{
|
|
||||||
plugin.openVoids.openCommandPanel(p, p, panelName, panelConfig, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import com.google.common.io.ByteStreams;
|
|||||||
import me.realized.tokenmanager.api.TokenManager;
|
import me.realized.tokenmanager.api.TokenManager;
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -38,8 +39,8 @@ public class CommandTags {
|
|||||||
String panelName = command.split("\\s")[1];
|
String panelName = command.split("\\s")[1];
|
||||||
for(String[] tempName : plugin.panelNames){
|
for(String[] tempName : plugin.panelNames){
|
||||||
if(tempName[0].equals(panelName)){
|
if(tempName[0].equals(panelName)){
|
||||||
YamlConfiguration panelConfig = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(tempName[1]))));
|
ConfigurationSection panelConfig = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(tempName[1])))).getConfigurationSection("panels." + panelName);
|
||||||
plugin.openGui(panelName, p, panelConfig, 1, 0);
|
plugin.openVoids.openCommandPanel(p,p,panelName,panelConfig,false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import me.rockyhawk.commandpanels.CommandPanels;
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@ -18,14 +18,14 @@ public class ExecuteOpenVoids {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//this is the main method to open a panel
|
//this is the main method to open a panel
|
||||||
public void openCommandPanel(CommandSender sender, Player p, String panels, YamlConfiguration cf, boolean sendOpenedMessage){
|
public void openCommandPanel(CommandSender sender, Player p, String panelName, ConfigurationSection cf, boolean sendOpenedMessage){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
if (sender.hasPermission("commandpanel.panel." + cf.getString("panels." + panels + ".perm"))) {
|
if (sender.hasPermission("commandpanel.panel." + cf.getString("perm"))) {
|
||||||
//if the sender has OTHER perms, or if sendOpenedMessage is false, implying it is not for another person
|
//if the sender has OTHER perms, or if sendOpenedMessage is false, implying it is not for another person
|
||||||
if(sender.hasPermission("commandpanel.other") || !sendOpenedMessage) {
|
if(sender.hasPermission("commandpanel.other") || !sendOpenedMessage) {
|
||||||
try {
|
try {
|
||||||
if (cf.contains("panels." + panels + ".disabled-worlds")) {
|
if (cf.contains("disabled-worlds")) {
|
||||||
List<String> disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds");
|
List<String> disabledWorlds = cf.getStringList("disabled-worlds");
|
||||||
if (disabledWorlds.contains(p.getWorld().getName())) {
|
if (disabledWorlds.contains(p.getWorld().getName())) {
|
||||||
//panel cannot be used in the players world!
|
//panel cannot be used in the players world!
|
||||||
if (Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) {
|
if (Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) {
|
||||||
@ -39,21 +39,23 @@ public class ExecuteOpenVoids {
|
|||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.notitem")));
|
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.notitem")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//close the inventory after the checks for permissions and worlds, so other panels can load
|
||||||
|
p.closeInventory();
|
||||||
try {
|
try {
|
||||||
if (cf.contains("panels." + panels + ".sound-on-open")) {
|
if (cf.contains("sound-on-open")) {
|
||||||
//play sound when panel is opened
|
//play sound when panel is opened
|
||||||
if(!Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).equalsIgnoreCase("off")) {
|
if(!Objects.requireNonNull(cf.getString("sound-on-open")).equalsIgnoreCase("off")) {
|
||||||
try {
|
try {
|
||||||
p.playSound(p.getLocation(), Sound.valueOf(Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).toUpperCase()), 1F, 1F);
|
p.playSound(p.getLocation(), Sound.valueOf(Objects.requireNonNull(cf.getString("sound-on-open")).toUpperCase()), 1F, 1F);
|
||||||
} catch (Exception s) {
|
} catch (Exception s) {
|
||||||
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " " + "sound-on-open: " + cf.getString("panels." + panels + ".sound-on-open")));
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " " + "sound-on-open: " + cf.getString("sound-on-open")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cf.contains("panels." + panels + ".commands-on-open")) {
|
if (cf.contains("commands-on-open")) {
|
||||||
//execute commands on panel open
|
//execute commands on panel open
|
||||||
try {
|
try {
|
||||||
List<String> commands = cf.getStringList("panels." + panels + ".commands-on-open");
|
List<String> commands = cf.getStringList("commands-on-open");
|
||||||
for (int i = 0; commands.size() - 1 >= i; i++) {
|
for (int i = 0; commands.size() - 1 >= i; i++) {
|
||||||
int val = plugin.commandTags.commandPayWall(p,commands.get(i));
|
int val = plugin.commandTags.commandPayWall(p,commands.get(i));
|
||||||
if(val == 0){
|
if(val == 0){
|
||||||
@ -64,10 +66,11 @@ public class ExecuteOpenVoids {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(Exception s){
|
}catch(Exception s){
|
||||||
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " " + "commands-on-open: " + cf.getString("panels." + panels + ".commands-on-open")));
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " " + "commands-on-open: " + cf.getString("commands-on-open")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
plugin.openGui(panels, p, cf,1,0);
|
plugin.openPanels.openPanelForLoader(p.getName(), panelName, cf);
|
||||||
|
plugin.createGUI.openGui(panelName, p, cf,1,0);
|
||||||
if(sendOpenedMessage) {
|
if(sendOpenedMessage) {
|
||||||
sender.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Panel Opened for " + p.getDisplayName()));
|
sender.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Panel Opened for " + p.getDisplayName()));
|
||||||
}
|
}
|
||||||
@ -84,12 +87,12 @@ public class ExecuteOpenVoids {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//this will give a hotbar item to a player
|
//this will give a hotbar item to a player
|
||||||
public void giveHotbarItem(CommandSender sender, Player p, String panels, YamlConfiguration cf, boolean sendGiveMessage){
|
public void giveHotbarItem(CommandSender sender, Player p, ConfigurationSection cf, boolean sendGiveMessage){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
if (sender.hasPermission("commandpanel.item." + cf.getString("panels." + panels + ".perm")) && cf.contains("panels." + panels + ".open-with-item")) {
|
if (sender.hasPermission("commandpanel.item." + cf.getString("perm")) && cf.contains("open-with-item")) {
|
||||||
try {
|
try {
|
||||||
if (cf.contains("panels." + panels + ".disabled-worlds")) {
|
if (cf.contains("disabled-worlds")) {
|
||||||
List<String> disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds");
|
List<String> disabledWorlds = cf.getStringList("disabled-worlds");
|
||||||
if (disabledWorlds.contains(p.getWorld().getName())) {
|
if (disabledWorlds.contains(p.getWorld().getName())) {
|
||||||
//panel cannot be used in the players world!
|
//panel cannot be used in the players world!
|
||||||
if (Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) {
|
if (Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) {
|
||||||
@ -105,17 +108,17 @@ public class ExecuteOpenVoids {
|
|||||||
}
|
}
|
||||||
ItemStack s;
|
ItemStack s;
|
||||||
try {
|
try {
|
||||||
s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(cf.getConfigurationSection("panels." + panels + ".open-with-item")), p, false, true);
|
s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(cf.getConfigurationSection("open-with-item")), p, false, true);
|
||||||
}catch(Exception n){
|
}catch(Exception n){
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " open-with-item: material"));
|
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " open-with-item: material"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
plugin.setName(s, cf.getString("panels." + panels + ".open-with-item.name"), cf.getStringList("panels." + panels + ".open-with-item.lore"),p,false, true);
|
plugin.setName(s, cf.getString("open-with-item.name"), cf.getStringList("open-with-item.lore"),p,false, true);
|
||||||
//if the sender has OTHER perms, or if sendGiveMessage is false, implying it is not for another person
|
//if the sender has OTHER perms, or if sendGiveMessage is false, implying it is not for another person
|
||||||
if(sender.hasPermission("commandpanel.other") || !sendGiveMessage) {
|
if(sender.hasPermission("commandpanel.other") || !sendGiveMessage) {
|
||||||
try {
|
try {
|
||||||
if(cf.contains("panels." + panels + ".open-with-item.stationary")) {
|
if(cf.contains("open-with-item.stationary")) {
|
||||||
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.stationary"))), s);
|
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("open-with-item.stationary"))), s);
|
||||||
}else{
|
}else{
|
||||||
p.getInventory().addItem(s);
|
p.getInventory().addItem(s);
|
||||||
}
|
}
|
||||||
@ -130,7 +133,7 @@ public class ExecuteOpenVoids {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!cf.contains("panels." + panels + ".open-with-item")) {
|
if (!cf.contains("open-with-item")) {
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.noitem")));
|
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.noitem")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -428,15 +428,17 @@ public class ItemCreation {
|
|||||||
file.set("panels." + panelName + ".item." + i + ".material", cont.getType().toString());
|
file.set("panels." + panelName + ".item." + i + ".material", cont.getType().toString());
|
||||||
}
|
}
|
||||||
if(plugin.getHeads.ifSkullOrHead(cont.getType().toString())){
|
if(plugin.getHeads.ifSkullOrHead(cont.getType().toString())){
|
||||||
SkullMeta meta = (SkullMeta) cont.getItemMeta();
|
if(!Objects.requireNonNull(file.getString("panels." + panelName + ".item." + i + ".material")).contains("%") && !Objects.requireNonNull(file.getString("panels." + panelName + ".item." + i + ".material")).contains("=")) {
|
||||||
//disable for legacy as is broken
|
SkullMeta meta = (SkullMeta) cont.getItemMeta();
|
||||||
if(!plugin.legacy.isLegacy()) {
|
//disable for legacy as is broken
|
||||||
if (plugin.customHeads.getHeadBase64(cont) != null) {
|
if (!plugin.legacy.isLegacy()) {
|
||||||
//inject base64 here
|
if (plugin.customHeads.getHeadBase64(cont) != null) {
|
||||||
file.set("panels." + panelName + ".item." + i + ".material", "cps= " + plugin.customHeads.getHeadBase64(cont));
|
//inject base64 here
|
||||||
} else if (meta.hasOwner()) {
|
file.set("panels." + panelName + ".item." + i + ".material", "cps= " + plugin.customHeads.getHeadBase64(cont));
|
||||||
//check for skull owner
|
} else if (meta.hasOwner()) {
|
||||||
file.set("panels." + panelName + ".item." + i + ".material", "cps= " + meta.getOwner());
|
//check for skull owner
|
||||||
|
file.set("panels." + panelName + ".item." + i + ".material", "cps= " + meta.getOwner());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ public class OpenEditorGuis {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void openPanelSettings(Player p, String panelName, YamlConfiguration cf) {
|
public void openPanelSettings(Player p, String panelName, ConfigurationSection cf) {
|
||||||
Inventory i = Bukkit.createInventory(null, 45, ChatColor.stripColor("Panel Settings: " + panelName));
|
Inventory i = Bukkit.createInventory(null, 45, ChatColor.stripColor("Panel Settings: " + panelName));
|
||||||
List<String> lore = new ArrayList();
|
List<String> lore = new ArrayList();
|
||||||
ItemStack temp;
|
ItemStack temp;
|
||||||
@ -126,9 +126,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.IRON_INGOT, 1);
|
temp = new ItemStack(Material.IRON_INGOT, 1);
|
||||||
lore.add(ChatColor.GRAY + "Permission required to open panel");
|
lore.add(ChatColor.GRAY + "Permission required to open panel");
|
||||||
lore.add(ChatColor.GRAY + "commandpanel.panel.[insert]");
|
lore.add(ChatColor.GRAY + "commandpanel.panel.[insert]");
|
||||||
if (cf.contains("panels." + panelName + ".perm")) {
|
if (cf.contains("perm")) {
|
||||||
lore.add(ChatColor.WHITE + "--------------------------------");
|
lore.add(ChatColor.WHITE + "--------------------------------");
|
||||||
lore.add(ChatColor.WHITE + "commandpanel.panel." + cf.getString("panels." + panelName + ".perm"));
|
lore.add(ChatColor.WHITE + "commandpanel.panel." + cf.getString("perm"));
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Panel Permission", lore, p,true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Panel Permission", lore, p,true, true);
|
||||||
i.setItem(1, temp);
|
i.setItem(1, temp);
|
||||||
@ -136,9 +136,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.NAME_TAG, 1);
|
temp = new ItemStack(Material.NAME_TAG, 1);
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Title of the Panel");
|
lore.add(ChatColor.GRAY + "Title of the Panel");
|
||||||
if (cf.contains("panels." + panelName + ".title")) {
|
if (cf.contains("title")) {
|
||||||
lore.add(ChatColor.WHITE + "------------------");
|
lore.add(ChatColor.WHITE + "------------------");
|
||||||
lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".title"));
|
lore.add(ChatColor.WHITE + cf.getString("title"));
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Panel Title", lore, p,true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Panel Title", lore, p,true, true);
|
||||||
i.setItem(3, temp);
|
i.setItem(3, temp);
|
||||||
@ -146,9 +146,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.JUKEBOX, 1);
|
temp = new ItemStack(Material.JUKEBOX, 1);
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Sound when opening panel");
|
lore.add(ChatColor.GRAY + "Sound when opening panel");
|
||||||
if (cf.contains("panels." + panelName + ".sound-on-open")) {
|
if (cf.contains("sound-on-open")) {
|
||||||
lore.add(ChatColor.WHITE + "------------------------");
|
lore.add(ChatColor.WHITE + "------------------------");
|
||||||
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".sound-on-open")).toUpperCase());
|
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("sound-on-open")).toUpperCase());
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Panel Sound", lore, p,true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Panel Sound", lore, p,true, true);
|
||||||
i.setItem(5, temp);
|
i.setItem(5, temp);
|
||||||
@ -156,9 +156,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.IRON_DOOR, 1);
|
temp = new ItemStack(Material.IRON_DOOR, 1);
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Custom command to open panel");
|
lore.add(ChatColor.GRAY + "Custom command to open panel");
|
||||||
if (cf.contains("panels." + panelName + ".command")) {
|
if (cf.contains("command")) {
|
||||||
lore.add(ChatColor.WHITE + "----------------------------");
|
lore.add(ChatColor.WHITE + "----------------------------");
|
||||||
lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".command"));
|
lore.add(ChatColor.WHITE + cf.getString("command"));
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Panel Command", lore, p,true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Panel Command", lore, p,true, true);
|
||||||
i.setItem(7, temp);
|
i.setItem(7, temp);
|
||||||
@ -181,10 +181,10 @@ public class OpenEditorGuis {
|
|||||||
lore.add(ChatColor.GRAY + "Worlds that cannot access the panel");
|
lore.add(ChatColor.GRAY + "Worlds that cannot access the panel");
|
||||||
lore.add(ChatColor.GRAY + "- Left click to add world");
|
lore.add(ChatColor.GRAY + "- Left click to add world");
|
||||||
lore.add(ChatColor.GRAY + "- Right click to remove world");
|
lore.add(ChatColor.GRAY + "- Right click to remove world");
|
||||||
if (cf.contains("panels." + panelName + ".disabled-worlds")) {
|
if (cf.contains("disabled-worlds")) {
|
||||||
lore.add(ChatColor.WHITE + "-----------------------------");
|
lore.add(ChatColor.WHITE + "-----------------------------");
|
||||||
int count = 1;
|
int count = 1;
|
||||||
for (String tempLore : cf.getStringList("panels." + panelName + ".disabled-worlds")) {
|
for (String tempLore : cf.getStringList("disabled-worlds")) {
|
||||||
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
@ -195,9 +195,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.GLASS, 1);
|
temp = new ItemStack(Material.GLASS, 1);
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Fill empty slots with an item");
|
lore.add(ChatColor.GRAY + "Fill empty slots with an item");
|
||||||
if (cf.contains("panels." + panelName + ".empty")) {
|
if (cf.contains("empty")) {
|
||||||
lore.add(ChatColor.WHITE + "-----------------------");
|
lore.add(ChatColor.WHITE + "-----------------------");
|
||||||
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".empty")).toUpperCase());
|
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("empty")).toUpperCase());
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Panel Empty Item", lore, p,true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Panel Empty Item", lore, p,true, true);
|
||||||
i.setItem(13, temp);
|
i.setItem(13, temp);
|
||||||
@ -207,10 +207,10 @@ public class OpenEditorGuis {
|
|||||||
lore.add(ChatColor.GRAY + "Execute commands when opening");
|
lore.add(ChatColor.GRAY + "Execute commands when opening");
|
||||||
lore.add(ChatColor.GRAY + "- Left click to add command");
|
lore.add(ChatColor.GRAY + "- Left click to add command");
|
||||||
lore.add(ChatColor.GRAY + "- Right click to remove command");
|
lore.add(ChatColor.GRAY + "- Right click to remove command");
|
||||||
if (cf.contains("panels." + panelName + ".commands-on-open")) {
|
if (cf.contains("commands-on-open")) {
|
||||||
lore.add(ChatColor.WHITE + "-----------------------------");
|
lore.add(ChatColor.WHITE + "-----------------------------");
|
||||||
int count = 1;
|
int count = 1;
|
||||||
for (String tempLore : cf.getStringList("panels." + panelName + ".commands-on-open")) {
|
for (String tempLore : cf.getStringList("commands-on-open")) {
|
||||||
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
@ -244,17 +244,17 @@ public class OpenEditorGuis {
|
|||||||
//This is the items for hotbar items (open-with-item)
|
//This is the items for hotbar items (open-with-item)
|
||||||
boolean hotbarItems = false;
|
boolean hotbarItems = false;
|
||||||
|
|
||||||
if(cf.contains("panels." + panelName + ".open-with-item.material")){
|
if(cf.contains("open-with-item.material")){
|
||||||
hotbarItems = true;
|
hotbarItems = true;
|
||||||
temp = plugin.itemCreate.makeItemFromConfig(cf.getConfigurationSection("panels." + panelName + ".open-with-item"), p, false, true);
|
temp = plugin.itemCreate.makeItemFromConfig(cf.getConfigurationSection("open-with-item"), p, false, true);
|
||||||
}else{
|
}else{
|
||||||
temp = new ItemStack(Material.REDSTONE_BLOCK, 1);
|
temp = new ItemStack(Material.REDSTONE_BLOCK, 1);
|
||||||
}
|
}
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Current Item");
|
lore.add(ChatColor.GRAY + "Current Item");
|
||||||
if (cf.contains("panels." + panelName + ".open-with-item.material")) {
|
if (cf.contains("open-with-item.material")) {
|
||||||
lore.add(ChatColor.WHITE + "-----------------------");
|
lore.add(ChatColor.WHITE + "-----------------------");
|
||||||
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".open-with-item.material")).toUpperCase());
|
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("open-with-item.material")).toUpperCase());
|
||||||
}else{
|
}else{
|
||||||
lore.add(ChatColor.WHITE + "-----------------------");
|
lore.add(ChatColor.WHITE + "-----------------------");
|
||||||
lore.add(ChatColor.RED + "DISABLED");
|
lore.add(ChatColor.RED + "DISABLED");
|
||||||
@ -266,9 +266,9 @@ public class OpenEditorGuis {
|
|||||||
temp = new ItemStack(Material.NAME_TAG, 1);
|
temp = new ItemStack(Material.NAME_TAG, 1);
|
||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Name for Hotbar item");
|
lore.add(ChatColor.GRAY + "Name for Hotbar item");
|
||||||
if (cf.contains("panels." + panelName + ".open-with-item.name")) {
|
if (cf.contains("open-with-item.name")) {
|
||||||
lore.add(ChatColor.WHITE + "----------");
|
lore.add(ChatColor.WHITE + "----------");
|
||||||
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".open-with-item.name")));
|
lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("open-with-item.name")));
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Hotbar Item Name", lore, p, true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Hotbar Item Name", lore, p, true, true);
|
||||||
i.setItem(38, temp);
|
i.setItem(38, temp);
|
||||||
@ -278,10 +278,10 @@ public class OpenEditorGuis {
|
|||||||
lore.add(ChatColor.GRAY + "Display a lore under the Hotbar item");
|
lore.add(ChatColor.GRAY + "Display a lore under the Hotbar item");
|
||||||
lore.add(ChatColor.GRAY + "- Left click to add lore");
|
lore.add(ChatColor.GRAY + "- Left click to add lore");
|
||||||
lore.add(ChatColor.GRAY + "- Right click to remove lore");
|
lore.add(ChatColor.GRAY + "- Right click to remove lore");
|
||||||
if (cf.contains("panels." + panelName + ".open-with-item.lore")) {
|
if (cf.contains("open-with-item.lore")) {
|
||||||
lore.add(ChatColor.WHITE + "-------------------------------");
|
lore.add(ChatColor.WHITE + "-------------------------------");
|
||||||
int count = 1;
|
int count = 1;
|
||||||
for (String tempLore : cf.getStringList("panels." + panelName + ".open-with-item.lore")) {
|
for (String tempLore : cf.getStringList("open-with-item.lore")) {
|
||||||
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
lore.add(ChatColor.WHITE + Integer.toString(count) + ") " + tempLore);
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
@ -293,10 +293,10 @@ public class OpenEditorGuis {
|
|||||||
lore.clear();
|
lore.clear();
|
||||||
lore.add(ChatColor.GRAY + "Hotbar location for the item");
|
lore.add(ChatColor.GRAY + "Hotbar location for the item");
|
||||||
lore.add(ChatColor.GRAY + "choose a number from 1 to 9");
|
lore.add(ChatColor.GRAY + "choose a number from 1 to 9");
|
||||||
if (cf.contains("panels." + panelName + ".open-with-item.stationary")) {
|
if (cf.contains("open-with-item.stationary")) {
|
||||||
lore.add(ChatColor.WHITE + "-------------------------");
|
lore.add(ChatColor.WHITE + "-------------------------");
|
||||||
//in the editor, change the value of 0-8 to 1-9 for simplicity
|
//in the editor, change the value of 0-8 to 1-9 for simplicity
|
||||||
int location = cf.getInt("panels." + panelName + ".open-with-item.stationary") + 1;
|
int location = cf.getInt("open-with-item.stationary") + 1;
|
||||||
lore.add(ChatColor.WHITE + String.valueOf(location));
|
lore.add(ChatColor.WHITE + String.valueOf(location));
|
||||||
}
|
}
|
||||||
plugin.setName(temp, ChatColor.WHITE + "Hotbar Item Location", lore, p, true, true);
|
plugin.setName(temp, ChatColor.WHITE + "Hotbar Item Location", lore, p, true, true);
|
||||||
|
@ -5,6 +5,7 @@ import org.bukkit.ChatColor;
|
|||||||
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.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -22,58 +23,32 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
YamlConfiguration cf = null; //this is the file to use for any panel.* requests
|
ConfigurationSection cf = null; //this is the file to use for any panel.* requests
|
||||||
String panels = "";
|
String panelName = "";
|
||||||
ArrayList<String> apanels = new ArrayList<String>(); //all panels from all files (titles of panels)
|
|
||||||
ArrayList<String> opanels = new ArrayList<String>(); //all panels from all files (raw names of panels)
|
|
||||||
boolean found = false;
|
|
||||||
//below is going to go through the files and find the right one
|
//below is going to go through the files and find the right one
|
||||||
if (args.length != 0) { //check to make sure the person hasn't just left it empty
|
if (args.length != 0) { //check to make sure the person hasn't just left it empty
|
||||||
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
for(String[] panels : plugin.panelNames){
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
if(panels[0].equals(args[0])) {
|
||||||
if(!plugin.checkPanels(temp)){
|
cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panels[1])))).getConfigurationSection("panels." + panels[0]);
|
||||||
continue;
|
panelName = panels[0];
|
||||||
}
|
break;
|
||||||
for (String key : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) {
|
|
||||||
apanels.add(temp.getString("panels." + key + ".title"));
|
|
||||||
opanels.add(key);
|
|
||||||
if (args[0].equalsIgnoreCase(key)){
|
|
||||||
found = true;
|
|
||||||
panels = key;
|
|
||||||
cf = temp;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
plugin.helpMessage(sender);
|
plugin.helpMessage(sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(!found){
|
if(cf == null){
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//below will start the command, once it got the right file and panel
|
//below will start the command, once it got the right file and panel
|
||||||
if (cmd.getName().equalsIgnoreCase("cp") || cmd.getName().equalsIgnoreCase("commandpanel") || cmd.getName().equalsIgnoreCase("cpanel")) {
|
if (cmd.getName().equalsIgnoreCase("cp") || cmd.getName().equalsIgnoreCase("commandpanel") || cmd.getName().equalsIgnoreCase("cpanel")) {
|
||||||
boolean nfound = true;
|
|
||||||
for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) {
|
|
||||||
if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) {
|
|
||||||
panels = panels.split("\\s")[i];
|
|
||||||
nfound = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (nfound) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
|
||||||
return true;
|
|
||||||
}else if (!checkconfig(panels, sender, cf)) {
|
|
||||||
//if the config is missing an element (message will be sent to user via the public boolean)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
checkDuplicatePanel(sender,opanels,apanels);
|
|
||||||
if(!(sender instanceof Player)) {
|
if(!(sender instanceof Player)) {
|
||||||
//do console command command
|
//do console command command
|
||||||
if(args.length == 2){
|
if(args.length == 2){
|
||||||
if(!args[1].equals("item")){
|
if(!args[1].equals("item")){
|
||||||
plugin.openVoids.openCommandPanel(sender,plugin.getServer().getPlayer(args[1]),panels,cf,true);
|
plugin.openVoids.openCommandPanel(sender,plugin.getServer().getPlayer(args[1]),panelName,cf,true);
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> [item] [player]"));
|
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> [item] [player]"));
|
||||||
@ -81,7 +56,7 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}else if(args.length == 3){
|
}else if(args.length == 3){
|
||||||
if (args[1].equals("item")) {
|
if (args[1].equals("item")) {
|
||||||
plugin.openVoids.giveHotbarItem(sender,plugin.getServer().getPlayer(args[2]),panels,cf,true);
|
plugin.openVoids.giveHotbarItem(sender,plugin.getServer().getPlayer(args[2]),cf,true);
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> item [player]"));
|
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> item [player]"));
|
||||||
@ -96,17 +71,17 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
Player p = (Player) sender;
|
Player p = (Player) sender;
|
||||||
//do player command
|
//do player command
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
plugin.openVoids.openCommandPanel(sender, p, panels, cf,false);
|
plugin.openVoids.openCommandPanel(sender, p, panelName, cf,false);
|
||||||
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, panels, cf, false);
|
plugin.openVoids.giveHotbarItem(sender, p, cf, false);
|
||||||
}else{
|
}else{
|
||||||
plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panels, cf,true);
|
plugin.openVoids.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panelName, cf,true);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}else if(args.length == 3){
|
}else if(args.length == 3){
|
||||||
plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panels, cf,true);
|
plugin.openVoids.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), cf,true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,68 +89,4 @@ public class Commandpanel implements CommandExecutor {
|
|||||||
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> [player:item] [player]"));
|
sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp <panel> [player:item] [player]"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean checkDuplicatePanel(CommandSender sender, ArrayList<String> opanels, ArrayList<String> apanels){
|
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
|
||||||
//names is a list of the titles for the Panels
|
|
||||||
Set<String> oset = new HashSet<String>(opanels);
|
|
||||||
if (oset.size() < opanels.size()) {
|
|
||||||
//there are duplicate panel names
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!"));
|
|
||||||
if(plugin.debug){
|
|
||||||
ArrayList<String> opanelsTemp = new ArrayList<String>();
|
|
||||||
for(String tempName : opanels){
|
|
||||||
if(opanelsTemp.contains(tempName)){
|
|
||||||
sender.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate panel is: " + tempName));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
opanelsTemp.add(tempName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Set<String> set = new HashSet<String>(apanels);
|
|
||||||
if (set.size() < apanels.size()) {
|
|
||||||
//there are duplicate panel titles
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!"));
|
|
||||||
if(plugin.debug){
|
|
||||||
ArrayList<String> apanelsTemp = new ArrayList<String>();
|
|
||||||
for(String tempName : apanels){
|
|
||||||
if(apanelsTemp.contains(tempName)){
|
|
||||||
sender.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate title is: " + tempName));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
apanelsTemp.add(tempName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean checkconfig(String panels, CommandSender sender, YamlConfiguration pconfig) {
|
|
||||||
//if it is missing a section specified it will return false
|
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
|
||||||
if(!pconfig.contains("panels." + panels)) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel")));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!pconfig.contains("panels." + panels + ".perm")) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!pconfig.contains("panels." + panels + ".rows")) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!pconfig.contains("panels." + panels + ".title")) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!pconfig.contains("panels." + panels + ".item")) {
|
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
package me.rockyhawk.commandpanels.commands;
|
package me.rockyhawk.commandpanels.commands;
|
||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Commandpanelcustom implements Listener {
|
public class Commandpanelcustom implements Listener {
|
||||||
CommandPanels plugin;
|
CommandPanels plugin;
|
||||||
@ -20,57 +17,24 @@ public class Commandpanelcustom implements Listener {
|
|||||||
}
|
}
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void PlayerCommand(PlayerCommandPreprocessEvent e) {
|
public void PlayerCommand(PlayerCommandPreprocessEvent e) {
|
||||||
String panels;
|
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
|
||||||
Player p = e.getPlayer();
|
|
||||||
File panelsf = new File(plugin.getDataFolder() + File.separator + "panels");
|
|
||||||
try {
|
try {
|
||||||
if (panelsf.list() == null || Objects.requireNonNull(panelsf.list()).length == 0) {
|
if (plugin.panelsf.list() == null || Objects.requireNonNull(plugin.panelsf.list()).length == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}catch(Exception b){
|
}catch(Exception b){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
YamlConfiguration cf = null; //this is the file to use for any panel.* requests
|
ConfigurationSection tempFile;
|
||||||
ArrayList<String> apanels = new ArrayList<String>(); //all panels from all files (panel names)
|
|
||||||
String tpanels; //tpanels is the temp to check through the files
|
for(String[] panelName : plugin.panelNames){
|
||||||
String panel = null;
|
tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + panelName[0]);
|
||||||
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
if(tempFile.contains("command")) {
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
List<String> panelCommands = Arrays.asList(tempFile.getString("command").split("\\s"));
|
||||||
String key;
|
if(panelCommands.contains(e.getMessage().replace("/",""))){
|
||||||
tpanels = "";
|
e.setCancelled(true);
|
||||||
if(!plugin.checkPanels(temp)){
|
plugin.openVoids.openCommandPanel(e.getPlayer(),e.getPlayer(),panelName[0],tempFile,false);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Iterator var10 = Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") {
|
|
||||||
key = (String) var10.next();
|
|
||||||
apanels.add(key);
|
|
||||||
}
|
|
||||||
tpanels = tpanels.trim();
|
|
||||||
//check if the requested panel is in the file (then set the config to that panel file)
|
|
||||||
for(int i = 0; i < tpanels.split("\\s").length;i++){
|
|
||||||
if(temp.contains("panels." + tpanels.split("\\s")[i] + ".command")) {
|
|
||||||
for(int c = 0; c < temp.getString("panels." + tpanels.split("\\s")[i] + ".command").split("\\s").length;c++) {
|
|
||||||
if (("/" + temp.getString("panels." + tpanels.split("\\s")[i] + ".command").split("\\s")[c]).equalsIgnoreCase(e.getMessage())) {
|
|
||||||
cf = temp;
|
|
||||||
panels = tpanels;
|
|
||||||
panels = panels.trim();
|
|
||||||
panel = panels.split("\\s")[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(panel == null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
e.setCancelled(true);
|
|
||||||
try {
|
|
||||||
plugin.openVoids.openCommandPanel(p,p,panel,cf,false);
|
|
||||||
}catch(Exception er){
|
|
||||||
//do nothing
|
|
||||||
p.sendMessage(plugin.papi(tag + ChatColor.RED + "Error opening panel!"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@ public class Commandpanelsreload implements CommandExecutor {
|
|||||||
//empty
|
//empty
|
||||||
}
|
}
|
||||||
plugin.config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder() + File.separator + "config.yml"));
|
plugin.config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder() + File.separator + "config.yml"));
|
||||||
|
//check for duplicates
|
||||||
|
plugin.checkDuplicatePanel(sender);
|
||||||
tag = plugin.config.getString("config.format.tag") + " ";
|
tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.reload")));
|
sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.reload")));
|
||||||
return true;
|
return true;
|
||||||
|
@ -19,7 +19,9 @@ public class Commandpanelversion implements CommandExecutor {
|
|||||||
if (sender.hasPermission("commandpanel.version")) {
|
if (sender.hasPermission("commandpanel.version")) {
|
||||||
//version command
|
//version command
|
||||||
sender.sendMessage(plugin.papi(tag));
|
sender.sendMessage(plugin.papi(tag));
|
||||||
sender.sendMessage(ChatColor.GREEN + "Version " + ChatColor.GRAY + plugin.getDescription().getVersion());
|
sender.sendMessage(ChatColor.GREEN + "This Version " + ChatColor.GRAY + plugin.getDescription().getVersion());
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Latest Version " + ChatColor.GRAY + plugin.updater.githubNewUpdate(false));
|
||||||
|
sender.sendMessage(ChatColor.GRAY + "-------------------");
|
||||||
sender.sendMessage(ChatColor.GREEN + "Developer " + ChatColor.GRAY + "RockyHawk");
|
sender.sendMessage(ChatColor.GREEN + "Developer " + ChatColor.GRAY + "RockyHawk");
|
||||||
sender.sendMessage(ChatColor.GREEN + "Command " + ChatColor.GRAY + "/cp");
|
sender.sendMessage(ChatColor.GREEN + "Command " + ChatColor.GRAY + "/cp");
|
||||||
return true;
|
return true;
|
||||||
|
@ -132,7 +132,7 @@ public class CpIngameEditCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//open editor window here
|
//open editor window here
|
||||||
plugin.openGui(panels, p, cf,3,0);
|
plugin.createGUI.openGui(panels, p, cf,3,0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,8 @@ public class EditorUserInput implements Listener {
|
|||||||
String panelTitle = temp[1];
|
String panelTitle = temp[1];
|
||||||
File panelFile = null;
|
File panelFile = null;
|
||||||
String section = temp[2];
|
String section = temp[2];
|
||||||
YamlConfiguration cf = null;
|
YamlConfiguration cfile = null;
|
||||||
|
ConfigurationSection cf = null;
|
||||||
try {
|
try {
|
||||||
for (String tempFile : plugin.panelFiles) { //will loop through all the files in folder
|
for (String tempFile : plugin.panelFiles) { //will loop through all the files in folder
|
||||||
YamlConfiguration tempConf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + tempFile));
|
YamlConfiguration tempConf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + tempFile));
|
||||||
@ -43,9 +44,10 @@ public class EditorUserInput implements Listener {
|
|||||||
}
|
}
|
||||||
for (String key : Objects.requireNonNull(tempConf.getConfigurationSection("panels")).getKeys(false)) {
|
for (String key : Objects.requireNonNull(tempConf.getConfigurationSection("panels")).getKeys(false)) {
|
||||||
if (key.equals(panelName)) {
|
if (key.equals(panelName)) {
|
||||||
cf = tempConf;
|
cfile = tempConf;
|
||||||
|
cf = tempConf.getConfigurationSection("panels." + key);
|
||||||
panelFile = new File(plugin.panelsf + File.separator + tempFile);
|
panelFile = new File(plugin.panelsf + File.separator + tempFile);
|
||||||
panelTitle = plugin.papi( Objects.requireNonNull(tempConf.getString("panels." + key + ".title")));
|
panelTitle = plugin.papi( Objects.requireNonNull(cf.getString("title")));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -61,11 +63,11 @@ public class EditorUserInput implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(section.startsWith("panel.")) {
|
if(section.startsWith("panel.")) {
|
||||||
panelSectionCheck(p, section, panelName, panelTitle, cf, panelFile, e);
|
panelSectionCheck(p, section, panelName, panelTitle, cf, cfile, panelFile, e);
|
||||||
}else if(section.startsWith("item:")){
|
}else if(section.startsWith("item:")){
|
||||||
itemSectionCheck(p, section, panelName, cf, panelFile, e);
|
itemSectionCheck(p, section, panelName, cf, cfile, panelFile, e);
|
||||||
}else if(section.startsWith("section.")){
|
}else if(section.startsWith("section.")){
|
||||||
itemSectionSectionCheck(p, section, panelName, cf, panelFile, e);
|
itemSectionSectionCheck(p, section, panelName, cf, cfile, panelFile, e);
|
||||||
}
|
}
|
||||||
plugin.editorInputStrings.remove(temp);
|
plugin.editorInputStrings.remove(temp);
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
@ -76,18 +78,18 @@ public class EditorUserInput implements Listener {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else if(section.startsWith("item:")) {
|
}else if(section.startsWith("item:")) {
|
||||||
final YamlConfiguration finalCF = cf;
|
final ConfigurationSection finalCF = cf;
|
||||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
plugin.openGui(panelName, p, finalCF, 3,0); //I have to do this to run regular Bukkit voids in an ASYNC Event
|
plugin.createGUI.openGui(panelName, p, finalCF, 3,0); //I have to do this to run regular Bukkit voids in an ASYNC Event
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else if(section.startsWith("section.")){
|
}else if(section.startsWith("section.")){
|
||||||
String itemSection = ChatColor.stripColor(section.replace("section." + section.split("\\.")[1] + ".", ""));
|
String itemSection = ChatColor.stripColor(section.replace("section." + section.split("\\.")[1] + ".", ""));
|
||||||
final ConfigurationSection finalCF = cf.getConfigurationSection("panels." + panelName + ".item." + itemSection);
|
final ConfigurationSection finalCF = cf.getConfigurationSection("item." + itemSection);
|
||||||
if(section.contains("change")){
|
if(section.contains("change")){
|
||||||
final String changeItemSection = itemSection.substring(0, itemSection.lastIndexOf("."));
|
final String changeItemSection = itemSection.substring(0, itemSection.lastIndexOf("."));
|
||||||
final ConfigurationSection changeFinalCF = cf.getConfigurationSection("panels." + panelName + ".item." + changeItemSection);
|
final ConfigurationSection changeFinalCF = cf.getConfigurationSection("item." + changeItemSection);
|
||||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
plugin.editorGuis.openItemSections(p,panelName,changeFinalCF,changeItemSection);
|
plugin.editorGuis.openItemSections(p,panelName,changeFinalCF,changeItemSection);
|
||||||
@ -104,9 +106,10 @@ public class EditorUserInput implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean savePanelFile(YamlConfiguration cf, File panelFile){
|
boolean savePanelFile(ConfigurationSection cf, YamlConfiguration cfile, String panelName, File panelFile){
|
||||||
try {
|
try {
|
||||||
cf.save(panelFile);
|
cfile.set("panels." + panelName, cf);
|
||||||
|
cfile.save(panelFile);
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception io) {
|
} catch (Exception io) {
|
||||||
plugin.debug(io);
|
plugin.debug(io);
|
||||||
@ -114,7 +117,7 @@ public class EditorUserInput implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void panelSectionCheck(Player p, String section, String panelName, String panelTitle, YamlConfiguration cf, File panelFile, AsyncPlayerChatEvent e){
|
void panelSectionCheck(Player p, String section, String panelName, String panelTitle, ConfigurationSection cf, YamlConfiguration cfile, File panelFile, AsyncPlayerChatEvent e){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
switch (section) {
|
switch (section) {
|
||||||
case "panel.delete":
|
case "panel.delete":
|
||||||
@ -122,7 +125,7 @@ public class EditorUserInput implements Listener {
|
|||||||
if(Objects.requireNonNull(cf.getConfigurationSection("panels")).getKeys(false).size() != 1){
|
if(Objects.requireNonNull(cf.getConfigurationSection("panels")).getKeys(false).size() != 1){
|
||||||
//if the file has more than one panel in it
|
//if the file has more than one panel in it
|
||||||
cf.set("panels." + panelName, null);
|
cf.set("panels." + panelName, null);
|
||||||
if(savePanelFile(cf, panelFile)){
|
if(savePanelFile(cf, cfile, panelName, panelFile)){
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Deleted Panel!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Deleted Panel!"));
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could Not Delete Panel!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could Not Delete Panel!"));
|
||||||
@ -142,8 +145,8 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "Permission cannot contain spaces!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "Permission cannot contain spaces!"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".perm", e.getMessage());
|
cf.set("perm", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Permission required is now " + "commandpanel.panel." + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Permission required is now " + "commandpanel.panel." + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.rows":
|
case "panel.rows":
|
||||||
@ -154,8 +157,8 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 6!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 6!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".rows", rows);
|
cf.set("rows", rows);
|
||||||
cf.save(panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Panel to " + rows + " rows!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Panel to " + rows + " rows!"));
|
||||||
} catch (Exception io) {
|
} catch (Exception io) {
|
||||||
plugin.debug(io);
|
plugin.debug(io);
|
||||||
@ -166,8 +169,8 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi(tag + e.getMessage() + ChatColor.RED + " is in use from another panel!"));
|
p.sendMessage(plugin.papi(tag + e.getMessage() + ChatColor.RED + " is in use from another panel!"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".title", e.getMessage());
|
cf.set("title", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Title to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Title to " + ChatColor.WHITE + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.name":
|
case "panel.name":
|
||||||
@ -181,13 +184,13 @@ public class EditorUserInput implements Listener {
|
|||||||
}
|
}
|
||||||
cf.set("panels." + e.getMessage(), cf.get("panels." + panelName));
|
cf.set("panels." + e.getMessage(), cf.get("panels." + panelName));
|
||||||
cf.set("panels." + panelName, null);
|
cf.set("panels." + panelName, null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.empty":
|
case "panel.empty":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".empty", null);
|
cf.set("empty", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Empty materials have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Empty materials have been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -197,14 +200,14 @@ public class EditorUserInput implements Listener {
|
|||||||
}catch(NullPointerException ex){
|
}catch(NullPointerException ex){
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Material!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Material!"));
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".empty", materialTemp);
|
cf.set("empty", materialTemp);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Empty material to " + materialTemp));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Empty material to " + materialTemp));
|
||||||
break;
|
break;
|
||||||
case "panel.sound-on-open":
|
case "panel.sound-on-open":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".sound-on-open", null);
|
cf.set("sound-on-open", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sounds have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sounds have been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -215,35 +218,35 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Sound!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Sound!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".sound-on-open", tempSound);
|
cf.set("sound-on-open", tempSound);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sound when opening is now " + tempSound));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sound when opening is now " + tempSound));
|
||||||
break;
|
break;
|
||||||
case "panel.command":
|
case "panel.command":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".command", null);
|
cf.set("command", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom commands have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom commands have been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".command", e.getMessage());
|
cf.set("command", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new custom commands to " + ChatColor.WHITE + "/" + e.getMessage().trim().replace(" ", " /")));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new custom commands to " + ChatColor.WHITE + "/" + e.getMessage().trim().replace(" ", " /")));
|
||||||
break;
|
break;
|
||||||
case "panel.commands-on-open.add":
|
case "panel.commands-on-open.add":
|
||||||
List<String> commandsOnOpenAdd = new ArrayList<>();
|
List<String> commandsOnOpenAdd = new ArrayList<>();
|
||||||
if(cf.contains("panels." + panelName + ".commands-on-open")){
|
if(cf.contains("commands-on-open")){
|
||||||
commandsOnOpenAdd = cf.getStringList("panels." + panelName + ".commands-on-open");
|
commandsOnOpenAdd = cf.getStringList("commands-on-open");
|
||||||
}
|
}
|
||||||
commandsOnOpenAdd.add(e.getMessage());
|
commandsOnOpenAdd.add(e.getMessage());
|
||||||
cf.set("panels." + panelName + ".commands-on-open", commandsOnOpenAdd);
|
cf.set("commands-on-open", commandsOnOpenAdd);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.commands-on-open.remove":
|
case "panel.commands-on-open.remove":
|
||||||
List<String> commandsOnOpenRemove;
|
List<String> commandsOnOpenRemove;
|
||||||
if(cf.contains("panels." + panelName + ".commands-on-open")){
|
if(cf.contains("commands-on-open")){
|
||||||
commandsOnOpenRemove = cf.getStringList("panels." + panelName + ".commands-on-open");
|
commandsOnOpenRemove = cf.getStringList("commands-on-open");
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!"));
|
||||||
break;
|
break;
|
||||||
@ -255,27 +258,27 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(commandsOnOpenRemove.size() == 0){
|
if(commandsOnOpenRemove.size() == 0){
|
||||||
cf.set("panels." + panelName + ".commands-on-open", null);
|
cf.set("commands-on-open", null);
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".commands-on-open", commandsOnOpenRemove);
|
cf.set("commands-on-open", commandsOnOpenRemove);
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.disabled-worlds.add":
|
case "panel.disabled-worlds.add":
|
||||||
List<String> disabledWorldsAdd = new ArrayList<>();
|
List<String> disabledWorldsAdd = new ArrayList<>();
|
||||||
if(cf.contains("panels." + panelName + ".disabled-worlds")){
|
if(cf.contains("disabled-worlds")){
|
||||||
disabledWorldsAdd = cf.getStringList("panels." + panelName + ".disabled-worlds");
|
disabledWorldsAdd = cf.getStringList("disabled-worlds");
|
||||||
}
|
}
|
||||||
disabledWorldsAdd.add(e.getMessage());
|
disabledWorldsAdd.add(e.getMessage());
|
||||||
cf.set("panels." + panelName + ".disabled-worlds", disabledWorldsAdd);
|
cf.set("disabled-worlds", disabledWorldsAdd);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new World: " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new World: " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.disabled-worlds.remove":
|
case "panel.disabled-worlds.remove":
|
||||||
List<String> disabledWorldsRemove;
|
List<String> disabledWorldsRemove;
|
||||||
if(cf.contains("panels." + panelName + ".disabled-worlds")){
|
if(cf.contains("disabled-worlds")){
|
||||||
disabledWorldsRemove = cf.getStringList("panels." + panelName + ".disabled-worlds");
|
disabledWorldsRemove = cf.getStringList("disabled-worlds");
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No Worlds found to remove!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No Worlds found to remove!"));
|
||||||
break;
|
break;
|
||||||
@ -287,35 +290,35 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(disabledWorldsRemove.size() == 0){
|
if(disabledWorldsRemove.size() == 0){
|
||||||
cf.set("panels." + panelName + ".disabled-worlds", null);
|
cf.set("disabled-worlds", null);
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".disabled-worlds", disabledWorldsRemove);
|
cf.set("disabled-worlds", disabledWorldsRemove);
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed World line " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed World line " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.hotbar.material":
|
case "panel.hotbar.material":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".open-with-item", null);
|
cf.set("open-with-item", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item have been removed."));
|
||||||
//after an open-with-item has been altered, reload after changes
|
//after an open-with-item has been altered, reload after changes
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".open-with-item.material", e.getMessage());
|
cf.set("open-with-item.material", e.getMessage());
|
||||||
if(!cf.contains("panels." + panelName + ".open-with-item.name")){
|
if(!cf.contains("open-with-item.name")){
|
||||||
cf.set("panels." + panelName + ".open-with-item.name", panelName + " Item");
|
cf.set("open-with-item.name", panelName + " Item");
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Material to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Material to " + ChatColor.WHITE + e.getMessage()));
|
||||||
//after an open-with-item has been altered, reload after changes
|
//after an open-with-item has been altered, reload after changes
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
break;
|
break;
|
||||||
case "panel.hotbar.stationary":
|
case "panel.hotbar.stationary":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".open-with-item.stationary", null);
|
cf.set("open-with-item.stationary", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item can now be moved."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item can now be moved."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -329,31 +332,31 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!"));
|
||||||
//because it needs to convert 1-9 to 0-8 for in the panel
|
//because it needs to convert 1-9 to 0-8 for in the panel
|
||||||
loc -= 1;
|
loc -= 1;
|
||||||
cf.set("panels." + panelName + ".open-with-item.stationary", loc);
|
cf.set("open-with-item.stationary", loc);
|
||||||
cf.save(panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
} catch (Exception io) {
|
} catch (Exception io) {
|
||||||
plugin.debug(io);
|
plugin.debug(io);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "panel.hotbar.name":
|
case "panel.hotbar.name":
|
||||||
cf.set("panels." + panelName + ".open-with-item.name",e.getMessage());
|
cf.set("open-with-item.name",e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + ChatColor.WHITE + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.hotbar.lore.add":
|
case "panel.hotbar.lore.add":
|
||||||
List<String> loreAdd = new ArrayList<>();
|
List<String> loreAdd = new ArrayList<>();
|
||||||
if(cf.contains("panels." + panelName + ".open-with-item.lore")){
|
if(cf.contains("open-with-item.lore")){
|
||||||
loreAdd = cf.getStringList("panels." + panelName + ".open-with-item.lore");
|
loreAdd = cf.getStringList("open-with-item.lore");
|
||||||
}
|
}
|
||||||
loreAdd.add(e.getMessage());
|
loreAdd.add(e.getMessage());
|
||||||
cf.set("panels." + panelName + ".open-with-item.lore", loreAdd);
|
cf.set("open-with-item.lore", loreAdd);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "panel.hotbar.lore.remove":
|
case "panel.hotbar.lore.remove":
|
||||||
List<String> loreRemove;
|
List<String> loreRemove;
|
||||||
if(cf.contains("panels." + panelName + ".open-with-item.lore")){
|
if(cf.contains("open-with-item.lore")){
|
||||||
loreRemove = cf.getStringList("panels." + panelName + ".open-with-item.lore");
|
loreRemove = cf.getStringList("open-with-item.lore");
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!"));
|
||||||
break;
|
break;
|
||||||
@ -365,17 +368,17 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(loreRemove.size() == 0){
|
if(loreRemove.size() == 0){
|
||||||
cf.set("panels." + panelName + ".open-with-item.lore", null);
|
cf.set("open-with-item.lore", null);
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".open-with-item.lore", loreRemove);
|
cf.set("open-with-item.lore", loreRemove);
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void itemSectionCheck(Player p, String section, String panelName, YamlConfiguration cf, File panelFile, AsyncPlayerChatEvent e){
|
void itemSectionCheck(Player p, String section, String panelName, ConfigurationSection cf, YamlConfiguration cfile, File panelFile, AsyncPlayerChatEvent e){
|
||||||
/*
|
/*
|
||||||
I am using : instead of . because the
|
I am using : instead of . because the
|
||||||
item sections could contain 18.hasperm <- the periods
|
item sections could contain 18.hasperm <- the periods
|
||||||
@ -388,30 +391,30 @@ public class EditorUserInput implements Listener {
|
|||||||
switch (sectionChange) {
|
switch (sectionChange) {
|
||||||
case "name":
|
case "name":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".name", "");
|
cf.set("item." + itemSlot + ".name", "");
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Name is now default."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Name is now default."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".name", e.getMessage());
|
cf.set("item." + itemSlot + ".name", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new name to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new name to " + ChatColor.WHITE + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "head":
|
case "head":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".material", plugin.getHeads.playerHeadString());
|
cf.set("item." + itemSlot + ".material", plugin.getHeads.playerHeadString());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Material is now default."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Material is now default."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".material", e.getMessage());
|
cf.set("item." + itemSlot + ".material", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Material value to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Material value to " + ChatColor.WHITE + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "stack":
|
case "stack":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".stack", null);
|
cf.set("item." + itemSlot + ".stack", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Item has been unstacked."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Item has been unstacked."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -422,8 +425,8 @@ public class EditorUserInput implements Listener {
|
|||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 64!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 64!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".stack", rows);
|
cf.set("item." + itemSlot + ".stack", rows);
|
||||||
cf.save(panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set stack to " + rows + "!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set stack to " + rows + "!"));
|
||||||
} catch (Exception io) {
|
} catch (Exception io) {
|
||||||
plugin.debug(io);
|
plugin.debug(io);
|
||||||
@ -431,62 +434,62 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
case "enchanted":
|
case "enchanted":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".enchanted", null);
|
cf.set("item." + itemSlot + ".enchanted", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Enchantments have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Enchantments have been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".enchanted", e.getMessage());
|
cf.set("item." + itemSlot + ".enchanted", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Enchantment to " + ChatColor.WHITE + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Enchantment to " + ChatColor.WHITE + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "potion":
|
case "potion":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".potion", null);
|
cf.set("item." + itemSlot + ".potion", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Potion effects have been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Potion effects have been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".potion", e.getMessage());
|
cf.set("item." + itemSlot + ".potion", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Potion to " + e.getMessage().toUpperCase()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Potion to " + e.getMessage().toUpperCase()));
|
||||||
break;
|
break;
|
||||||
case "customdata":
|
case "customdata":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".customdata", null);
|
cf.set("item." + itemSlot + ".customdata", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data has been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data has been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".customdata", e.getMessage());
|
cf.set("item." + itemSlot + ".customdata", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data set to " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data set to " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "leatherarmor":
|
case "leatherarmor":
|
||||||
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
if(e.getMessage().trim().equalsIgnoreCase("remove")){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".leatherarmor", null);
|
cf.set("item." + itemSlot + ".leatherarmor", null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour has been removed."));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour has been removed."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".leatherarmor", e.getMessage());
|
cf.set("item." + itemSlot + ".leatherarmor", e.getMessage());
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour set to " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour set to " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "commands:add":
|
case "commands:add":
|
||||||
List<String> commandsOnOpenAdd = new ArrayList<>();
|
List<String> commandsOnOpenAdd = new ArrayList<>();
|
||||||
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".commands")){
|
if(cf.contains("item." + itemSlot + ".commands")){
|
||||||
commandsOnOpenAdd = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".commands");
|
commandsOnOpenAdd = cf.getStringList("item." + itemSlot + ".commands");
|
||||||
}
|
}
|
||||||
commandsOnOpenAdd.add(e.getMessage());
|
commandsOnOpenAdd.add(e.getMessage());
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".commands", commandsOnOpenAdd);
|
cf.set("item." + itemSlot + ".commands", commandsOnOpenAdd);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "commands:remove":
|
case "commands:remove":
|
||||||
List<String> commandsOnOpenRemove;
|
List<String> commandsOnOpenRemove;
|
||||||
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".commands")){
|
if(cf.contains("item." + itemSlot + ".commands")){
|
||||||
commandsOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".commands");
|
commandsOnOpenRemove = cf.getStringList("item." + itemSlot + ".commands");
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!"));
|
||||||
break;
|
break;
|
||||||
@ -498,27 +501,27 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(commandsOnOpenRemove.size() == 0){
|
if(commandsOnOpenRemove.size() == 0){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".commands", null);
|
cf.set("item." + itemSlot + ".commands", null);
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".commands", commandsOnOpenRemove);
|
cf.set("item." + itemSlot + ".commands", commandsOnOpenRemove);
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "lore:add":
|
case "lore:add":
|
||||||
List<String> loreOnOpenAdd = new ArrayList<>();
|
List<String> loreOnOpenAdd = new ArrayList<>();
|
||||||
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".lore")){
|
if(cf.contains("item." + itemSlot + ".lore")){
|
||||||
loreOnOpenAdd = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".lore");
|
loreOnOpenAdd = cf.getStringList("item." + itemSlot + ".lore");
|
||||||
}
|
}
|
||||||
loreOnOpenAdd.add(e.getMessage());
|
loreOnOpenAdd.add(e.getMessage());
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".lore", loreOnOpenAdd);
|
cf.set("item." + itemSlot + ".lore", loreOnOpenAdd);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
case "lore:remove":
|
case "lore:remove":
|
||||||
List<String> loreOnOpenRemove;
|
List<String> loreOnOpenRemove;
|
||||||
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".lore")){
|
if(cf.contains("item." + itemSlot + ".lore")){
|
||||||
loreOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".lore");
|
loreOnOpenRemove = cf.getStringList("item." + itemSlot + ".lore");
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!"));
|
p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!"));
|
||||||
break;
|
break;
|
||||||
@ -530,17 +533,17 @@ public class EditorUserInput implements Listener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(loreOnOpenRemove.size() == 0){
|
if(loreOnOpenRemove.size() == 0){
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".lore", null);
|
cf.set("item." + itemSlot + ".lore", null);
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".item." + itemSlot + ".lore", loreOnOpenRemove);
|
cf.set("item." + itemSlot + ".lore", loreOnOpenRemove);
|
||||||
}
|
}
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage()));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void itemSectionSectionCheck(Player p, String section, String panelName, YamlConfiguration cf, File panelFile, AsyncPlayerChatEvent e){
|
void itemSectionSectionCheck(Player p, String section, String panelName, ConfigurationSection cf, YamlConfiguration cfile, File panelFile, AsyncPlayerChatEvent e){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
String secondValue = section.split("\\.")[1];
|
String secondValue = section.split("\\.")[1];
|
||||||
//section includes slot at front eg, 1.hasvalue
|
//section includes slot at front eg, 1.hasvalue
|
||||||
@ -548,28 +551,28 @@ public class EditorUserInput implements Listener {
|
|||||||
String playerMessage = ChatColor.stripColor(e.getMessage()).toLowerCase();
|
String playerMessage = ChatColor.stripColor(e.getMessage()).toLowerCase();
|
||||||
switch (secondValue) {
|
switch (secondValue) {
|
||||||
case "add":
|
case "add":
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".output", "true");
|
cf.set("item." + itemSection + "." + playerMessage + ".output", "true");
|
||||||
if(playerMessage.equals("hasperm")) {
|
if(playerMessage.equals("hasperm")) {
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".perm", "admin");
|
cf.set("item." + itemSection + "." + playerMessage + ".perm", "admin");
|
||||||
}else{
|
}else{
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".value", "10");
|
cf.set("item." + itemSection + "." + playerMessage + ".value", "10");
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".compare", "%cp-player-balance%");
|
cf.set("item." + itemSection + "." + playerMessage + ".compare", "%cp-player-balance%");
|
||||||
}
|
}
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".material", "DIRT");
|
cf.set("item." + itemSection + "." + playerMessage + ".material", "DIRT");
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage + ".name", "");
|
cf.set("item." + itemSection + "." + playerMessage + ".name", "");
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added Section " + ChatColor.WHITE + playerMessage));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added Section " + ChatColor.WHITE + playerMessage));
|
||||||
break;
|
break;
|
||||||
case "remove":
|
case "remove":
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage, null);
|
cf.set("item." + itemSection + "." + playerMessage, null);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed Section " + ChatColor.WHITE + playerMessage));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed Section " + ChatColor.WHITE + playerMessage));
|
||||||
break;
|
break;
|
||||||
case "change":
|
case "change":
|
||||||
cf.set("panels." + panelName + ".item." + itemSection + "." + playerMessage.split("\\:")[0], playerMessage.split("\\:")[1]);
|
cf.set("item." + itemSection + "." + playerMessage.split("\\:")[0], playerMessage.split("\\:")[1]);
|
||||||
savePanelFile(cf, panelFile);
|
savePanelFile(cf, cfile, panelName, panelFile);
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set " + playerMessage.split("\\:")[0] + " to " + ChatColor.WHITE + playerMessage.split("\\:")[1]));
|
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set " + playerMessage.split("\\:")[0] + " to " + ChatColor.WHITE + playerMessage.split("\\:")[1]));
|
||||||
break;
|
break;
|
||||||
|
@ -44,7 +44,7 @@ public class EditorUtils implements Listener {
|
|||||||
}
|
}
|
||||||
ArrayList<String> panelNames = new ArrayList<String>(); //all panels from ALL files (panel names)
|
ArrayList<String> panelNames = new ArrayList<String>(); //all panels from ALL files (panel names)
|
||||||
ArrayList<String> panelTitles = new ArrayList<String>(); //all panels from ALL files (panel titles)
|
ArrayList<String> panelTitles = new ArrayList<String>(); //all panels from ALL files (panel titles)
|
||||||
ArrayList<YamlConfiguration> panelYaml = new ArrayList<YamlConfiguration>(); //all panels from ALL files (panel yaml files)
|
ArrayList<ConfigurationSection> panelYaml = new ArrayList<ConfigurationSection>(); //all panels from ALL files (panel yaml files)
|
||||||
try {
|
try {
|
||||||
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
||||||
@ -56,7 +56,7 @@ public class EditorUtils implements Listener {
|
|||||||
key = s;
|
key = s;
|
||||||
panelNames.add(plugin.papi( key));
|
panelNames.add(plugin.papi( key));
|
||||||
panelTitles.add(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))));
|
panelTitles.add(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))));
|
||||||
panelYaml.add(temp);
|
panelYaml.add(temp.getConfigurationSection("panels." + key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(Exception fail){
|
}catch(Exception fail){
|
||||||
@ -106,7 +106,7 @@ public class EditorUtils implements Listener {
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
for(String panelName : panelNames){
|
for(String panelName : panelNames){
|
||||||
if(panelName.equals(ChatColor.stripColor(Objects.requireNonNull(e.getCurrentItem().getItemMeta()).getDisplayName()))){
|
if(panelName.equals(ChatColor.stripColor(Objects.requireNonNull(e.getCurrentItem().getItemMeta()).getDisplayName()))){
|
||||||
plugin.openGui(panelName, p, panelYaml.get(count),3,0);
|
plugin.createGUI.openGui(panelName, p, panelYaml.get(count),3,0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
count +=1;
|
count +=1;
|
||||||
@ -582,7 +582,7 @@ public class EditorUtils implements Listener {
|
|||||||
String newSection = itemSlot.substring(0, itemSlot.lastIndexOf("."));
|
String newSection = itemSlot.substring(0, itemSlot.lastIndexOf("."));
|
||||||
plugin.editorGuis.openItemSections(p,panelName,panelYaml.getConfigurationSection("panels." + panelName + ".item." + newSection), newSection);
|
plugin.editorGuis.openItemSections(p,panelName,panelYaml.getConfigurationSection("panels." + panelName + ".item." + newSection), newSection);
|
||||||
}else {
|
}else {
|
||||||
plugin.openGui(panelName, p, panelYaml, 3, 0);
|
plugin.createGUI.openGui(panelName, p, panelYaml.getConfigurationSection("panels." + panelName), 3, 0);
|
||||||
}
|
}
|
||||||
p.updateInventory();
|
p.updateInventory();
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package me.rockyhawk.commandpanels.interactives;
|
|||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -11,7 +11,7 @@ import org.bukkit.event.inventory.InventoryOpenEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.util.Arrays;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Commandpanelrefresher implements Listener {
|
public class Commandpanelrefresher implements Listener {
|
||||||
@ -34,60 +34,27 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
}else{
|
}else{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//get all panel names (not titles)
|
|
||||||
YamlConfiguration cf = null;
|
if(!plugin.openPanels.hasPanelOpen(p.getName())){
|
||||||
String panel = null;
|
|
||||||
String panelTitle = null;
|
|
||||||
try {
|
|
||||||
boolean foundPanel = false;
|
|
||||||
for (String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
|
||||||
String key;
|
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
|
||||||
if (!plugin.checkPanels(temp)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) {
|
|
||||||
key = s;
|
|
||||||
if (plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))).equals(e.getView().getTitle())) {
|
|
||||||
panel = key;
|
|
||||||
panelTitle = plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title")));
|
|
||||||
cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
|
||||||
foundPanel = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (foundPanel) {
|
|
||||||
//this is to avoid the plugin to continue looking when it was already found
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception fail){
|
|
||||||
//could not fetch all panel names (probably no panels exist)
|
|
||||||
}
|
|
||||||
if(panel == null){
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//there is already a runnable running for this player
|
ConfigurationSection cf = plugin.openPanels.getOpenPanel(p.getName()); //this is the panel cf section
|
||||||
assert p != null;
|
String panelName = plugin.openPanels.getOpenPanelName(p.getName()); //get panel name
|
||||||
if(plugin.panelRunning.contains(p.getName() + ";" + panel)){
|
|
||||||
return;
|
if(cf.contains("panelType")) {
|
||||||
}
|
if (cf.getString("panelType").equalsIgnoreCase("temporary")) {
|
||||||
plugin.panelRunning.add(p.getName() + ";" + panel);
|
|
||||||
if (plugin.config.contains("config.panel-snooper")) {
|
|
||||||
if (Objects.requireNonNull(plugin.config.getString("config.panel-snooper")).trim().equalsIgnoreCase("true")) {
|
|
||||||
Bukkit.getConsoleSender().sendMessage("[CommandPanels] " + p.getName() + " Opened " + panel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(cf.contains("panels." + panel + ".panelType")) {
|
|
||||||
if (cf.getString("panels." + panel + ".panelType").equalsIgnoreCase("temporary")) {
|
|
||||||
//do not update temporary panels, only default panels
|
//do not update temporary panels, only default panels
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final YamlConfiguration cfFinal = cf;
|
if (plugin.config.contains("config.panel-snooper")) {
|
||||||
final String fpanel = panel;
|
if (Objects.requireNonNull(plugin.config.getString("config.panel-snooper")).trim().equalsIgnoreCase("true")) {
|
||||||
final String fpanelTitle = panelTitle;
|
Bukkit.getConsoleSender().sendMessage("[CommandPanels] " + p.getName() + " Opened " + panelName);
|
||||||
ItemStack[] panelItemList = plugin.openGui(fpanel, p, cf,2, -1).getContents();
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final ConfigurationSection cfFinal = cf;
|
||||||
|
ItemStack[] panelItemList = plugin.createGUI.openGui(null, p, cf,2, -1).getContents();
|
||||||
ItemStack[] playerItemList = plugin.legacy.getStorageContents(p.getInventory());
|
ItemStack[] playerItemList = plugin.legacy.getStorageContents(p.getInventory());
|
||||||
new BukkitRunnable(){
|
new BukkitRunnable(){
|
||||||
int c = 0;
|
int c = 0;
|
||||||
@ -95,8 +62,8 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
int animatevalue = -1;
|
int animatevalue = -1;
|
||||||
if(cfFinal.contains("panels." + fpanel + ".animatevalue")){
|
if(cfFinal.contains("animatevalue")){
|
||||||
animatevalue = cfFinal.getInt("panels." + fpanel + ".animatevalue");
|
animatevalue = cfFinal.getInt("animatevalue");
|
||||||
}
|
}
|
||||||
//counter counts to refresh delay (in seconds) then restarts
|
//counter counts to refresh delay (in seconds) then restarts
|
||||||
if(c < Double.parseDouble(Objects.requireNonNull(plugin.config.getString("config.refresh-delay")).trim())){
|
if(c < Double.parseDouble(Objects.requireNonNull(plugin.config.getString("config.refresh-delay")).trim())){
|
||||||
@ -105,7 +72,7 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
c=0;
|
c=0;
|
||||||
}
|
}
|
||||||
//refresh here
|
//refresh here
|
||||||
if(p.getOpenInventory().getTitle().equals(fpanelTitle)){
|
if(plugin.openPanels.hasPanelOpen(p.getName(),panelName)){
|
||||||
if(c == 0) {
|
if(c == 0) {
|
||||||
//animation counter
|
//animation counter
|
||||||
if(animatevalue != -1) {
|
if(animatevalue != -1) {
|
||||||
@ -116,7 +83,7 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
plugin.openGui(fpanel, p, cfFinal, 0,animatecount);
|
plugin.createGUI.openGui(null, p, cfFinal, 0,animatecount);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//error opening gui
|
//error opening gui
|
||||||
}
|
}
|
||||||
@ -124,7 +91,7 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
}else{
|
}else{
|
||||||
if(Objects.requireNonNull(plugin.config.getString("config.stop-sound")).trim().equalsIgnoreCase("true")){
|
if(Objects.requireNonNull(plugin.config.getString("config.stop-sound")).trim().equalsIgnoreCase("true")){
|
||||||
try {
|
try {
|
||||||
p.stopSound(Sound.valueOf(Objects.requireNonNull(cfFinal.getString("panels." + fpanel + ".sound-on-open")).toUpperCase()));
|
p.stopSound(Sound.valueOf(Objects.requireNonNull(cfFinal.getString("sound-on-open")).toUpperCase()));
|
||||||
}catch(Exception sou){
|
}catch(Exception sou){
|
||||||
//skip
|
//skip
|
||||||
}
|
}
|
||||||
@ -158,13 +125,9 @@ public class Commandpanelrefresher implements Listener {
|
|||||||
//oof
|
//oof
|
||||||
}
|
}
|
||||||
this.cancel();
|
this.cancel();
|
||||||
if(p.getOpenInventory().getTitle().equals(fpanelTitle)) {
|
|
||||||
p.closeInventory();
|
|
||||||
}
|
|
||||||
plugin.panelRunning.remove(p.getName() + ";" + fpanel);
|
|
||||||
if (plugin.config.contains("config.panel-snooper")) {
|
if (plugin.config.contains("config.panel-snooper")) {
|
||||||
if (Objects.requireNonNull(plugin.config.getString("config.panel-snooper")).trim().equalsIgnoreCase("true")) {
|
if (Objects.requireNonNull(plugin.config.getString("config.panel-snooper")).trim().equalsIgnoreCase("true")) {
|
||||||
Bukkit.getConsoleSender().sendMessage("[CommandPanels] " + p.getName() + " Closed " + fpanel);
|
Bukkit.getConsoleSender().sendMessage("[CommandPanels] " + p.getName() + " Closed " + panelName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
145
src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java
Normal file
145
src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
package me.rockyhawk.commandpanels.openpanelsmanager;
|
||||||
|
|
||||||
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class OpenGUI {
|
||||||
|
CommandPanels plugin;
|
||||||
|
public OpenGUI(CommandPanels pl) {
|
||||||
|
this.plugin = pl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public Inventory openGui(String panels, Player p, ConfigurationSection pconfig, int onOpen, int animateValue) {
|
||||||
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
|
if (Integer.parseInt(Objects.requireNonNull(pconfig.getString("rows"))) < 7 && Integer.parseInt(Objects.requireNonNull(pconfig.getString("rows"))) > 0) {
|
||||||
|
Inventory i;
|
||||||
|
if (onOpen != 3) {
|
||||||
|
//use the regular inventory
|
||||||
|
i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("rows"))) * 9, plugin.papi(p, Objects.requireNonNull(pconfig.getString("title"))));
|
||||||
|
} else {
|
||||||
|
//this means it is the Editor window
|
||||||
|
i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("rows"))) * 9, "Editing Panel: " + panels);
|
||||||
|
}
|
||||||
|
String item = "";
|
||||||
|
|
||||||
|
String key;
|
||||||
|
for (Iterator var6 = Objects.requireNonNull(pconfig.getConfigurationSection("item")).getKeys(false).iterator(); var6.hasNext(); item = item + key + " ") {
|
||||||
|
key = (String) var6.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
item = item.trim();
|
||||||
|
int c;
|
||||||
|
for (c = 0; item.split("\\s").length - 1 >= c; ++c) {
|
||||||
|
if(item.equals("")){
|
||||||
|
//skip putting any items in the inventory if it is empty
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
String section = "";
|
||||||
|
//onOpen needs to not be 3 so the editor won't include hasperm and hasvalue, etc items
|
||||||
|
if (onOpen != 3) {
|
||||||
|
section = plugin.itemCreate.hasSection(pconfig.getConfigurationSection("item." + Integer.parseInt(item.split("\\s")[c])), p);
|
||||||
|
//This section is for animations below here: VISUAL ONLY
|
||||||
|
|
||||||
|
//check for if there is animations inside the items section
|
||||||
|
if (pconfig.contains("item." + item.split("\\s")[c] + section + ".animate" + animateValue)) {
|
||||||
|
//check for if it contains the animate that has the animvatevalue
|
||||||
|
if (pconfig.contains("item." + item.split("\\s")[c] + section + ".animate" + animateValue)) {
|
||||||
|
section = section + ".animate" + animateValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(pconfig.getConfigurationSection("item." + item.split("\\s")[c] + section)), p, onOpen != 3, onOpen != 3);
|
||||||
|
try {
|
||||||
|
i.setItem(Integer.parseInt(item.split("\\s")[c]), s);
|
||||||
|
} catch (ArrayIndexOutOfBoundsException var24) {
|
||||||
|
plugin.debug(var24);
|
||||||
|
if (plugin.debug) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " item: One of the items does not fit in the Panel!"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pconfig.contains("empty") && !Objects.equals(pconfig.getString("empty"), "AIR")) {
|
||||||
|
for (c = 0; Integer.parseInt(Objects.requireNonNull(pconfig.getString("rows"))) * 9 - 1 >= c; ++c) {
|
||||||
|
boolean found = false;
|
||||||
|
if(!item.equals("")) {
|
||||||
|
for (int f = 0; item.split("\\s").length - 1 >= f; ++f) {
|
||||||
|
if (Integer.parseInt(item.split("\\s")[f]) == c) {
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
ItemStack empty;
|
||||||
|
try {
|
||||||
|
short id = 0;
|
||||||
|
if(pconfig.contains("emptyID")){
|
||||||
|
id = Short.parseShort(pconfig.getString("emptyID"));
|
||||||
|
}
|
||||||
|
empty = new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(pconfig.getString("empty")).toUpperCase())), 1,id);
|
||||||
|
if (empty.getType() == Material.AIR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException | NullPointerException var26) {
|
||||||
|
plugin.debug(var26);
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " empty: " + pconfig.getString("empty")));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemMeta renamedMeta = empty.getItemMeta();
|
||||||
|
assert renamedMeta != null;
|
||||||
|
renamedMeta.setDisplayName(" ");
|
||||||
|
empty.setItemMeta(renamedMeta);
|
||||||
|
if (onOpen != 3) {
|
||||||
|
//only place empty items if not editing
|
||||||
|
i.setItem(c, empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (plugin.papi( Objects.requireNonNull(pconfig.getString("title"))).equals("Chest")) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " Title: Cannot be named Chest"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (plugin.papi( Objects.requireNonNull(pconfig.getString("title"))).contains("Editing Panel:")) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " Title: Cannot contain Editing Panel:"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (plugin.papi( Objects.requireNonNull(pconfig.getString("title"))).contains("Panel Settings:")) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " Title: Cannot contain Panel Settings:"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (plugin.papi( Objects.requireNonNull(pconfig.getString("title"))).contains("Item Settings:")) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " Title: Cannot contain Item Settings:"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (plugin.papi( Objects.requireNonNull(pconfig.getString("title"))).equals("Command Panels Editor")) {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " Title: Cannot be named Command Panels Editor"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (onOpen == 1 || onOpen == 3) {
|
||||||
|
//onOpen 1 is default and 3 is for the editor
|
||||||
|
p.openInventory(i);
|
||||||
|
} else if (onOpen == 0) {
|
||||||
|
//onOpen 0 will just refresh the panel
|
||||||
|
plugin.legacy.setStorageContents(p,plugin.legacy.getStorageContents(i));
|
||||||
|
} else if (onOpen == 2) {
|
||||||
|
//will return the inventory, not opening it at all
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
} else {
|
||||||
|
p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " rows: " + pconfig.getString("rows")));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
package me.rockyhawk.commandpanels.openpanelsmanager;
|
||||||
|
|
||||||
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class OpenPanelsLoader {
|
||||||
|
CommandPanels plugin;
|
||||||
|
public OpenPanelsLoader(CommandPanels pl) {
|
||||||
|
this.plugin = pl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
This is used as a less laggy and non title reliant way to determine which panels are open for specific players
|
||||||
|
The configuration section is opened directly
|
||||||
|
into the correct panel, so there is no need for the panel name
|
||||||
|
*/
|
||||||
|
public List<ConfigurationSection> openPanelsCF = new ArrayList<>(); //panel config section
|
||||||
|
public List<String[]> openPanelsPN = new ArrayList<>(); //PLayer Name, Panel Name
|
||||||
|
|
||||||
|
//this will return the panel CF based on the player, if it isn't there it returns null
|
||||||
|
public ConfigurationSection getOpenPanel(String playerName){
|
||||||
|
for(int i = 0; i < openPanelsCF.size(); i++){
|
||||||
|
if(openPanelsPN.get(i)[0].equals(playerName)){
|
||||||
|
return openPanelsCF.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//this will return the panel CF based on the player, if it isn't there it returns null
|
||||||
|
public String getOpenPanelName(String playerName){
|
||||||
|
for(int i = 0; i < openPanelsCF.size(); i++){
|
||||||
|
if(openPanelsPN.get(i)[0].equals(playerName)){
|
||||||
|
return openPanelsPN.get(i)[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//true if the player has a panel open
|
||||||
|
public boolean hasPanelOpen(String playerName, String panelName){
|
||||||
|
for(String[] temp : openPanelsPN){
|
||||||
|
if(temp[0].equals(playerName) && temp[1].equals(panelName)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//true if the player has a panel open
|
||||||
|
public boolean hasPanelOpen(String playerName){
|
||||||
|
for(String[] temp : openPanelsPN){
|
||||||
|
if(temp[0].equals(playerName)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void openPanelForLoader(String playerName, String panelName, ConfigurationSection cf){
|
||||||
|
//just to make sure there are no duplicates
|
||||||
|
for(int i = 0; i < openPanelsCF.size(); i++){
|
||||||
|
if(openPanelsPN.get(i)[0].equals(playerName) && !openPanelsPN.get(i)[1].equals(playerName)){
|
||||||
|
openPanelsCF.remove(i);
|
||||||
|
openPanelsPN.remove(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
openPanelsCF.add(cf);
|
||||||
|
openPanelsPN.add(new String[]{playerName,panelName});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closePanelForLoader(String playerName, String panelName){
|
||||||
|
for(int i = 0; i < openPanelsCF.size(); i++){
|
||||||
|
if(Arrays.equals(openPanelsPN.get(i), new String[]{playerName, panelName})){
|
||||||
|
openPanelsCF.remove(i);
|
||||||
|
openPanelsPN.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package me.rockyhawk.commandpanels.openpanelsmanager;
|
||||||
|
|
||||||
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
|
public class UtilsPanelsLoader implements Listener {
|
||||||
|
CommandPanels plugin;
|
||||||
|
public UtilsPanelsLoader(CommandPanels pl) {
|
||||||
|
this.plugin = pl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerClosePanel(InventoryCloseEvent e){
|
||||||
|
for(int i = 0; i < plugin.openPanels.openPanelsPN.size(); i++){
|
||||||
|
if(plugin.openPanels.openPanelsPN.get(i)[0].equals(e.getPlayer().getName())){
|
||||||
|
plugin.openPanels.openPanelsPN.remove(i);
|
||||||
|
plugin.openPanels.openPanelsCF.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerClosePanel(PlayerQuitEvent e){
|
||||||
|
for(int i = 0; i < plugin.openPanels.openPanelsPN.size(); i++){
|
||||||
|
if(plugin.openPanels.openPanelsPN.get(i)[0].equals(e.getPlayer().getName())){
|
||||||
|
plugin.openPanels.openPanelsPN.remove(i);
|
||||||
|
plugin.openPanels.openPanelsCF.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package me.rockyhawk.commandpanels.openwithitem;
|
|||||||
|
|
||||||
import me.rockyhawk.commandpanels.CommandPanels;
|
import me.rockyhawk.commandpanels.CommandPanels;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -38,16 +39,16 @@ public class UtilsOpenWithItem implements Listener {
|
|||||||
if (e.getRawSlot() == -999) {return;}
|
if (e.getRawSlot() == -999) {return;}
|
||||||
if (e.getSlotType() != InventoryType.SlotType.QUICKBAR) {return;}
|
if (e.getSlotType() != InventoryType.SlotType.QUICKBAR) {return;}
|
||||||
for(String[] panelName : plugin.panelNames){
|
for(String[] panelName : plugin.panelNames){
|
||||||
YamlConfiguration tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1]))));
|
ConfigurationSection tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + panelName[0]);
|
||||||
String tempName = panelName[0];
|
String tempName = panelName[0];
|
||||||
if(tempFile.contains("panels." + tempName + ".open-with-item") && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.PLAYER) {
|
if(tempFile.contains("open-with-item") && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.PLAYER) {
|
||||||
try{
|
try{
|
||||||
assert clicked != null;
|
assert clicked != null;
|
||||||
if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false, true).getType()), 1).getType()) {
|
if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("open-with-item")), p, false, true).getType()), 1).getType()) {
|
||||||
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) {
|
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(tempFile.getString("open-with-item.name")))))) {
|
||||||
//cancel the click item event
|
//cancel the click item event
|
||||||
if (tempFile.contains("panels." + tempName + ".open-with-item.stationary")) {
|
if (tempFile.contains("open-with-item.stationary")) {
|
||||||
if (e.getSlot() == Integer.parseInt(Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.stationary")))) {
|
if (e.getSlot() == Integer.parseInt(Objects.requireNonNull(tempFile.getString("open-with-item.stationary")))) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
p.updateInventory();
|
p.updateInventory();
|
||||||
plugin.openVoids.openCommandPanel(p,p,tempName,tempFile,false);
|
plugin.openVoids.openCommandPanel(p,p,tempName,tempFile,false);
|
||||||
@ -82,19 +83,19 @@ public class UtilsOpenWithItem implements Listener {
|
|||||||
}
|
}
|
||||||
ItemStack clicked = e.getItem();
|
ItemStack clicked = e.getItem();
|
||||||
Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
YamlConfiguration tempFile;
|
ConfigurationSection tempFile;
|
||||||
String tempName;
|
String tempName;
|
||||||
for(String[] panelName : plugin.panelNames){
|
for(String[] panelName : plugin.panelNames){
|
||||||
tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1]))));
|
tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + panelName[0]);
|
||||||
tempName = panelName[0];
|
tempName = panelName[0];
|
||||||
if(tempFile.contains("panels." + tempName + ".open-with-item")) {
|
if(tempFile.contains("open-with-item")) {
|
||||||
try{
|
try{
|
||||||
assert clicked != null;
|
assert clicked != null;
|
||||||
if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false, true).getType()), 1).getType()) {
|
if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("open-with-item")), p, false, true).getType()), 1).getType()) {
|
||||||
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi(Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) {
|
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi(Objects.requireNonNull(tempFile.getString("open-with-item.name")))))) {
|
||||||
//cancel the click item event
|
//cancel the click item event
|
||||||
if (tempFile.contains("panels." + tempName + ".open-with-item.stationary")) {
|
if (tempFile.contains("open-with-item.stationary")) {
|
||||||
if (p.getInventory().getHeldItemSlot() != Integer.parseInt(Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.stationary")))) {
|
if (p.getInventory().getHeldItemSlot() != Integer.parseInt(Objects.requireNonNull(tempFile.getString("open-with-item.stationary")))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,33 +20,32 @@ public class PanelBlockOnClick implements Listener {
|
|||||||
}
|
}
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onInteract(PlayerInteractEvent e){
|
public void onInteract(PlayerInteractEvent e){
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
|
||||||
//if panel blocks are disabled return
|
//if panel blocks are disabled return
|
||||||
if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){
|
if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
if(e.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
||||||
Block block = e.getClickedBlock();
|
return;
|
||||||
Player p = e.getPlayer();
|
}
|
||||||
assert block != null;
|
Block block = e.getClickedBlock();
|
||||||
if(plugin.blockConfig.contains("blocks")){
|
Player p = e.getPlayer();
|
||||||
if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){
|
assert block != null;
|
||||||
return;
|
if(!plugin.blockConfig.contains("blocks")){
|
||||||
}
|
return;
|
||||||
for (String configLocation : Objects.requireNonNull(plugin.blockConfig.getConfigurationSection("blocks")).getKeys(false)) {
|
}
|
||||||
String[] loc = configLocation.split("_");
|
if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){
|
||||||
Location tempLocation = new Location(plugin.getServer().getWorld(loc[0].replaceAll("%dash%","_")),Double.parseDouble(loc[1]),Double.parseDouble(loc[2]),Double.parseDouble(loc[3]));
|
return;
|
||||||
if(tempLocation.equals(block.getLocation())){
|
}
|
||||||
e.setCancelled(true);
|
for (String configLocation : Objects.requireNonNull(plugin.blockConfig.getConfigurationSection("blocks")).getKeys(false)) {
|
||||||
YamlConfiguration cf = null;
|
String[] loc = configLocation.split("_");
|
||||||
String panelName = "";
|
Location tempLocation = new Location(plugin.getServer().getWorld(loc[0].replaceAll("%dash%","_")),Double.parseDouble(loc[1]),Double.parseDouble(loc[2]),Double.parseDouble(loc[3]));
|
||||||
for(String[] temp : plugin.panelNames){
|
if(tempLocation.equals(block.getLocation())){
|
||||||
if(temp[0].equals(plugin.blockConfig.getString("blocks." + configLocation + ".panel"))){
|
e.setCancelled(true);
|
||||||
panelName = temp[0];
|
for(String[] temp : plugin.panelNames){
|
||||||
cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(temp[1]))));
|
if(temp[0].equals(plugin.blockConfig.getString("blocks." + configLocation + ".panel"))){
|
||||||
}
|
String panelName = temp[0];
|
||||||
}
|
YamlConfiguration cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(temp[1]))));
|
||||||
plugin.openVoids.openCommandPanel(p,p,panelName,cf,false);
|
plugin.openVoids.openCommandPanel(p,p,panelName,cf.getConfigurationSection("panels." + panelName),false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,28 +36,11 @@ public class Updater {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
//major.minor.patch for variables
|
|
||||||
ArrayList<Integer> updateOnlineVersion = new ArrayList<>();
|
|
||||||
ArrayList<Integer> updateCurrentVersion = new ArrayList<>();
|
|
||||||
for(String key : plugin.getDescription().getVersion().split("\\.")){
|
|
||||||
updateCurrentVersion.add(Integer.parseInt(key));
|
|
||||||
}
|
|
||||||
for(String key : gitVersion.split("\\.")){
|
|
||||||
updateOnlineVersion.add(Integer.parseInt(key));
|
|
||||||
}
|
|
||||||
|
|
||||||
//if update is true there is a new update
|
//if update is true there is a new update
|
||||||
boolean update = false;
|
boolean update = false;
|
||||||
if(updateOnlineVersion.get(0) > updateCurrentVersion.get(0)){
|
if(!gitVersion.equals(plugin.getDescription().getVersion())){
|
||||||
update = true;
|
update = true;
|
||||||
}else {
|
|
||||||
if (updateOnlineVersion.get(1) > updateCurrentVersion.get(1)) {
|
|
||||||
update = true;
|
|
||||||
}else{
|
|
||||||
if (updateOnlineVersion.get(2) > updateCurrentVersion.get(2)) {
|
|
||||||
update = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(update){
|
if(update){
|
||||||
|
Loading…
Reference in New Issue
Block a user