Plugini Kişiye Özel Çalıştırma.

blade20090999

Kızıltaş Madencisi
Mesajlar
627
En iyi cevaplar
0
Beğeniler
321
Puanları
890
Ruh hali
Benim istediğim şey şu . Her oyuncu girdiğinde ona rasgele bir sayı verilicek . ve /sayımne yazınca sayısı gözükücek ben bunu yapmaya çalıştım fakat girerken join eventinde 1 sayı veriyor fakat. 2. ci oyuncu gelince ilk giren oyuncunun sayısıda 2.ci ile aynı oluyor neden ?
 


Kralimben

Lapis Toplayıcısı
Mesajlar
1,061
En iyi cevaplar
0
Beğeniler
329
Puanları
590
Öyle bir denk gelmiştir ki 2. girene de 1 diye rastgele sayı vermiştir. :D Farklı kişilere aynı sayı verilmesini bir şekilde önlemeye çalış ben bilmiyorum.
 

blade20090999

Kızıltaş Madencisi
Mesajlar
627
En iyi cevaplar
0
Beğeniler
321
Puanları
890
Ruh hali
hayır garanti farklı geliyor problem ztn o değil :) Benim problemim join eventinde 2 kodunda değişmesi yada 3 kişi girince 3 nün ki aynı olması.bak söle acıklayım 1. 2 sayısını aldı 2. girdi 3 sayısını aldı 1. ide 3 sayısını alıo 3 . girince diyelim 4 sayısını aldı 1 ve 2. ide 4 sayısını alıo otomatikmen değişio.
 

Dangers58

Demir Madencisi
Mesajlar
313
En iyi cevaplar
0
Beğeniler
52
Puanları
240
hayır garanti farklı geliyor problem ztn o değil :) Benim problemim join eventinde 2 kodunda değişmesi yada 3 kişi girince 3 nün ki aynı olması.bak söle acıklayım 1. 2 sayısını aldı 2. girdi 3 sayısını aldı 1. ide 3 sayısını alıo 3 . girince diyelim 4 sayısını aldı 1 ve 2. ide 4 sayısını alıo otomatikmen değişio.
Sen Nası Sayı Vermeyi Başardın
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Denemesini yapmadım, ancak %90 sorunsuz çalışır.

PHP:
    HashMap<String,Integer> oyuncuSayi = new HashMap <String, Integer>();
   
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        int sayi = 1;
        oyuncuSayi.put(e.getPlayer().getName(), sayi);
        sayi = sayi++;
    }
   
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("sayımne")) {
        Player oyuncu = (Player) sender;
        oyuncu.sendMessage("§3Sizin sayınız: §6" oyuncuSayi.get(oyuncu.getName()));
        return true;
    }
    return false;
}
 

blade20090999

Kızıltaş Madencisi
Mesajlar
627
En iyi cevaplar
0
Beğeniler
321
Puanları
890
Ruh hali
Denemesini yapmadım, ancak %90 sorunsuz çalışır.

PHP:
    HashMap<String,Integer> oyuncuSayi = new HashMap <String, Integer>();
 
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        int sayi = 1;
        oyuncuSayi.put(e.getPlayer().getName(), sayi);
        sayi = sayi++;
    }
 
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("sayımne")) {
        Player oyuncu = (Player) sender;
        oyuncu.sendMessage("§3Sizin sayınız: §6" oyuncuSayi.get(oyuncu.getName()));
        return true;
    }
    return false;
}
Benim anlamak istediğim mantık .Elbette doğrudur sen yazdıysan güvenim tam.Burda oyuncu adıyla bizim kodumuzu özleşdiriyorsun deme :) yada ben yanlıs söylediysem açıklarmısın ?
Ben her oyuncunun adında config dosyasında bir bölüm açarak bunu aştım ama cok ugrastırdı daha basit muhtemelen bu bana analatırmısın ? nasıl çalıştığını
 

KaanGunlu

Işık Taşı Madencisi
Mesajlar
3,239
En iyi cevaplar
0
Beğeniler
4,843
Puanları
6,840
Scoreboard ile her girişte oyuncuya rastgele bir sayı versen ?
 

Dangers58

Demir Madencisi
Mesajlar
313
En iyi cevaplar
0
Beğeniler
52
Puanları
240
Scoreboard ile her girişte oyuncuya rastgele bir sayı versen ?
O nası Olcak :D[DOUBLEPOST=1418495533,1418495493][/DOUBLEPOST]
Denemesini yapmadım, ancak %90 sorunsuz çalışır.

PHP:
    HashMap<String,Integer> oyuncuSayi = new HashMap <String, Integer>();
  
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        int sayi = 1;
        oyuncuSayi.put(e.getPlayer().getName(), sayi);
        sayi = sayi++;
    }
  
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("sayımne")) {
        Player oyuncu = (Player) sender;
        oyuncu.sendMessage("§3Sizin sayınız: §6" oyuncuSayi.get(oyuncu.getName()));
        return true;
    }
    return false;
}
Maalesef Olmuyor
oyuncu.sendMessage("§3Sizin sayınız: §6" oyuncuSayi.get(oyuncu.getName()));
Bu Yer Hatalı
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Benim anlamak istediğim mantık .Elbette doğrudur sen yazdıysan güvenim tam.Burda oyuncu adıyla bizim kodumuzu özleşdiriyorsun deme :) yada ben yanlıs söylediysem açıklarmısın ?
Ben her oyuncunun adında config dosyasında bir bölüm açarak bunu aştım ama cok ugrastırdı daha basit muhtemelen bu bana analatırmısın ? nasıl çalıştığını
En üstte bir HashMap oluşturduk, bu hashmap ile ikili değerleri birbiriyle eşleştirebiliyoruz.
HashMap'lerde key - value (anahtar - değer) ilişkisi vardır, bunu bir araştırın. Yani her şey için config'e gerek yok, ancak HashMap bir oturum içerisinde geçerlidir, siz sunucuyu kapatıp açtığınızda yeniden herkese 1'den başlayarak sayı verip, ram'de tutacaktır. HashMap'i ara ara config'e kaydetmek de mümkün illa ki bu sayılar sonsuza kadar bende kalsın diyorsan.
Ha benim tavsiyem, Config yerine mysql'e kaydetmek eğer yılbaşı çekilişi falan düşünüyorsan sunucunda.

