Çözüldü Citizens Pluginindeki NPC İle Player Arasında Fark Bulma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

boran3q

Lapis Niye Mavi?
Katılım
31 Mayıs 2018
Mesajlar
880
Çözümler
1
Elmaslar
260
Puan
14.770
Konum
İzmir

Discord:

ikincielkralliklariseth

Başlıkdada gördüğünüz gibi citizens plugininde oluşturulan Player ile normal Oyuncu arasında fark bulmam lazım yardım edermisiniz ? normal oyuncuların yapabildigi ama npclerin yapamadıgı MCP clientim için lazım anlayanlar yazarsa sevinirim
 
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
nbt.webp


test:
 
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:

çok teşekkür ediyorum soruyu yanlış anlamamışsınız sadece mcp clientimde kullanmak için istiyordum
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst