v3.14.1.4

This commit is contained in:
rockyhawk64 2020-12-07 20:36:01 +11:00
parent 2d55159924
commit 7b59112ed4
8 changed files with 120 additions and 162 deletions

View File

@ -1,4 +1,4 @@
version: 3.14.1.3 version: 3.14.1.4
main: me.rockyhawk.commandpanels.CommandPanels main: me.rockyhawk.commandpanels.CommandPanels
name: CommandPanels name: CommandPanels
author: RockyHawk author: RockyHawk

View File

@ -32,6 +32,7 @@ import me.rockyhawk.commandpanels.legacy.PlayerHeads;
import me.rockyhawk.commandpanels.openpanelsmanager.OpenGUI; import me.rockyhawk.commandpanels.openpanelsmanager.OpenGUI;
import me.rockyhawk.commandpanels.openpanelsmanager.OpenPanelsLoader; import me.rockyhawk.commandpanels.openpanelsmanager.OpenPanelsLoader;
import me.rockyhawk.commandpanels.openpanelsmanager.UtilsPanelsLoader; import me.rockyhawk.commandpanels.openpanelsmanager.UtilsPanelsLoader;
import me.rockyhawk.commandpanels.openwithitem.HotbarItemLoader;
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;
@ -79,6 +80,7 @@ public class CommandPanels extends JavaPlugin {
public OpenPanelsLoader openPanels = new OpenPanelsLoader(this); public OpenPanelsLoader openPanels = new OpenPanelsLoader(this);
public OpenGUI createGUI = new OpenGUI(this); public OpenGUI createGUI = new OpenGUI(this);
public CommandPlaceholderLoader customCommand = new CommandPlaceholderLoader(this); public CommandPlaceholderLoader customCommand = new CommandPlaceholderLoader(this);
public HotbarItemLoader hotbar = new HotbarItemLoader(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
@ -191,6 +193,9 @@ public class CommandPanels extends JavaPlugin {
//load panelFiles //load panelFiles
reloadPanelFiles(); reloadPanelFiles();
//do hotbar items
hotbar.reloadHotbarSlots();
//add custom charts bStats //add custom charts bStats
Metrics metrics = new Metrics(this); Metrics metrics = new Metrics(this);
metrics.addCustomChart(new Metrics.SingleLineChart("panels_amount", new Callable<Integer>() { metrics.addCustomChart(new Metrics.SingleLineChart("panels_amount", new Callable<Integer>() {

View File

@ -314,10 +314,9 @@ public class OpenEditorGuis {
temp = new ItemStack(Material.BEDROCK, 1); temp = new ItemStack(Material.BEDROCK, 1);
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 0 to 33");
if (cf.contains("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
int location = cf.getInt("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));
} }

View File

@ -32,6 +32,9 @@ public class Commandpanelsreload implements CommandExecutor {
//check for duplicates //check for duplicates
plugin.checkDuplicatePanel(sender); plugin.checkDuplicatePanel(sender);
//reloadHotbarSlots
plugin.hotbar.reloadHotbarSlots();
//add custom commands //add custom commands
registerCommands(); registerCommands();
@ -50,7 +53,14 @@ public class Commandpanelsreload implements CommandExecutor {
public void registerCommands(){ public void registerCommands(){
ConfigurationSection tempFile; ConfigurationSection tempFile;
File commandsLoc = new File("commands.yml"); File commandsLoc = new File("commands.yml");
YamlConfiguration cmdCF = YamlConfiguration.loadConfiguration(commandsLoc); YamlConfiguration cmdCF;
try {
cmdCF = YamlConfiguration.loadConfiguration(commandsLoc);
}catch(Exception e){
//could not access the commands.yml file
plugin.debug(e);
return;
}
//remove old commandpanels commands //remove old commandpanels commands
for(String existingCommands : cmdCF.getConfigurationSection("aliases").getKeys(false)){ for(String existingCommands : cmdCF.getConfigurationSection("aliases").getKeys(false)){
if(cmdCF.getStringList("aliases." + existingCommands).get(0).equals("commandpanel")){ if(cmdCF.getStringList("aliases." + existingCommands).get(0).equals("commandpanel")){

View File

@ -375,9 +375,9 @@ public class EditorUserInput implements Listener {
} }
try { try {
int loc = Integer.parseInt(e.getMessage()); int loc = Integer.parseInt(e.getMessage());
if (loc >= 10 || loc <= 0) { if (loc >= 34 || loc <= -1) {
//if the number isn't between 1-9 //if the number isn't between 1-9
p.sendMessage(plugin.papi( plugin.tag + ChatColor.GREEN + "Choose an integer between 1 to 9!")); p.sendMessage(plugin.papi( plugin.tag + ChatColor.GREEN + "Choose an integer between 0 to 33!"));
return; return;
} }
p.sendMessage(plugin.papi( plugin.tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!")); p.sendMessage(plugin.papi( plugin.tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!"));

View File

@ -0,0 +1,79 @@
package me.rockyhawk.commandpanels.openwithitem;
import me.rockyhawk.commandpanels.CommandPanels;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.io.File;
import java.util.ArrayList;
import java.util.Objects;
public class HotbarItemLoader {
CommandPanels plugin;
public HotbarItemLoader(CommandPanels pl) {
this.plugin = pl;
}
//stationary slots 0-8 are the hotbar, using 9-27 for inside the inventory
ArrayList<int[]> stationaryItems = new ArrayList<>(); //{slot 0-33, index of panelNames}
//will compile the ArrayList {slot 0-4, index of panelNames}
public void reloadHotbarSlots() {
stationaryItems = new ArrayList<>();
int i = 0;
for (String[] panelName : plugin.panelNames) {
ConfigurationSection tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + panelName[0]);
if(tempFile.contains("open-with-item.stationary")){
stationaryItems.add(new int[]{tempFile.getInt("open-with-item.stationary"),i});
}
i++;
}
}
//return true if found
public boolean stationaryExecute(int slot, Player p, boolean openPanel){
for(int[] temp : stationaryItems){
if(slot == temp[0]){
if(openPanel) {
String panelName = plugin.panelNames.get(temp[1])[0];
ConfigurationSection tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(plugin.panelNames.get(temp[1])[1])))).getConfigurationSection("panels." + panelName);
if (plugin.openPanels.hasPanelOpen(p.getName())) {
plugin.openPanels.skipPanels.add(p.getName());
}
plugin.openVoids.openCommandPanel(p, p, panelName, tempFile, false);
}
return true;
}
}
return false;
}
//return true if found
public boolean itemCheckExecute(ItemStack invItem, Player p, boolean openPanel){
for(String[] panelName : plugin.panelNames) {
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];
if(tempFile.contains("open-with-item")){
ItemStack panelItem = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("open-with-item")), p, false, true);
if(invItem != null && panelItem != null) {
panelItem.setAmount(1);
invItem.setAmount(1);
}else{
return false;
}
if(panelItem.isSimilar(invItem)){
if(openPanel) {
if (plugin.openPanels.hasPanelOpen(p.getName())) {
plugin.openPanels.skipPanels.add(p.getName());
}
plugin.openVoids.openCommandPanel(p, p, tempName, tempFile, false);
}
return true;
}
}
}
return false;
}
}

View File

@ -1,17 +1,10 @@
package me.rockyhawk.commandpanels.openwithitem; package me.rockyhawk.commandpanels.openwithitem;
import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.CommandPanels;
import org.bukkit.Material;
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;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerSwapHandItemsEvent; import org.bukkit.event.player.PlayerSwapHandItemsEvent;
import org.bukkit.inventory.ItemStack;
import java.io.File;
import java.util.Iterator;
import java.util.Objects;
public class SwapItemEvent implements Listener { public class SwapItemEvent implements Listener {
CommandPanels plugin; CommandPanels plugin;
@ -25,47 +18,9 @@ public class SwapItemEvent implements Listener {
return; return;
} }
Player p = e.getPlayer(); Player p = e.getPlayer();
try { if(plugin.hotbar.itemCheckExecute(e.getOffHandItem(),p,false)){
if (plugin.panelFiles == null) {
return;
}
}catch(Exception b){
return;
}
String tpanels; //tpanels is the temp to check through the files
ItemStack clicked = e.getOffHandItem();
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
String key;
tpanels = "";
if(!plugin.checkPanels(temp)){
continue;
}
for (Iterator var10 = Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") {
key = (String) var10.next();
if(temp.contains("panels." + key + ".open-with-item")){
assert clicked != null;
if(clicked.getType() != Material.AIR) {
//if loop has material first to stop 1.12.2 from spitting errors
//try and catch loop to stop errors with the same material type but different name
try {
if (clicked.getType() == new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.material")))), 1).getType()) {
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.name")))))) {
//cancel the click item event
if(temp.contains("panels." + key + ".open-with-item.stationary")){
if(p.getInventory().getHeldItemSlot() == Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){
e.setCancelled(true); e.setCancelled(true);
} p.updateInventory();
}
return;
}
}
}catch(NullPointerException | IllegalArgumentException n){
plugin.debug(n);
}
}
}
}
} }
} }
} }

View File

@ -3,10 +3,8 @@ package me.rockyhawk.commandpanels.openwithitem;
import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.ioclasses.GetItemInHand; import me.rockyhawk.commandpanels.ioclasses.GetItemInHand;
import me.rockyhawk.commandpanels.ioclasses.GetItemInHand_Legacy; import me.rockyhawk.commandpanels.ioclasses.GetItemInHand_Legacy;
import me.rockyhawk.commandpanels.ioclasses.Sequence_1_14;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
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;
@ -15,7 +13,6 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -36,39 +33,17 @@ public class UtilsOpenWithItem implements Listener {
//if none of the panels have open-with-item //if none of the panels have open-with-item
return; return;
} }
ItemStack clicked = e.getCurrentItem();
Player p = (Player)e.getWhoClicked(); Player p = (Player)e.getWhoClicked();
//get the item clicked, then loop through panel names after action isn't nothing //get the item clicked, then loop through panel names after action isn't nothing
if(e.getAction() == InventoryAction.NOTHING){return;} if(e.getAction() == InventoryAction.NOTHING){return;}
if (e.getRawSlot() == -999) {return;} if(plugin.hotbar.stationaryExecute(e.getSlot(),p,true)){
if (e.getSlotType() != InventoryType.SlotType.QUICKBAR) {return;}
for(String[] panelName : plugin.panelNames){
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];
if(tempFile.contains("open-with-item") && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.PLAYER) {
try{
assert clicked != null;
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("open-with-item.name")))))) {
//cancel the click item event
if (tempFile.contains("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();
if(plugin.openPanels.hasPanelOpen(p.getName())) {
plugin.openPanels.skipPanels.add(p.getName());
}
plugin.openVoids.openCommandPanel(p,p,tempName,tempFile,false);
return; return;
} }
} if(plugin.hotbar.itemCheckExecute(e.getCurrentItem(),p,false) || plugin.hotbar.itemCheckExecute(e.getCursor(),p,false) || plugin.hotbar.stationaryExecute(e.getHotbarButton(),p,false)){
return; e.setCancelled(true);
} p.updateInventory();
}
}catch(NullPointerException cancel){
//do nothing skip item
}
}
} }
} }
@EventHandler @EventHandler
@ -82,40 +57,13 @@ public class UtilsOpenWithItem implements Listener {
if(e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK || Objects.requireNonNull(e.getItem()).getType() == Material.AIR){ if(e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK || Objects.requireNonNull(e.getItem()).getType() == Material.AIR){
return; return;
} }
if (plugin.panelFiles == null) {
return;
}
}catch(Exception b){ }catch(Exception b){
return; return;
} }
ItemStack clicked = e.getItem();
Player p = e.getPlayer(); Player p = e.getPlayer();
ConfigurationSection tempFile; if(plugin.hotbar.itemCheckExecute(e.getItem(),p,true)){
String tempName;
for(String[] panelName : plugin.panelNames){
tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + panelName[0]);
tempName = panelName[0];
if(tempFile.contains("open-with-item")) {
try{
assert clicked != null;
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("open-with-item.name")))))) {
//cancel the click item event
if (tempFile.contains("open-with-item.stationary")) {
if (p.getInventory().getHeldItemSlot() != Integer.parseInt(Objects.requireNonNull(tempFile.getString("open-with-item.stationary")))) {
return;
}
}
e.setCancelled(true); e.setCancelled(true);
p.updateInventory(); p.updateInventory();
plugin.openVoids.openCommandPanel(p,p,tempName,tempFile,false);
return;
}
}
}catch(NullPointerException cancel){
//do nothing skip item
}
}
} }
} }
@EventHandler @EventHandler
@ -162,7 +110,7 @@ public class UtilsOpenWithItem implements Listener {
if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) { if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) {
ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true);
if(temp.contains("panels." + key + ".open-with-item.stationary")) { if(temp.contains("panels." + key + ".open-with-item.stationary")) {
if (0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))) { if (0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 33 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))) {
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s); p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s);
} }
} }
@ -203,7 +151,7 @@ public class UtilsOpenWithItem implements Listener {
} }
if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) { if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) {
ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true);
if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 33 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s); p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s);
} }
} }
@ -275,7 +223,7 @@ public class UtilsOpenWithItem implements Listener {
} }
} }
ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); ItemStack s = plugin.itemCreate.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true);
if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 33 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s); p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s);
} }
}else{ }else{
@ -287,7 +235,7 @@ public class UtilsOpenWithItem implements Listener {
continue; continue;
} }
plugin.setName(s, temp.getString("panels." + key + ".open-with-item.name"), temp.getStringList("panels." + key + ".open-with-item.lore"),p,true, true); plugin.setName(s, temp.getString("panels." + key + ".open-with-item.name"), temp.getStringList("panels." + key + ".open-with-item.lore"),p,true, true);
if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 33 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){
try { try {
if (Objects.requireNonNull(p.getInventory().getItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))))).isSimilar(s)) { if (Objects.requireNonNull(p.getInventory().getItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))))).isSimilar(s)) {
p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), null); p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), null);
@ -347,53 +295,15 @@ public class UtilsOpenWithItem implements Listener {
} }
//cancel everything if holding item (item frames eg) //cancel everything if holding item (item frames eg)
Player p = e.getPlayer(); Player p = e.getPlayer();
try {
if (plugin.panelFiles == null) {
return;
}
}catch(Exception b){
return;
}
ItemStack clicked; ItemStack clicked;
if(Bukkit.getVersion().contains("1.8")){ if(Bukkit.getVersion().contains("1.8")){
clicked = new GetItemInHand_Legacy(plugin).itemInHand(p); clicked = new GetItemInHand_Legacy(plugin).itemInHand(p);
}else{ }else{
clicked = new GetItemInHand(plugin).itemInHand(p); clicked = new GetItemInHand(plugin).itemInHand(p);
} }
if(plugin.hotbar.itemCheckExecute(clicked,p,true)){
String tempName;
ConfigurationSection tempFile;
for(String[] panelName : plugin.panelNames){
tempName = panelName[0];
tempFile = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(panelName[1])))).getConfigurationSection("panels." + tempName);
if (tempFile.contains("open-with-item")) {
if (clicked.getType() != Material.AIR) {
//if loop has material first to stop 1.12.2 from spitting errors
//try and catch loop to stop errors with the same material type but different name
try {
if (clicked.getType() == new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(tempFile.getString("open-with-item.material")))), 1).getType()) {
if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(tempFile.getString("open-with-item.name")))))) {
//cancel the click item event
if (tempFile.contains("open-with-item.stationary")) {
if (p.getInventory().getHeldItemSlot() == Integer.parseInt(Objects.requireNonNull(tempFile.getString("open-with-item.stationary")))) {
e.setCancelled(true); e.setCancelled(true);
p.updateInventory(); p.updateInventory();
if(plugin.openPanels.hasPanelOpen(p.getName())) {
plugin.openPanels.skipPanels.add(p.getName());
}
plugin.openVoids.openCommandPanel(p,p,tempName,tempFile,false);
}
}
return;
}
}
} catch (NullPointerException | IllegalArgumentException n) {
plugin.debug(n);
}
}
}
} }
} }
} }