首页 > 解决方案 > Player*First*JoinEvent 我应该怎么做?

问题描述

所以我尝试为我的服务器制作一个简单的 PlayerJoinEvent ( AKA. Player First JoinEvent )。有没有办法做到这一点?我想在玩家一次加入服务器时运行我的代码。我尝试了多种选择,例如使用if(player.hasPlayedBefore()),但它不想工作!那么,您是否知道如何修复它或使用不同的方法来解决它?感谢大家的帮助!

标签: javaminecraftbukkit

解决方案


您可能还没有删除玩家数据!如果有新玩家加入,会创建新玩家数据,只有这样 Spigot 才知​​道该玩家是服务器的新玩家!

为此:

  • 关闭你的服务器
  • server-folder/world/playerdata/*player-uuid*.dat
  • 删除player-uuid .dat
  • 启动服务器

警告:这会删除玩家库存!

如果您的服务器处于离线模式,并且您不知道您的 UUID 是什么,请使用此在线工具。如果您的服务器处于在线模式,并且您不知道您的 UUID,请使用namemc

测试事件的代码:

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    if(!event.getPlayer().hasPlayedBefore()) {
        event.getPlayer().sendMessage("Hi!");
    }
}

不要忘记在您的主课中注册此活动!


推荐阅读