gpt4 book ai didi

java - 如何在 bukkit 中存储变量的变量?

转载 作者:行者123 更新时间:2023-12-01 18:20:24 25 4
gpt4 key购买 nike

所以我一直在尝试在 bukkit 中制作一个 alt 检测插件,我对 api 还很陌生,还没有编写过很多代码,但我不确定如何让它工作,我'我尝试过 HashMap ,也尝试过其他东西,但我仍然不太明白该怎么做,基本上我试图获取尚未在配置中加入的任何人的 IP 并将其 IP 放在那里包括他的 IP,然后通过查看他是否具有与已存储的相同的 IP 来检查他的 alt 是否加入,并将他添加到与 IP 相关的用户名列表中

我一开始就想我可以做这样的事情:

String ip = event.getAddress().toString().replaceAll("/", "");
plugin.getConfig().set("IPs.", ip);
plugin.saveConfig();
if(plugin.getConfig().getString("IPs.") == s) {
if(plugin.getConfig().get("IPs." + ip) == player.getName()) {
plugin.getConfig().set("IPs." + s, player.getName());
plugin.saveConfig();
}
}

但我意识到我不能,所以我想尝试创建一个字符串列表,并在配置中添加 IP 列表,然后我意识到我需要做一个奇怪的列表列表,即使我在技术上也是如此然后无法存储某人的 IP 并检查他们拥有的名称列表,因为我无法检查他的 IP 名称中是否有列表

我在这里真的很困惑,希望得到一些帮助!谢谢!

编辑1我使用的HashMap代码:

 // s is the ip string
HashMap<String,String[]> map = new HashMap<String,String[]>();
String[] names = new String[10];
names[0] = player.getName();
map.put(s, names);
saveHashMap(map);

保存HashMap:

public void saveHashMap(HashMap<String, String[]> hm) {

for (String key : hm.keySet()) {
plugin.getConfig().set("IPs."+key, hm.get(key));
}
plugin.saveConfig();
}

}

为了测试我尝试了这个:

    HashMap<String,String[]> test = loadHashMap();
String[] a = test.get(s);

System.out.println(a[0]);

加载HashMap:

    public HashMap<String, String[]> loadHashMap() {
HashMap<String, String[]> hm = new HashMap<String,String[]>();
for (String key : plugin.getConfig().getConfigurationSection("IPs").getKeys(false)) {
hm.put(key, (String[]) plugin.getConfig().get("IPs."+key));
}

return hm;
}

最佳答案

根据游戏百科entry你应该像这样保存 HashMap:

getConfig().createSection(String path, Map< String, Object > map)

并像这样检索它们:

getConfig().getConfigurationSection("path.to.map").getValues(false)

然后您需要将 map 转换为您想要的类型。

关于java - 如何在 bukkit 中存储变量的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60301591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com