cannot set to an empty path

  • After careful consideration and due to limited usage, we’ve made the decision to discontinue the PaperMC forums. Moving forward, we recommend using Hangar for plugin uploads, and for all other community discussions and support, please join us on Discord.

STRlantian

New member
Jan 10, 2022
5
0
1
I'm new to plugin dev maybe my code is hard to read




public final class Settings implements CommandExecutor
{
FileConfiguration cfg = Main.inst.getConfig();
Override (i have to delete @ because there is a user called Override)
@Deprecated
public boolean onCommand(CommandSender sender, Command command, String lable, String[] st)
{
Player pl = Bukkit.getPlayer(sender.getName());
String nameA = sender.getName();
String name = nameA.toLowerCase();

Inventory inv = Bukkit.createInventory(pl, 5 * 9, "Whisper Settings");

ItemStack p1 = new ItemStack(Material.PAPER, 1);
ItemMeta p1im = p1.getItemMeta();
p1im.setDisplayName("§7发送提示颜色");
p1im.addEnchant(Enchantment.DURABILITY, 1, true);
p1.setItemMeta(p1im);
inv.setItem(9, p1);

ItemStack p2 = new ItemStack(Material.PAPER, 1);
ItemMeta p2im = p2.getItemMeta();
p2im.setDisplayName("§7接受消息颜色");
p2im.addEnchant(Enchantment.DURABILITY, 1, true);
p2.setItemMeta(p2im);
inv.setItem(18, p2);

ItemStack p3 = new ItemStack(Material.PAPER, 1);
ItemMeta p3im = p3.getItemMeta();
p3im.setDisplayName("§7[私信]标识颜色");
p3im.addEnchant(Enchantment.DURABILITY, 1, true);
p3.setItemMeta(p3im);
inv.setItem(27, p3);

ItemStack p = new ItemStack(Material.PINK_DYE);
ItemMeta pim = p.getItemMeta();
pim.setDisplayName("§dB站粉");
p.setItemMeta(pim);
inv.setItem(10, p);
inv.setItem(19, p);
inv.setItem(28, p);
//
ItemStack a = new ItemStack(Material.RED_DYE);
ItemMeta aim = a.getItemMeta();
aim.setDisplayName("§c中国红");
a.setItemMeta(aim);
inv.setItem(11, a);
inv.setItem(20, a);
inv.setItem(29, a);
//
ItemStack b = new ItemStack(Material.ORANGE_DYE);
ItemMeta bim = b.getItemMeta();
bim.setDisplayName("§6橘子橙");
b.setItemMeta(bim);
inv.setItem(12, b);
inv.setItem(21, b);
inv.setItem(30, b);
//
ItemStack c = new ItemStack(Material.YELLOW_DYE);
ItemMeta cim = c.getItemMeta();
cim.setDisplayName("§e雏菊黄");
c.setItemMeta(cim);
inv.setItem(13, c);
inv.setItem(22, c);
inv.setItem(31, c);

//
ItemStack d = new ItemStack(Material.LIME_DYE);
ItemMeta dim = d.getItemMeta();
dim.setDisplayName("§a草色绿");
d.setItemMeta(dim);
inv.setItem(14, d);
inv.setItem(23, d);
inv.setItem(32, d);
//
ItemStack f = new ItemStack(Material.LIGHT_BLUE_DYE);
ItemMeta fim = f.getItemMeta();
fim.setDisplayName("§b天空蓝");
f.setItemMeta(fim);
inv.setItem(15, f);
inv.setItem(24, f);
inv.setItem(33, f);
//
ItemStack g = new ItemStack(Material.PURPLE_DYE);
ItemMeta gim = g.getItemMeta();
gim.setDisplayName("§5葡萄紫");
g.setItemMeta(gim);
inv.setItem(16, g);
inv.setItem(25, g);
inv.setItem(34, g);
//
ItemStack e = new ItemStack(Material.WHITE_DYE);
ItemMeta eim = e.getItemMeta();
eim.setDisplayName("§f原版白");
e.setItemMeta(eim);
inv.setItem(17, e);
inv.setItem(26, e);
inv.setItem(35, e);


if(!lable.equalsIgnoreCase("wst"))
{
return false;
}
if(!(sender instanceof Player))
{
System.out.println("你好,请别");
return false;
}

cfg.set(null, name);
cfg.set(name, "cls");
cfg.set(name, "clo");
cfg.set(name, "clt") ;
pl.openInventory(inv);
return true;
}
}
 

STRlantian

New member
Jan 10, 2022
5
0
1
The first parameter in “set” is the path. And you cannot have a null path. Just remove that line. Paths are separated by . which denotes a new section.
So if I delete that and just do
set(name+".cls", cls);
then it will automatically create a path called [playername].cls: [value] ?