
_thread
@EventHandler
public void onRightClickOnNPC(PlayerInteractEntityEvent e) {
if (e.getRightClicked().getType() == EntityType.PLAYER) {
Player clickedPlayer = (Player) e.getRightClicked();
if (!clickedPlayer.isOnline()) {
e.getPlayer().sendMessage("evet dostum! bu bi' enpisi");
return;
}
}
e.getPlayer().sendMessage("hayır, bu gerçek bir oyuncu!");
}
@EventHandler
public void onRightClickOnNPCOther(PlayerInteractEntityEvent e) {
if (e.getRightClicked().getType() == EntityType.PLAYER) {
boolean isRealPlayer = false;
for (Player p : Bukkit.getOnlinePlayers()) {
if (e.getRightClicked().getUniqueId().equals(p.getUniqueId())) {
isRealPlayer = true;
break;
}
}
if (!isRealPlayer) {
e.getPlayer().sendMessage("evet dostum! bu bi' enpisi [method: 2]");
return;
}
}
e.getPlayer().sendMessage("hayır, bu gerçek bir oyuncu! [method: 2]");
}
ikincielkralliklariseth
soruyu yanlış anlamış olabilirim, eğer sorunuz bir npc'yi oyuncudan ayırt etmekse:
bildiğim kadarıyla citizensin npc'lerinde npc tagı var, bu sayede ayırt edebilirsin... :) veya java eklenti kodlayarak etkileşime girdiğin npc'nin online olup olmadığına bakabilirsin (eğer sağ tıkladığı oyuncu online değilse, o bir npc'dir). sizin client'da bu özellikler var mı veya bukkit api'de ne zaman-hangi sürümde geldi bilmiyorum.
online check (söz ettiğim online, premium hesap vs. değil karışıklık olmasın.):
Kod:@EventHandler public void onRightClickOnNPC(PlayerInteractEntityEvent e) { if (e.getRightClicked().getType() == EntityType.PLAYER) { Player clickedPlayer = (Player) e.getRightClicked(); if (!clickedPlayer.isOnline()) { e.getPlayer().sendMessage("evet dostum! bu bi' enpisi"); return; } } e.getPlayer().sendMessage("hayır, bu gerçek bir oyuncu!"); }
veya şöyle bi' şey:
Kod:@EventHandler public void onRightClickOnNPCOther(PlayerInteractEntityEvent e) { if (e.getRightClicked().getType() == EntityType.PLAYER) { boolean isRealPlayer = false; for (Player p : Bukkit.getOnlinePlayers()) { if (e.getRightClicked().getUniqueId().equals(p.getUniqueId())) { isRealPlayer = true; break; } } if (!isRealPlayer) { e.getPlayer().sendMessage("evet dostum! bu bi' enpisi [method: 2]"); return; } } e.getPlayer().sendMessage("hayır, bu gerçek bir oyuncu! [method: 2]"); }
Edit: evet, gerçek oyuncularda DEFAULT, npc'lerde CUSTOM etiketleri mevcut. Ben düz {npc} yazan bi' etiket var diye biliyordum, belki vardır ve gözümden kaçmıştır, emin olamadım :D client sürümünüzde detaylı entity data var mı onu da bilmiyorum, biraz yarım bilgi verdim, kb iyi forumlar <3
Ekli dosyayı görüntüle 261292
test:
Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!