[ÇÖZÜLDÜ]oyunucun sadece komut yazdığını anlama eventi (anlatımı içerde)

tree

Demir Madencisi
En iyi cevaplar
0
arkadaşlar bu gün full bu konu üzerine yoğunlaştım ancak bir türlü yapamadım oyuncu sadece /komut komutunu girince oyuncu ismi girin diycem ancak bi türlü yapamadım, yapabildililerim
/komut <oyunda olan bir oyuncu> çalışıyor
/komut <oyunda olmayan bir oyuncu> çalışıyor (istediğim mesajı veriyor)
ancak
/komut yazınca yani hiçbir değişken yazmayınca yada oyuncu ismi hata veriyor kodum bu arkadaşlar:
PHP:
package me.hasan.swords;

import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.enchantments.EnchantmentWrapper;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.java.JavaPlugin;

public class Swords extends JavaPlugin{
    @Override
    public void onEnable(){
        getLogger().info("Swords has been enabled!");
}
    @Override
    public void onDisable(){
        getLogger().info("Swords has been disabled!");
}
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
        if (cmd.getName().equalsIgnoreCase("swords")){
            if (!(sender instanceof Player)){
                sender.sendMessage("Oyun ici kullanilan komut!");
            }
                if((sender instanceof Player)){
                    if(args.length==0){
                        sender.sendMessage(ChatColor.DARK_RED + "Oyuncu ismi girin!");
                    }
                    Player target = Bukkit.getServer().getPlayer(args[0]);
                    if (args.length==1)
                        if (target == null){
                            sender.sendMessage(ChatColor.RED + "Oyuncu yok!");
                        }

                    else{
                    target.sendMessage(ChatColor.GREEN + "" + ChatColor.BOLD +  target.getName() + ChatColor.DARK_GREEN + " adlı oyuncuya büyülü kılıç verildi!");
                    PlayerInventory inv = target.getInventory();
                    ItemStack item = new ItemStack(Material.DIAMOND_SWORD, 1);
                    Enchantment ench = new EnchantmentWrapper(16);
                    item.addUnsafeEnchantment(ench, 100);
                    inv.addItem(item);
                    }
                }

        }
        return false;
    }
}
@Krumb069 @KRHN @IRFN @ZekiKos @djyee @>>TheLegend<< @veisminibilmediğimdiğerkişiler yardım ederseniz memnun olurum ^^
 

GodofMilker

Nether Yerlisi
En iyi cevaplar
0
if'lerin hepsinden önce bir return eklemelisin yoksa kod devam eder, yani
Kod:
if(args.length==0)
{
sender.sendMessage(ChatColor.DARK_RED + "Oyuncu ismi girin!");
 }
Yaptığında burada sadece mesaj gönderir, kod durmaz devam eder. Kısaca hiçbir etkisi olmaz.
Kod:
if(args.length==0)
{
sender.sendMessage(ChatColor.DARK_RED + "Oyuncu ismi girin!");
return false;
 }
Yaparsan ilk dediğin, boş yazma düzelir. 2. dediğini anlayamadım :(
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Kod:
                    if(args.length==0){
                        sender.sendMessage(ChatColor.DARK_RED + "Oyuncu ismi girin!");
                        return false;
                    }

Javada return ile metodu durdurabilirsin.
 

tree

Demir Madencisi
En iyi cevaplar
0
düzenleme: çok saolun arkadaşlar yaptım :) bugün hep uğraştım ama yapamamıştım çok saolun yenide.
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Yardım edenlere teşekkürler, bir methodun durdurulması için return, bir döngünün durdurulması için break kullanmak gerekir sakın unutma.
 
S

Switcher

Ziyaretçi
Yardım edenlere teşekkürler, bir methodun durdurulması için return, bir döngünün durdurulması için break kullanmak gerekir sakın unutma.
Bikere plugin yapma işine girişiyim dedim çok zor bana göre , yani bir komut yazınca keskinlik 100 olan bir kılıç versin komutunu çok uzun bir şekilde yapıyosun *öyle gördüm*.
 

Krumb069

Nether Yerlisi
En iyi cevaplar
1
ben return false; kısmını hep komut parantezinin sonuna koyuyorum bütün if lerden sonra, bir sıkıntı olmuyor ?
Eclipse uyarı verince onun dediği yere return false eklyiorum
Yardım edenlere teşekkürler, bir methodun durdurulması için return, bir döngünün durdurulması için break kullanmak gerekir sakın unutma.
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
ben return false; kısmını hep komut parantezinin sonuna koyuyorum bütün if lerden sonra, bir sıkıntı olmuyor ?
Eclipse uyarı verince onun dediği yere return false eklyiorum
Komutu sonlandırmak için gerekir return, bir kaç farklı yere koyabilirsin sonuçta birden fazla kullanma şansına sahipsin bunu.
 

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
return true ne oluyor peki?
Void'ler Java tarafından baştan sona kadar, veya "return" görene kadar işlenir.
return true veya return false ise bir boolean'ın sonucunu belirtir.
Komut oluştururken neden kullandığımızı merak ediyorsan, Bukkit o bölümü boolean olarak kodladı. Orada işlemi durdurmak için return false kullanman gerekir.
 
Üst