configdeki pathden veri kontrol etmek nasıl yapılır ?

liftedplane

Taş Madencisi
Mesajlar
95
En iyi cevaplar
0
Beğeniler
34
Puanları
140
Ruh hali
merhaba arkadaşlar eklentimin configinde bir path var örnek:

Kod:
Oyuncular:
  oyuncu1:
    afk: true
  oyuncu2:
    afk: false
  oyuncu3:
    afk: true
  oyuncu4:
    afk: false

ben afk kontrol etmek istiyorum bunu for eachle yapmam gerekiyor heralde fakat mantığını anlayamadım bilen biri yardım edebilirmi
şimdiden teşekkür ederim
 


L1T3R4L

Ağaç Yumruklayıcı
Mesajlar
22
En iyi cevaplar
0
Beğeniler
7
Puanları
60
Yapacağın şey için config kullanmak biraz gereksiz gibi..
HashMap<Player,Boolean> kullan.
 

>>TheLegend<<

Легенды никогда не умирают
Mesajlar
991
En iyi cevaplar
3
Beğeniler
1,903
Puanları
2,530
Config dosyasına sadece sunucu kapatıldığında da kayıtlı olması gereken verileri yerleştir.
Onun dışında yukarıdaki arkadaşın dediği gibi gereksiz kalır.
JavaScript:
public HashMap<Player,Boolean> lst=new HashMap<Player,Boolean>();
    public boolean afkmi(Player p) {
        if (!lst.containsKey(p)) {
            //listede yok.
            return false;
        } else {
            boolean afk=lst.get(p);
            return afk;
        }
    }
İstersen buradan mantığını anlayabilirsin, istersen direk kopyalayıp yapıştırabilirsin.
afkmi(..) "..." bölümüne bir oyuncu ismi yazdığında onun afk olup olmadığını true veya false olarak belirtir.
Tabi öncelikle afk olanları bu listeye eklemen gerekli. lst.add(Player)
Kullanım örneği;
JavaScript:
if (afkmi(p)) {
    Bukkit.getServer().broadcastMessage(p.getName()+" AFK!");
    } else {
    Bukkit.getServer().broadcastMessage(p.getName()+" AFK değil!");
}
 

Zamion101

Marangoz
Mesajlar
41
En iyi cevaplar
0
Beğeniler
33
Puanları
110
Bu tür kontrolleri yapmak için HashMap kullanmana gerek yok.
List içine Player ekleyerek hem memory den kazanç sağlıyoruz hemde kodumuz daha düzenli oluyor.
Java:
    List<Player> afks= new ArrayList<>();
    public boolean isAFK(Player player){
        return afks!= null || !afks.isEmpty() && afks.contains(player);
    }
3 satır kod ile AFK olup olmadığını kontrol edebiliyoruz.
Ayrıca birini AFK'dan çıkarmak isterseniz de şu kodu kullanarak rahatlıkla Listeden silebilirsiniz.
Java:
    public void removeAFK(Player player){
        afks.forEach(e ->{
            if(e.equals(player)){
                afks.remove(e);
            }
        });
    }
 

Üst