2016-11-22 74 views
0

我将消息发送到播放器时,他加入了一个插件:如何检测如果一个球员发挥之前

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

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

我要的是,当他加入到发送给玩家两种可能的消息:

  • 之一,如果它是第一次玩家加入服务器,如“欢迎到服务器”

  • 另一种是如果玩家之前已经加入了服务器。如何做到这一点?

我该如何检查玩家是否已经玩过,所以我可以自定义这种行为?

回答

1

Player对象有一个方法来判断玩家是否已经在服务器上已经玩过前作:

yourPlayer.hasPlayedBefore(); 

这个方法返回一个布尔值,如果玩家已经在服务器上已经发挥它是真实的,虚假的除此以外。

的玩家加入的代码看起来像这样的服务器,您可以自定义欢迎消息:

@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!" 
    } 
} 

布尔储存在您的播放器,因此它总是会的情况球员,如果他以前玩过或没有。即使服务器重新启动或世界变化(只要球员文件夹没有被删除)

+0

谢谢你Kerooker,这帮助我很 ,但布尔hasplayed保存? 我的意思是如果我重新启动服务器,它是否还记得每个玩家的数据? – weaz19

+0

@ weaz19是的。 player.hasPlayedBefore()永远保存在您的球员数据文件夹中。 – Kerooker

+0

@ weaz19另外,欢迎来到SO!请记住用绿色检查标记答案(接受的答案),以帮助可能有同样问题的更多用户。 – Kerooker