Plugin Kodlarını Bilen Yardıma PLS [YİNE BEN :(]

xXDavcerXx

damnant quod non intelligunt.
En iyi cevaplar
1
Evet Yine Ben.

Sanırım Pluginlerden Kurtuluşum Yok :( :D

Sorumu Sorayım.

Şimdi Örnek Pluginimiz Puan Plugini Olsun.
Sorum Şöyle;

Public ile Nasıl Configde Oyunculara Puan Verebiliriz.
Açıklayayım. /puanset 1 xXDavcerXx 30 yazınca Configde benim 30 puanım Olacak.
/puanset 2 asdasdasd 30 yazınca Configde asdasdasdnin 30 puanı olacak.

ama alt alta olacaklar.Bide /puandelete 1 yazınca Configde xXDavcerXx Silinecek.

2.Sorum Şöyle

Kim /puanset1 xXDavcerXx 30 yazarsa atıyorum: /money take [Yazanın adı] 30 Komutu uygulanacak.

3.Soru [Zor Olan]

atıyorum /kazanan xXDavcerXx yazınca, oyuncu xXDavcerXxe 30 Puan Yatırdıysa 60 lira alacak.

Teker Tekerde Yapabilrsiniz.

Yapana Gerçekten Çok Teşekkür Edicem.Nolur Yapın.
Bukadar İsteğim Olduğu için üzgünüm Gerçekten Yorduğum İçin Kusura Bakmayın Özelliklede @IRFN [Kendini Kötü Hissediyor :(]

@IRFN,@DonduranAtes
 

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
Config'i hafıza işlemleri için kullanmak yanlış olur. Bunun için Hashmap kullanman daha mantıklı.
Aşağıda örnek bir kod dosyası hazırladım. Kodları denemedim, hatalı olabilir. Örnek olarak incelemen için hazırladım. Kendine göre düzenlersin.

PHP:
package so.irfn;

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class Bahis extends JavaPlugin implements Listener {

    public static Bahis instance;
    public HashMap<String,Integer> paraYatıran = new HashMap<String,Integer>();
    public HashMap<String,String> üstüneBahisOynanan = new HashMap<String,String>();

    public void onEnable() {
        instance = this;
        Bukkit.getPluginManager().registerEvents(this, this);
    }





    // Varsayalım ki aşağıdaki kodlar komut kodları.

   //      /bahis xXDavcerXx 30 yazıldığında; (Bu oyuncuların komutu)

         if (getConfig.getInt("Bahis." + sender.getName()) > Integer.parseInt(args[1])){
             paraYatıran.put(sender.getName(), args[2]);
             üstüneBahisOynanan.put(sender.getName(), args[0]);
         } else {
             sender.sendMessage("Bahse yatıracabileceğiniz miktar " + getConfig.getInt("Bahis." + sender.getName()) + " puandan fazla olamaz.");
         }
     
      
      
  //       /kazanan xXDavcerXx yazıldığında; (plugin komutu, kazananı belirler)
      
         for (Entry<String, String> bahisSonucu : üstüneBahisOynanan.entrySet()){
            if (bahisSonucu.getValue().equals(args[0])){
                getConfig.set("Bahis." + bahisSonucu.getKey(), getConfig().getInt("Bahis." + bahisSonucu.getKey()) + (paraYatıran.get(bahisSonucu.getKey() * 2)));
            }
            else {
                getConfig.set("Bahis." + bahisSonucu.getKey(), getConfig().getInt("Bahis." + bahisSonucu.getKey()) + paraYatıran.get(bahisSonucu.getKey()));
            }
         }
         paraYatıran.clear();
         üstüneBahisOynanan.clear();
 
}


/*
* ÖRNEK CONFIG DOSYASI
*
* Paralar:
*     IRFN: 60
*     xXDavcerXx: 30
*     Notch : 20
*
*/
 

DonduranAtes

Zombi Katili
En iyi cevaplar
0
Config'i hafıza işlemleri için kullanmak yanlış olur. Bunun için Hashmap kullanman daha mantıklı.
Aşağıda örnek bir kod dosyası hazırladım. Kodları denemedim, hatalı olabilir. Örnek olarak incelemen için hazırladım. Kendine göre düzenlersin.

PHP:
package so.irfn;

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class Bahis extends JavaPlugin implements Listener {

    public static Bahis instance;
    public HashMap<String,Integer> paraYatıran = new HashMap<String,Integer>();
    public HashMap<String,String> üstüneBahisOynanan = new HashMap<String,String>();

    public void onEnable() {
        instance = this;
        Bukkit.getPluginManager().registerEvents(this, this);
    }





    // Varsayalım ki aşağıdaki kodlar komut kodları.

   //      /bahis xXDavcerXx 30 yazıldığında; (Bu oyuncuların komutu)

         if (getConfig.getInt("Bahis." + sender.getName()) > Integer.parseInt(args[1])){
             paraYatıran.put(sender.getName(), args[2]);
             üstüneBahisOynanan.put(sender.getName(), args[0]);
         } else {
             sender.sendMessage("Bahse yatıracabileceğiniz miktar " + getConfig.getInt("Bahis." + sender.getName()) + " puandan fazla olamaz.");
         }
    
     
     
  //       /kazanan xXDavcerXx yazıldığında; (plugin komutu, kazananı belirler)
     
         for (Entry<String, String> bahisSonucu : üstüneBahisOynanan.entrySet()){
            if (bahisSonucu.getValue().equals(args[0])){
                getConfig.set("Bahis." + bahisSonucu.getKey(), getConfig().getInt("Bahis." + bahisSonucu.getKey()) + (paraYatıran.get(bahisSonucu.getKey() * 2)));
            }
            else {
                getConfig.set("Bahis." + bahisSonucu.getKey(), getConfig().getInt("Bahis." + bahisSonucu.getKey()) + paraYatıran.get(bahisSonucu.getKey()));
            }
         }
         paraYatıran.clear();
         üstüneBahisOynanan.clear();

}


/*
* ÖRNEK CONFIG DOSYASI
*
* Paralar:
*     IRFN: 60
*     xXDavcerXx: 30
*     Notch : 20
*
*/
irfan anladıgım kadarıyla arkadaş plugin yazmasını bilşmiyor, senin bir nevi API yapmanı istemiş, kodlarıda kendi işinin sürecine göre kullanıcak.
 

xXDavcerXx

damnant quod non intelligunt.
En iyi cevaplar
1
irfan anladıgım kadarıyla arkadaş plugin yazmasını bilşmiyor, senin bir nevi API yapmanı istemiş, kodlarıda kendi işinin sürecine göre kullanıcak.

Ben sadece Biraz yardım istedim. @IRFN Abimizede Yardımlarından dolayı Çok teşekkür Ediyorum.İsterse Yardım etmeyebilir Ben Hataları Yazıcam Çözmeyebilir İsterse. Ama @DonduranAtes Yardım Edersen Çok Mutlu Olurum.

Kodlara Göre;
Kod:
paraYatıran.put(sender.getName(), args[1]);

Olunca put stringlerde işe yaramıyor. args[] Bir string yaptım.
Kod:
CommandSender sender, Command cmd, String commandLabel, String args[]
int yapıncada (ki bu bana mantıksız geldi.) üstüneParaYatırılan HashMapde String, String Olduğu İçin Olmuyo.

2.;
Kod:
getConfig().set("Bahis." + bahisSonucu.getKey(), getConfig().getInt("Bahis." + bahisSonucu.getKey()) + (paraYatıran.get(bahisSonucu.getKey() * 2)))
Bu hatadada (paraYatıran.get(bahisSonucu.getKey() * 2)de * hata veriyor.
The operator * is undefined for the argument type(s) String, int hatası

Gerçekten Yardımın İçin saol @IRFN Abi. Yardım Edersen Ne Mutlu Bana.
 

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
paraYatıran.put(sender.getName(), args[1]);
kısmını
paraYatıran.put(sender.getName(), Integer.parseInt(args[1]));
olarak değiştirirsen sanırım hepsi düelir.
 

xXDavcerXx

damnant quod non intelligunt.
En iyi cevaplar
1
paraYatıran.put(sender.getName(), args[1]);
kısmını
paraYatıran.put(sender.getName(), Integer.parseInt(args[1]));
olarak değiştirirsen sanırım hepsi düelir.

bahisSonucu.getKey * 2 de hala hata veriyor

orayı
Kod:
(paraYatıran.get(bahisSonucu.getKey() + bahisSonucu.getKey()))

Yapsam hata yok ama olurmu ? çünkü * hata veriyor.
 
Üst