【发布时间】:2018-07-08 16:18:27
【问题描述】:
所以我一直在为我的 minecraft 服务器开发一个自定义功能,我需要做的一件事是从配置文件中获取一个整数,该整数特定于每个玩家,以显示他们有多少包(键)拥有(虚拟物品)
我遇到的问题是,在 GUI 中它显示的是“null”,而不是他们有多少...有人可以帮帮我吗?
在配置中创建播放器实例的代码(使用我的朋友提供给我的自定义文件类。)
@EventHandler
public void playerJoin(PlayerJoinEvent event) {
Main main = Main.getPlugin(Main.class);
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
if (!main.getDataFolder().exists())
main.getDataFolder().mkdirs();
File file = new File(main.getDataFolder(), "players.yml");
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
if (!config.contains("Users." + uuid + ".Username")) {
try {
System.out.println("Creating entry for " + player + " (" + uuid + ")");
config.set("Users." + uuid + ".Username", player);
config.set("Users." + uuid + ".Packages.Common", 0);
config.set("Users." + uuid + ".Packages.Rare", 0);
config.set("Users." + uuid + ".Packages.Epic", 0);
config.set("Users." + uuid + ".Packages.Legendary", 0);
config.set("Users." + uuid + ".Packages.Exotic", 0);
config.save(file);
System.out.println("Successfully created the entry for " + " (" + uuid + ")");
} catch (Exception e) {
}
}
}
在 gui 中创建项目的代码:
public static String inventoryname = Utils.chat("&fWhite Backpack");
public static Inventory WhiteBackpack(Player player) {
UUID uuid = player.getUniqueId();
Inventory inv = Bukkit.createInventory(null, 27, (inventoryname));
ItemStack common = new ItemStack(Material.INK_SACK);
common.setDurability((byte) 8);
ItemMeta commonMeta = common.getItemMeta();
commonMeta.setDisplayName(Utils.chat("&fCommon Packages &8» &f&l" + Main.pl.getFileControl().getConfig().getString("Users." + uuid + ".Packages.Common")));
common.setItemMeta(commonMeta);
inv.setItem(10, common);
return inv;
}
【问题讨论】:
-
您似乎正在保存到不同的配置中读取...因为在保存时您读取了一些 player.yml 文件但在读取时您只需使用一些` Main.pl.getFileControl().getConfig() `
标签: plugins config minecraft bukkit