Şimdi kodları baştan yazacağım, bu sefer yanına yorum da ekleyeceğim anlayabilmen için.

Evet, düzenledim, ancak burada düzensiz dururdu diye pastebin'e yapıştırdım.
http://pastebin.com/dS9a31Wr
Link açılmazsa;
http://paste.md-5.net/nebovovuxe.java

O nası Olcak :D[DOUBLEPOST=1418495533,1418495493][/DOUBLEPOST]
Maalesef Olmuyor
oyuncu.sendMessage("§3Sizin sayınız: §6" oyuncuSayi.get(oyuncu.getName()));
Bu Yer Hatalı
Yeni kodda o kısmı düzelttim, string ve java kodu arasına + koymayı unutmuşum.
 

Dangers58

Demir Madencisi
Mesajlar
313
En iyi cevaplar
0
Beğeniler
52
Puanları
240
En üstte bir HashMap oluşturduk, bu hashmap ile ikili değerleri birbiriyle eşleştirebiliyoruz.
HashMap'lerde key - value (anahtar - değer) ilişkisi vardır, bunu bir araştırın. Yani her şey için config'e gerek yok, ancak HashMap bir oturum içerisinde geçerlidir, siz sunucuyu kapatıp açtığınızda yeniden herkese 1'den başlayarak sayı verip, ram'de tutacaktır. HashMap'i ara ara config'e kaydetmek de mümkün illa ki bu sayılar sonsuza kadar bende kalsın diyorsan.
Ha benim tavsiyem, Config yerine mysql'e kaydetmek eğer yılbaşı çekilişi falan düşünüyorsan sunucunda.

Şimdi kodları baştan yazacağım, bu sefer yanına yorum da ekleyeceğim anlayabilmen için.

Evet, düzenledim, ancak burada düzensiz dururdu diye pastebin'e yapıştırdım.
http://pastebin.com/dS9a31Wr
Link açılmazsa;
http://paste.md-5.net/nebovovuxe.java


Yeni kodda o kısmı düzelttim, string ve java kodu arasına + koymayı unutmuşum.
Şimdi Config Halinde Tutma Sağlandı mı
 

GodofMilker

Nether Yerlisi
Mesajlar
2,196
En iyi cevaplar
0
Beğeniler
2,562
Puanları
6,790
En üstte bir HashMap oluşturduk, bu hashmap ile ikili değerleri birbiriyle eşleştirebiliyoruz.
HashMap'lerde key - value (anahtar - değer) ilişkisi vardır, bunu bir araştırın. Yani her şey için config'e gerek yok, ancak HashMap bir oturum içerisinde geçerlidir, siz sunucuyu kapatıp açtığınızda yeniden herkese 1'den başlayarak sayı verip, ram'de tutacaktır. HashMap'i ara ara config'e kaydetmek de mümkün illa ki bu sayılar sonsuza kadar bende kalsın diyorsan.
Ha benim tavsiyem, Config yerine mysql'e kaydetmek eğer yılbaşı çekilişi falan düşünüyorsan sunucunda.

Şimdi kodları baştan yazacağım, bu sefer yanına yorum da ekleyeceğim anlayabilmen için.

Evet, düzenledim, ancak burada düzensiz dururdu diye pastebin'e yapıştırdım.
http://pastebin.com/dS9a31Wr
Link açılmazsa;
http://paste.md-5.net/nebovovuxe.java


Yeni kodda o kısmı düzelttim, string ve java kodu arasına + koymayı unutmuşum.
Arkadaş rastgele bir sayı istiyor sanırım.Anladığım kadarıyla bu 1 sayısını veriyor ilk giren oyuncuya 2.'ye 2 100.'ye 100 1002.'ye 1002 diye.
Bu arada HashMap ne tam olarak bir açıklasa biri <-<
 

KaanGunlu

Işık Taşı Madencisi
Mesajlar
3,239
En iyi cevaplar
0
Beğeniler
4,843
Puanları
6,840
Arkadaş rastgele bir sayı istiyor sanırım.Anladığım kadarıyla bu 1 sayısını veriyor ilk giren oyuncuya 2.'ye 2 100.'ye 100 1002.'ye 1002 diye.
Bu arada HashMap ne tam olarak bir açıklasa biri <-<
1. x geliyormuş 2. oyuncu girince ona y geliyormuş ama 1. oyuncununkide x iken 2. oyuncu girince y oluyormuş diyor sanırım.
 

GodofMilker

Nether Yerlisi
Mesajlar
2,196
En iyi cevaplar
0
Beğeniler
2,562
Puanları
6,790
1. x geliyormuş 2. oyuncu girince ona y geliyormuş ama 1. oyuncununkide x iken 2. oyuncu girince y oluyormuş diyor sanırım.
// Burada da sayıyı 1 miktar arttırıyoruz, sebebi de bir sonraki oyuncuya aynı sayıyı değil, bir üst sayıyı vermesi. // Bu sayı en üstteki "sayi" değişkenini etkileyecektir.
Kısmı <-< 1. oyuncuya 2 2. oyuncuya 3 gelir her şekilde bu böyle olur :(
 

Üst