değişik bir sorun(sorun değil)

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
arkidişler benim yapmak istediğimi anlatırsam sizin kafa çok karışabilir onun için bi örnek veriyim ondan anlatıyım şöyleki:

Kod:
#%player%: player name
commands:
  #/tpa %player% 1000$
  tpa %player%: 1000
  #/spawn 2000$
  spawn: 2000

#Placeholders
#%player%: player name
#%need-money%: need money for commands
#%player-money%: player's money
#%cmd%: command name example: "/spawn" or "/tpa (playername)"
messages:
  enough-money: '&e%player% &ayou dont have enough money, need: &e%need-money% &ayour money is: &e%player-money% &aCommand: &e%cmd%'

şimdi bu config ve benim yapmaya çalıştığım şey paralı komut sistemi yalnız komut listener ı kullanıyorum ve tpa da sorun yaşıyorum dispath kullanıyorum komut çalıştırması için ve benim şöyle bişiye ihtiyacım var adam oyuncu yani /tpa hasan yazdığında komut yazma olayı true oluyor yani boolean ı ama ışınlanamazsa false oluyor şimdi %player% kısmını ben adam herhangi bi komut yazdığında player ın ismi varsa onu player.getname olarak almasını istiyorum ama şimdi farklı komut ta oabilir mesela msg hasan adlkjadlkjasda gibi config te de msg %player% %msg%: 1000 tarzı olucak yani %msg% ı drek yollar ama %player% ın play olduğunu yada onu nasıl çekeceğimi bilmiyorum listener class ım bu:
PHP:
@EventHandler
    public void commandListener(PlayerCommandPreprocessEvent event){
        String cmd = event.getMessage();
        String[] cmdstring = cmd.split("/");
        for(String s : PaidCommands.getPlugin().getConfig().getConfigurationSection("commands").getKeys(false)){
            if(s.equals(cmdstring[1])) {
                cmdstring[1] = cmdstring[1].replaceAll("%player%", "BU KISIMI YAPMAM GERKİYOR YAPAMADIM");
                if (PaidCommands.getPlugin().economy.has
                        (event.getPlayer(), PaidCommands.getPlugin().getConfig().getInt("commands." + s))) {
                    event.setCancelled(true);
                    if(Bukkit.dispatchCommand(event.getPlayer(), cmdstring[1])){
                        PaidCommands.getPlugin().economy.withdrawPlayer(event.getPlayer(),
                                PaidCommands.getPlugin().getConfig().getInt("commands." + s));
                    }
                } else {
                    String message = PaidCommands.getPlugin().getConfig().getString("messages.enough-money");
                    message = message.replaceAll("%player%", event.getPlayer().getName());
                    message = message.replaceAll("%need-money%", "" + PaidCommands.getPlugin().getConfig().getInt("commands." + s));
                    message = message.replaceAll("%player-money%", "" + PaidCommands.getPlugin().economy.getBalance(event.getPlayer()));
                    message = message.replaceAll("%cmd%", cmd);
                    event.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', message));
                    event.setCancelled(true);
                    return;
                }
            }
        }
    }

