2016-11-22 71 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