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 main: me.rockyhawk.commandPanels.commandpanels
name: CommandPanels name: CommandPanels
author: RockyHawk author: RockyHawk

View File

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

View File

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

View File

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