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

How do I store a variable of a variable in bukkit?

所以我一直在尝试在 bukkit 中制作一个 alt 检测插件,我是 api 的新手并且没有很好地编码,但我不确定如何让它工作,我已经尝试过 hashmaps 并且我也尝试过其他东西但我仍然不太明白如何去做,基本上我正在尝试获取任何加入但尚未加入的人的 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);

保存哈希图:

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]);

loadHashMap:

    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;
    }

根据 gamepedia entry 你应该这样保存 HashMaps:

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

并像这样检索它们:

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

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