如何从其他方法引用变量?

时间:2019-01-04 04:22:19

标签: minecraft

所以我试图制作一个Minecraft聊天插件,这是我的代码。

public class ChatListener implements Listener {
    public static String displayName;
    void name(Player event) {
        ChatListener.displayName =  event.getDisplayName();

    }

    @EventHandler
    public static void (AsyncPlayerChatEvent e) {
        final String message = "[" + displayName + "]" + e.getMessage();
        e.setMessage(message);
    }
}

我似乎总是在final String message = "[" + displayName + "]" + e.getMessage();

中使用displayName作为null

由于变量中可能没有2个参数,我该如何通过getDisplayName()获取显示名称?

1 个答案:

答案 0 :(得分:1)

如果您查看AsyncPlayerChatEventSpring Javadocs),您会发现您可以使用它来访问Player对象,因此无需将其存储在静态变量。

public class ChatListener implements Listener {

    @EventHandler
    public void onPlayerAsyncChatEvent(AsyncPlayerChatEvent e) {
        String displayName = e.getPlayer().getDisplayName(;

        final String message = "[" + displayName + "]" + e.getMessage();
        e.setMessage(message);
    }

}

正如您所描述的那样,这应该可以解决您的问题。