@formatontl ;(
 


mrbobaking

Kızıltaş Madencisi
Mesajlar
660
En iyi cevaplar
0
Beğeniler
283
Puanları
1,080
Kod:
        String cmd = "/tpa testPlayer 1000";  
        String playerName = null;
        for(Player player : Bukkit.getOnlinePlayers()){
            if(cmd.contains(player.getDisplayName())){
                playerName = player.getDisplayName();
            }
        }
        if(playerName == null){
            //Böyle bir oyuncu yok!
        }
        //replace %player% with playerName
örnek
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
Kod:
        String cmd = "/tpa testPlayer 1000"; 
        String playerName = null;
        for(Player player : Bukkit.getOnlinePlayers()){
            if(cmd.contains(player.getDisplayName())){
                playerName = player.getDisplayName();
            }
        }
        if(playerName == null){
            //Böyle bir oyuncu yok!
        }
        //replace %player% with playerName
örnek
ama şimdi şöyle bişi var tpa olmak zorunda değil komut ayrıca komutun içinde 2-3 tane daha oyuncu da girebilirler

ayrıca ismi tpa olan bi oyuncuda girebilir ve hata çıkartabilir komutta onu yapmayı bende düşündüm de olmaz öyle çok sakat
 

Bkunkcu

Windows 10 CDsi bulunur.
Emektar Üye
Mesajlar
1,244
En iyi cevaplar
2
Beğeniler
117
Puanları
640
Peki tpa için neden player'ı da kontrol ediyorsun? Sonuçta tpa paralı, kime tpa yolladığının önemi yok?
 

Personinblack

YASAKLANDI
Mesajlar
1,876
En iyi cevaplar
0
Beğeniler
1,237
Puanları
90
Çok fazla uğraşmışsın dostum hiç gerek yok essentials'ın zaten bunun için bir configi var. Ha illede bu şekilde yapacağım dersen essentials api'ını kullanarak yapabilirsin.
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
Çok fazla uğraşmışsın dostum hiç gerek yok essentials'ın zaten bunun için bir configi var. Ha illede bu şekilde yapacağım dersen essentials api'ını kullanarak yapabilirsin.
hayır saol api kullanmayı sevmiyorum kendim yazmayı severim plugin zaten güzel bi şekilde çalışıyor

Yok estağfurullah hocam
yine olmadı ki olmaması dı şöyle çalışıyor /tpa komutu girince diyor yani tpa yapmasada yani teleport etmesede parayı yine alıyor benim şuanda if(dispatch) kısmını düzenlemem lazım yani komut başarılı oldumu olmadımı tarzı bişi lazım ;(
 

Bkunkcu

Windows 10 CDsi bulunur.
Emektar Üye
Mesajlar
1,244
En iyi cevaplar
2
Beğeniler
117
Puanları
640
hayır saol api kullanmayı sevmiyorum kendim yazmayı severim plugin zaten güzel bi şekilde çalışıyor


yine olmadı ki olmaması dı şöyle çalışıyor /tpa komutu girince diyor yani tpa yapmasada yani teleport etmesede parayı yine alıyor benim şuanda if(dispatch) kısmını düzenlemem lazım yani komut başarılı oldumu olmadımı tarzı bişi lazım ;(
API kullanmadan kontrol etmek biraz zor gibi. Konumlarından kontrol edebilirsin ama bu sefer de tpa attığın adamın yanına yürürsen yine para keser. Neden Essentials'ınkini kullanmak yerine kendi tpa sistemini yapmıyorsun, en kolay çözüm bu olur sanırsam.
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
API kullanmadan kontrol etmek biraz zor gibi. Konumlarından kontrol edebilirsin ama bu sefer de tpa attığın adamın yanına yürürsen yine para keser. Neden Essentials'ınkini kullanmak yerine kendi tpa sistemini yapmıyorsun, en kolay çözüm bu olur sanırsam.
hayır bu sadece tpa için geçerli kalmıycak adamlar configten başka şeylerde yazıcaklar yani bu tpa değil herhangi bi komut olabilir otoya bağlamaya çalışıyorum da neyse çok boş bi iş olduğunu anladıktan sonra projeyi sildim abilities yapıyorum şu an ;( onda hata çıkarsa yine burdan sorarım boş boş konu açmaktan bıktım zaten
 

Bkunkcu

Windows 10 CDsi bulunur.
Emektar Üye
Mesajlar
1,244
En iyi cevaplar
2
Beğeniler
117
Puanları
640
hayır bu sadece tpa için geçerli kalmıycak adamlar configten başka şeylerde yazıcaklar yani bu tpa değil herhangi bi komut olabilir otoya bağlamaya çalışıyorum da neyse çok boş bi iş olduğunu anladıktan sonra projeyi sildim abilities yapıyorum şu an ;( onda hata çıkarsa yine burdan sorarım boş boş konu açmaktan bıktım zaten
Yok boş değil ya en küçük fikir bile birçok kişiye faydalı olabilir.

.
 

Üst