所以我试图制作一个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();
由于变量中可能没有2个参数,我该如何通过getDisplayName()
获取显示名称?
答案 0 :(得分:1)
如果您查看AsyncPlayerChatEvent
(Spring 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);
}
}
正如您所描述的那样,这应该可以解决您的问题。