forked from Upstream/CommandPanels
3.4.0 Updates
This commit is contained in:
parent
3cbddd86b3
commit
69ceff41cb
@ -1,4 +1,4 @@
|
|||||||
version: 3.3.1
|
version: 3.4.0
|
||||||
main: me.rockyhawk.commandPanels.commandpanels
|
main: me.rockyhawk.commandPanels.commandpanels
|
||||||
name: CommandPanels
|
name: CommandPanels
|
||||||
author: RockyHawk
|
author: RockyHawk
|
||||||
|
@ -55,6 +55,7 @@ public class commandpanels extends JavaPlugin {
|
|||||||
public boolean update = false;
|
public boolean update = false;
|
||||||
public boolean debug = false;
|
public boolean debug = false;
|
||||||
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<String> panelRunning = new ArrayList();
|
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();
|
||||||
|
@ -38,9 +38,18 @@ public class commandpanelsgenerate implements CommandExecutor {
|
|||||||
}catch(Exception exc){
|
}catch(Exception exc){
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please use integer from 1-6."));
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please use integer from 1-6."));
|
||||||
}
|
}
|
||||||
}else{
|
return true;
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpg [rows]"));
|
}else if (args.length == 0) {
|
||||||
|
if (this.plugin.generateMode.contains(p)) {
|
||||||
|
this.plugin.generateMode.remove(p);
|
||||||
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Generate Mode Disabled!"));
|
||||||
|
} else {
|
||||||
|
this.plugin.generateMode.add(p);
|
||||||
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Generate Mode Enabled!"));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Usage: /cpg [rows]"));
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms")));
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms")));
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
package me.rockyhawk.commandPanels.generatePanels;
|
package me.rockyhawk.commandPanels.generatePanels;
|
||||||
|
|
||||||
import me.rockyhawk.commandPanels.commandpanels;
|
import me.rockyhawk.commandPanels.commandpanels;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Chest;
|
||||||
|
import org.bukkit.block.DoubleChest;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
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;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.inventory.*;
|
import org.bukkit.event.inventory.*;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
|
||||||
@ -26,31 +32,49 @@ public class newGenUtils implements Listener {
|
|||||||
}
|
}
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onInventoryClose(InventoryCloseEvent e) {
|
public void onInventoryClose(InventoryCloseEvent e) {
|
||||||
|
//reload panel files to avoid conflicts
|
||||||
|
plugin.reloadPanelFiles();
|
||||||
String tag = plugin.config.getString("config.format.tag") + " ";
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
Player p = (Player)e.getPlayer();
|
Player p = (Player)e.getPlayer();
|
||||||
if (!ChatColor.stripColor(e.getView().getTitle()).equals("Generate New Panel")){
|
if (!ChatColor.stripColor(e.getView().getTitle()).equals("Generate New Panel")){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
generatePanel(p,e.getInventory());
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerQuit(PlayerQuitEvent e) {
|
||||||
//reload panel files to avoid conflicts
|
//reload panel files to avoid conflicts
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
Boolean pexist = true;
|
Player p = e.getPlayer();
|
||||||
//pexist is true if panels exist
|
//if the player is in generate mode, remove generate mode
|
||||||
ArrayList<String> apanels = new ArrayList<String>(); //all panels from all files (panel names)
|
this.plugin.generateMode.remove(p);
|
||||||
try {
|
for(int o = 0; this.plugin.userInputStrings.size() > o; ++o) {
|
||||||
for(String fileName : plugin.panelFiles) { //will loop through all the files in folder
|
if (this.plugin.userInputStrings.get(o)[0].equals(e.getPlayer().getName())) {
|
||||||
YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName));
|
this.plugin.userInputStrings.remove(o);
|
||||||
if(!plugin.checkPanels(temp)){
|
break;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
apanels.addAll(Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false));
|
|
||||||
}
|
}
|
||||||
}catch(Exception fail){
|
|
||||||
//could not fetch all panel names (probably no panels exist)
|
|
||||||
pexist = false;
|
|
||||||
}
|
}
|
||||||
ItemStack[] cont = e.getInventory().getContents();
|
}
|
||||||
|
@EventHandler
|
||||||
|
public void onInventoryOpenEvent(InventoryOpenEvent e) {
|
||||||
|
HumanEntity h = e.getPlayer();
|
||||||
|
Player p = Bukkit.getPlayer(h.getName());
|
||||||
|
if ((e.getInventory().getHolder() instanceof Chest || e.getInventory().getHolder() instanceof DoubleChest) && this.plugin.generateMode.contains(p)) {
|
||||||
|
this.plugin.generateMode.remove(p);
|
||||||
|
generatePanel(p,e.getInventory());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void generatePanel(Player p, Inventory inv){
|
||||||
|
ItemStack[] cont = inv.getContents();
|
||||||
|
String tag = plugin.config.getString("config.format.tag") + " ";
|
||||||
|
ArrayList<String> apanels = new ArrayList();
|
||||||
|
for(String[] panelNames : plugin.panelNames){
|
||||||
|
//create list of names that aren't a String list
|
||||||
|
apanels.add(panelNames[0]);
|
||||||
|
}
|
||||||
|
//this is done to make sure the inventories are not empty
|
||||||
boolean foundItem = false;
|
boolean foundItem = false;
|
||||||
for(ItemStack temp : cont){
|
for(ItemStack temp : inv.getContents()){
|
||||||
if(temp != null){
|
if(temp != null){
|
||||||
foundItem = true;
|
foundItem = true;
|
||||||
break;
|
break;
|
||||||
@ -64,18 +88,13 @@ public class newGenUtils implements Listener {
|
|||||||
YamlConfiguration file;
|
YamlConfiguration file;
|
||||||
//String date: is what the panel and file name will be called
|
//String date: is what the panel and file name will be called
|
||||||
String date = "panel-1";
|
String date = "panel-1";
|
||||||
if(pexist){
|
for(int count = 1; (Arrays.asList(Objects.requireNonNull(plugin.panelsf.list())).contains("panel-" + count + ".yml")) || (apanels.contains("panel-" + count)); count++){
|
||||||
for(int count = 1; (Arrays.asList(plugin.panelsf.list()).contains("panel-" + count + ".yml")) || (apanels.contains("panel-" + count)); count++){
|
date = "panel-" + (count+1);
|
||||||
date = "panel-" + (count+1);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
date = "panel-1";
|
|
||||||
}
|
}
|
||||||
//String date = new SimpleDateFormat("dd-HH-mm-ss").format(new Date()); (OLD)
|
|
||||||
File folder = new File(plugin.getDataFolder() + File.separator + "panels");
|
File folder = new File(plugin.getDataFolder() + File.separator + "panels");
|
||||||
file = YamlConfiguration.loadConfiguration(new File(folder + File.separator + date + ".yml"));
|
file = YamlConfiguration.loadConfiguration(new File(folder + File.separator + date + ".yml"));
|
||||||
file.addDefault("panels." + date + ".perm", "default");
|
file.addDefault("panels." + date + ".perm", "default");
|
||||||
file.addDefault("panels." + date + ".rows", e.getInventory().getSize()/9);
|
file.addDefault("panels." + date + ".rows", inv.getSize()/9);
|
||||||
file.addDefault("panels." + date + ".title", "&8Generated " + date);
|
file.addDefault("panels." + date + ".title", "&8Generated " + date);
|
||||||
file.addDefault("panels." + date + ".command", date);
|
file.addDefault("panels." + date + ".command", date);
|
||||||
file.addDefault("panels." + date + ".empty", "BLACK_STAINED_GLASS_PANE");
|
file.addDefault("panels." + date + ".empty", "BLACK_STAINED_GLASS_PANE");
|
||||||
@ -104,19 +123,19 @@ public class newGenUtils implements Listener {
|
|||||||
} catch (Exception er) {
|
} catch (Exception er) {
|
||||||
//don't add the effect
|
//don't add the effect
|
||||||
}
|
}
|
||||||
file.addDefault("panels." + date + ".item." + i + ".name", cont[i].getItemMeta().getDisplayName());
|
file.addDefault("panels." + date + ".item." + i + ".name", Objects.requireNonNull(cont[i].getItemMeta()).getDisplayName());
|
||||||
file.addDefault("panels." + date + ".item." + i + ".lore", cont[i].getItemMeta().getLore());
|
file.addDefault("panels." + date + ".item." + i + ".lore", Objects.requireNonNull(cont[i].getItemMeta()).getLore());
|
||||||
}catch(Exception n){
|
}catch(Exception n){
|
||||||
//skip over an item that spits an error
|
//skip over an item that spits an error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file.options().copyDefaults(true);
|
file.options().copyDefaults(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
file.save(new File(folder + File.separator + date + ".yml"));
|
file.save(new File(plugin.panelsf + File.separator + date + ".yml"));
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Saved Generated File To: " + date + ".yml"));
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Saved Generated File To: " + date + ".yml"));
|
||||||
} catch (IOException s) {
|
} catch (IOException var16) {
|
||||||
plugin.debug(s);
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could Not Save Generated Panel!"));
|
||||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Could Not Save Generated Panel!"));
|
|
||||||
}
|
}
|
||||||
plugin.reloadPanelFiles();
|
plugin.reloadPanelFiles();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user