从其他类访问HashMaps的问题

时间:2015-08-19 15:55:36

标签: java hashmap bukkit

我正在使用Spigot(几乎是Bukkit)编写插件,但是我在从另一个类中访问HashMap时遇到了问题。这是我的HashMap和getter:

let C1 frequency 1 (list1)
let C2 frequency 2 (list1)
.
.
.
let C20 frequency 20 (list1)

我能够看到HashMap是否包含类中的某些键,例如:

private Map<String, Integer> compPlayers = new HashMap<String, Integer>();

public Map<String, Integer> getCompPlayers(){
    return compPlayers;
}

然而在我的听众课上,我似乎无法正确访问它。这是我的监听器类中的一段代码:

if(args[0].equalsIgnoreCase("join")){
    if(compPlayers.containsKey(p.getName())){
        p.sendMessage(ChatColor.RED + "You are already part of the competition");
        return false;
    }

PluginMain是扩展JavaPlugin的类,getCommands()是其中Commands类的getter。

虽然我能够从侦听器类中无错误地访问所有这些方法,但是检查玩家名称是否在HashMap中的行不起作用并且总是返回false。事件本身确实有效。

1 个答案:

答案 0 :(得分:1)

您永远不会在Listener课程中注册活动。

Listener类的构造函数中,添加以下内容:

plugin.getServer().getPluginManager().registerEvents(this, plugin);