如何检测玩家之前是否玩过

时间:2016-11-22 14:54:26

标签: java minecraft bukkit

我有一个插件,当他加入时会向玩家发送消息:

 @EventHandler
 public void onPlayerJoin(PlayerJoinEvent p){
     Player a = p.getPlayer();

     a.sendMessage(ChatColor.BLUE + "Welcome message");
}

我想要的是在他加入时向玩家发送两条可能的消息:

  • 如果这是玩家第一次加入服务器,例如“欢迎使用服务器”

  • 另一个是玩家之前是否已加入服务器。怎么办呢?

如何检查播放器是否已播放,以便我可以自定义此行为?

1 个答案:

答案 0 :(得分:1)

Player对象有一种方法可以确定玩家之前是否已在服务器上玩过:

yourPlayer.hasPlayedBefore();

此方法返回一个布尔值,如果播放器已在服务器上播放,则为true,否则为false。

您可以在播放器加入服务器时自定义欢迎消息,其代码如下所示:

@EventHandler
public void onPlayerJoin(PlayeRJoinEvent p) {
    Player a = p.getPlayer();

    boolean hasPlayed = a.hasPlayedBefore();

    if (hasPlayed){
        a.sendMessage("Welcome back to the server!");
    }else {
        a.sendMessage("Welcome to our server! This is your first time playing!"
    }
}

布尔值与你的玩家一起保存,所以无论是否曾经玩过,它都将始终是玩家的情况。即使服务器重新启动或世界发生变化(只要不删除播放器文件夹)