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