3.4.0 Updates

This commit is contained in:
rockyhawk64 2020-07-13 23:12:01 +10:00
parent 3cbddd86b3
commit 69ceff41cb
4 changed files with 62 additions and 33 deletions

View File

@ -1,4 +1,4 @@
version: 3.3.1
version: 3.4.0
main: me.rockyhawk.commandPanels.commandpanels
name: CommandPanels
author: RockyHawk

View File

@ -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();

View File

@ -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")));

View File

@ -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();
}