cannot set to an empty path

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] ?