Yapmaya çalıştığım scoreboard ile ilgili sorunlar

McWeb

Kızıltaş Madencisi
En iyi cevaplar
0
PHP:
package com.mcweb;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

public class Ana extends JavaPlugin implements Listener {
   
    static Plugin plugin;
   
    public void onEnable() {       
        saveDefaultConfig();
    }

   
   
    @EventHandler(priority=EventPriority.HIGHEST)
    public void pingevent(ServerListPingEvent e) {
       
        reloadConfig();
       
        e.setMotd(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdTasarim")));
    }
   
public boolean onCommand(CommandSender gonderen, Command komut,String string, String[] args) {
    Player oyuncu = (Player) gonderen;
    if(komut.getName().equalsIgnoreCase("motd")) {
        if(oyuncu.hasPermission("motd.admin")) {
        if(args.length == 0) {
            if (getConfig().getBoolean("Komut", true)) {
            gonderen.sendMessage(ChatColor.BOLD + "-----------=[Komutlar]=-----------");
            gonderen.sendMessage(ChatColor.AQUA + "/motd yap <motd>");
            gonderen.sendMessage(ChatColor.AQUA + "/motd yenile ");                  
              }
          }
        }
        else oyuncu.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + (ChatColor.GOLD + "Yetkiniz yok!"))); {}
    }
        if(args.length == 1) {
            if(args[0].equalsIgnoreCase("yap")) {
                if(oyuncu.hasPermission("motd.admin")) {
                gonderen.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("Yap")));        
                if (args.length >= 1) {
                    getConfig().set("MotdTasarim", (args[1].equalsIgnoreCase(string)));
                Bukkit.getServer().getPluginManager().registerEvents(this, this);
                saveDefaultConfig();
                saveConfig();
                reloadConfig();
                gonderen.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("Yapildi")));
                }
                }
                else oyuncu.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("YetkiYok"))); {}
                return true;
            }
        }
        else oyuncu.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("YetkiYok"))); {}
        if(args.length == 1) {
            if(args[1].equalsIgnoreCase("yenile")) {
                if(oyuncu.hasPermission("motd.admin")) {
                gonderen.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("Yenile")));
                this.reloadConfig();
                this.onLoad();
                oyuncu.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("MotdYenilendi")));
                }
                else oyuncu.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MotdPrefix") + getConfig().getString("YetkiYok"))); {}
        }
    }
    return false;
}
}
Bir scoreboard plugini yapmaya çalışıyorum fakat bir kaç sorunum var.
1)

2) /motd yenile yazdığımda

3) /motd yap yazdığımda

Yardım edenlere şimdiden teşekkürler
 

Personinblack

YASAKLANDI
En iyi cevaplar
0
2-
args[1] değil args[0] olmalı çünkü java'da index 0 dan başlar. yani "/motd yenile" komutunda args[0] == "yenile" Hata vermesinin tam sebebi if (args.length == 1) dedikten sonra args[1]'i almaya çalışman. Ha birde şimdi dikkatimi çekti aynı if den 2 tane kullanmışsın.

3-
if (args.length >= 1) böyle bir şey olamaz çünkü hemen üstünde if (args.length == 1) var.
Eventlarını onEnable kısmında kaydetmelisin. Ayrıca her şeyi tek bir class üzerinde yapmaya çalışma sakın. Bu çok kötü bir davranış.

Her onEnable'da config default haliyle değiştiriliyor. Bu da configi düzenlenemez yapıyor.

Tabler birbirine karışmış. Kod tamamıyla düzensiz. Tek bir class üzerinden tüm plugini yazmaya çalışıyorsun. Config olayını nasıl kullanacağını kesinlikle bilmiyorsun. Sorunlarını paylaşırken konsolda aldığın hatalara yer vermemişsin. Bu da stacktrace bilmediğin anlamına gelir. Stacktrace için şuraya bak: "
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
" Tabi buraya bakmadan önce iyice bir Java öğren. Çünkü Java bilmediğin açık ve net. "
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
" Burada ki Java derslerine bakabilirsin.

Lütfen önce tam anlamıyla java öğrenmeden Spigot API'a geçmeyin. Spigot forumlarında bu tarz sorulara verilen cevap: "Learn Java"
 
Son düzenleme:

CoffeeBeat

Zindev
En iyi cevaplar
0
İster zengin ,ister fukara;Kod yazdıktan sonra yak bi CTRL+SHIFT+F.
(Kafiye olmadı ama anladın sen ne dediğimi)
 
Üst