3.12.1 Fixes

This commit is contained in:
rockyhawk64 2020-10-05 23:09:10 +11:00
parent 5104d8e93f
commit b87a45130e
3 changed files with 21 additions and 6 deletions

View File

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

View File

@ -376,6 +376,12 @@ public class EditorUserInput implements Listener {
}
void itemSectionCheck(Player p, String section, String panelName, YamlConfiguration cf, File panelFile, AsyncPlayerChatEvent e){
/*
I am using : instead of . because the
item sections could contain 18.hasperm <- the periods
so using a different symbol will help to separate the section from
everything else
*/
String tag = plugin.config.getString("config.format.tag") + " ";
String itemSlot = section.split("\\:")[1];
String sectionChange = section.replace("item:" + itemSlot + ":","");
@ -467,7 +473,7 @@ public class EditorUserInput implements Listener {
savePanelFile(cf, panelFile);
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour set to " + e.getMessage()));
break;
case "commands.add":
case "commands:add":
List<String> commandsOnOpenAdd = new ArrayList<>();
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".commands")){
commandsOnOpenAdd = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".commands");
@ -477,7 +483,7 @@ public class EditorUserInput implements Listener {
savePanelFile(cf, panelFile);
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage()));
break;
case "commands.remove":
case "commands:remove":
List<String> commandsOnOpenRemove;
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".commands")){
commandsOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".commands");
@ -499,7 +505,7 @@ public class EditorUserInput implements Listener {
savePanelFile(cf, panelFile);
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage()));
break;
case "lore.add":
case "lore:add":
List<String> loreOnOpenAdd = new ArrayList<>();
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".lore")){
loreOnOpenAdd = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".lore");
@ -509,7 +515,7 @@ public class EditorUserInput implements Listener {
savePanelFile(cf, panelFile);
p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage()));
break;
case "lore.remove":
case "lore:remove":
List<String> loreOnOpenRemove;
if(cf.contains("panels." + panelName + ".item." + itemSlot + ".lore")){
loreOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".lore");

View File

@ -15,6 +15,7 @@ import org.bukkit.inventory.InventoryView;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Objects;
public class EditorUtils implements Listener {
@ -261,7 +262,8 @@ public class EditorUtils implements Listener {
}
}
}
if(e.getSlotType() != InventoryType.SlotType.CONTAINER){
if(e.getClickedInventory().getType() != InventoryType.CHEST){
clearTemp(p, panelName);
return;
}
if(e.getAction() == InventoryAction.CLONE_STACK){
@ -274,6 +276,7 @@ public class EditorUtils implements Listener {
}else if(e.getAction() == InventoryAction.COLLECT_TO_CURSOR){
saveTempItem(e, p, file, panelName);
saveFile(fileName,file,true);
removeOldItem(e, p, file, fileName, panelName);
}else if(e.getAction() == InventoryAction.DROP_ALL_CURSOR){
e.setCancelled(true);
}else if(e.getAction() == InventoryAction.DROP_ALL_SLOT){
@ -296,6 +299,7 @@ public class EditorUtils implements Listener {
}else if(e.getAction() == InventoryAction.PICKUP_ALL){
saveTempItem(e, p, file, panelName);
saveFile(fileName,file,true);
removeOldItem(e, p, file, fileName, panelName);
}else if(e.getAction() == InventoryAction.PICKUP_HALF){
saveTempItem(e, p, file, panelName);
saveFile(fileName,file,true);
@ -690,6 +694,11 @@ public class EditorUtils implements Listener {
saveFile(fileName, file, true);
}
}
public void removeOldItem(InventoryClickEvent e, Player p, YamlConfiguration file,String fileName, String panelName){
//removes the old item from config, if it has been picked up (use this only after saving)
file.set("panels." + panelName + ".item." + e.getSlot(),null);
saveFile(fileName, file, true);
}
public void clearTemp(Player p, String panelName){
//empty temp item
tempEdit.set("panels." + panelName + ".temp." + p.getName(),null);