Minecraft scoreboard plugin config.yml ekleyemiyorum

McWeb

Kızıltaş Madencisi
En iyi cevaplar
0
İlk hali
PHP:
public class Ana extends JavaPlugin implements Listener {
   
    static Plugin plugin;
   
    public void onEnable() {
        plugin = this;
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
       
    }
   
   
    ScoreboardManager manager = Bukkit.getScoreboardManager();
    final Scoreboard board = manager.getNewScoreboard();
    final Objective objective = board.registerNewObjective("test", "dummy");

   
    @EventHandler
    public void PlayerJoin(PlayerJoinEvent e) {

       
        final Player p = e.getPlayer();

       
        Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(Ana.plugin, new Runnable() {
            public void run() {
               
                ScoreboardManager manager = Bukkit.getScoreboardManager();
                final Scoreboard board = manager.getNewScoreboard();
                final Objective objective = board.registerNewObjective("test", "dummy");
               
                objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                objective.setDisplayName(ChatColor.RED + "ParanoyakGames");

                Score score = objective.getScore(ChatColor.AQUA + "Oyuncu Adı:");
                score.setScore(10);
               
                Score score1 = objective.getScore(ChatColor.GRAY + p.getName());
                score1.setScore(9);
               
                Score score2 = objective.getScore(ChatColor.AQUA + "Can:");
                score2.setScore(8);
               
                long health = Math.round(p.getHealth());
               
                Score score3 = objective.getScore(ChatColor.GRAY + String.valueOf(health));
                score3.setScore(7);
               
                p.setScoreboard(board);

            }
        },0, 20 * 10);
       
    }

}
Config.yml eklemeye çalıştığımda geldiği hal
PHP:
@SuppressWarnings("unused")
public class Ana extends JavaPlugin implements Listener {
  
    static Plugin plugin;
  
    public void onEnable() {
        plugin = this;
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getConfig().options().copyDefaults(true);
        saveConfig();
        reloadConfig();
    }
  
  
    ScoreboardManager manager = Bukkit.getScoreboardManager();
    final Scoreboard board = manager.getNewScoreboard();
    final Objective objective = board.registerNewObjective("test", "dummy");

  
    @EventHandler
    public void PlayerJoin(PlayerJoinEvent e) {

      
        final Player p = e.getPlayer();

      
        Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(Ana.plugin, new Runnable() {
            @EventHandler(priority=EventPriority.HIGHEST)
            public void pingevent(ServerListPingEvent e) {
            } public void run() {
              
                ScoreboardManager manager = Bukkit.getScoreboardManager();
                final Scoreboard board = manager.getNewScoreboard();
                final Objective objective = board.registerNewObjective("test", "dummy");
          

              
                objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                p.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("ServerAD")));

                Score score = objective.getScore(ChatColor.AQUA + "Oyuncu Adı:");
                score.setScore(10);
              
                Score score1 = objective.getScore(ChatColor.GRAY + p.getName());
                score1.setScore(9);
              
                Score score2 = objective.getScore(ChatColor.AQUA + "Can:");
                score2.setScore(8);
              
                long health = Math.round(p.getHealth());
              
                Score score3 = objective.getScore(ChatColor.GRAY + String.valueOf(health));
                score3.setScore(7);
              
                p.setScoreboard(board);

            }
        },0, 20 * 10);
      
    }

}
Bu kodu internetten ders videoları vs. izleyerek yazdım. Fakat config.yml'yi bir türlü yapamadım . Server ad kısmına yazdığım scoreboard adı değil oyuncuların adı olarak gözüküyor nasıl çözebilirim? Yardım edenlere şimdiden teşekkürler.
 

GodofMilker

Nether Yerlisi
En iyi cevaplar
0
PHP:
@SuppressWarnings("unused")
public class Ana extends JavaPlugin implements Listener {
 
    static Plugin plugin;
    public static FileConfiguration configyml;
    public static File configf;

    public void onEnable() {
        plugin = this;
        configf = new File(this.getDataFolder(), "config.yml");
        configyml = YamlConfiguration.fromFile(configf) (bundan emin değilim, böyle bir şeyler);
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        if(!configf.exists()) {
        configf.mkdirs();
        configyml.load(configf);
        configyml.set(ayarlamalar falan filan);
       configyml.save(configf);
       }
      configyml.load(configf);
    }
 
 
    ScoreboardManager manager = Bukkit.getScoreboardManager();
    final Scoreboard board = manager.getNewScoreboard();
    final Objective objective = board.registerNewObjective("test", "dummy");

 
    @EventHandler
    public void PlayerJoin(PlayerJoinEvent e) {

     
        final Player p = e.getPlayer();

     
        Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(Ana.plugin, new Runnable() {
            @EventHandler(priority=EventPriority.HIGHEST)
            public void pingevent(ServerListPingEvent e) {
            } public void run() {
             
                ScoreboardManager manager = Bukkit.getScoreboardManager();
                final Scoreboard board = manager.getNewScoreboard();
                final Objective objective = board.registerNewObjective("test", "dummy");
         

             
                objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                p.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("ServerAD")));

                Score score = objective.getScore(ChatColor.AQUA + "Oyuncu Adı:");
                score.setScore(10);
             
                Score score1 = objective.getScore(ChatColor.GRAY + p.getName());
                score1.setScore(9);
             
                Score score2 = objective.getScore(ChatColor.AQUA + "Can:");
                score2.setScore(8);
             
                long health = Math.round(p.getHealth());
             
                Score score3 = objective.getScore(ChatColor.GRAY + String.valueOf(health));
                score3.setScore(7);
             
                p.setScoreboard(board);

            }
        },0, 20 * 10);
     
    }

}
configyml metodları normal config metodları*
 

şifrenisöyle

Kızıltaş Madencisi
En iyi cevaplar
0
istersen sana bi api veriyim onu kullan rahat ve kullanışlı;
Kod:
private Scoreboard scoreboard;
   
    private String title;
    private Map<String, Integer> scores;
    private List<Team> teams;
   
    public ScoreboardsAPI(String title1) {
        scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
        title = title1;
        scores = Maps.newLinkedHashMap();
        teams = Lists.newArrayList();
    }
   
    public void blankLine() {
        add(" ");
    }
   
    public void add(String text) {
        add(text, null);
    }
   
    public void add(String text, Integer score) {
        Preconditions.checkArgument(text.length() < 48, "text cannot be over 48 characters in length");
        text = fixDuplicates(text);
        scores.put(text, score);
    }
   
    private String fixDuplicates(String text) {
        while (scores.containsKey(text))
            text += "§r";
        if (text.length() > 48)
            text = text.substring(0, 47);
        return text;
    }
   
    private Map.Entry<Team, String> createTeam(String text) {
        String result = "";
        if (text.length() <= 18)
            return new AbstractMap.SimpleEntry<>(null, text);
        Team team = scoreboard.registerNewTeam("text-" + scoreboard.getTeams().size());
        Iterator<String> iterator = Splitter.fixedLength(16).split(text).iterator();
        team.setPrefix(iterator.next());
        result = iterator.next();
        if (text.length() > 32)
            team.setSuffix(iterator.next());
        teams.add(team);
        return new AbstractMap.SimpleEntry<>(team, result);
    }
   
    @SuppressWarnings("deprecation")
    public void build() {
        Objective obj = scoreboard.registerNewObjective((title.length() > 16 ? title.substring(0, 15) : title), "dummy");
        obj.setDisplayName(title);
        obj.setDisplaySlot(DisplaySlot.SIDEBAR);
       
        int index = scores.size();
       
        for (Map.Entry<String, Integer> text : scores.entrySet()) {
            Map.Entry<Team, String> team = createTeam(text.getKey());
            Integer score = text.getValue() != null ? text.getValue() : index;
            OfflinePlayer p = new Message(team.getValue());
            if (team.getKey() != null)
                team.getKey().addPlayer(p);
            obj.getScore(p).setScore(score);
            index -= 1;
        }
    }

    public void reset() {
        title = null;
        scores.clear();
        for (Team t : teams)
            t.unregister();
        teams.clear();
    }
   
    public Scoreboard getScoreboard() {
        return scoreboard;
    }
   
    public void send(Player... players) {
        for (Player p : players)
            p.setScoreboard(scoreboard);
    }
   
    class Message implements OfflinePlayer{
        String name;
       
        public Message(String name){
            this.name = name;
        }

        @Override
        public String getName(){
            return name;
        }
       
        @Override
        public Map<String, Object> serialize(){
            return null;
        }
       
        @Override
        public UUID getUniqueId(){
            return UUID.randomUUID();
        }

        @Override
        public boolean isOp(){
            return false;
        }
       
        @Override
        public void setOp(boolean value){
        }

        @Override
        public Location getBedSpawnLocation(){
            return null;
        }

        @Override
        public long getFirstPlayed(){
            return 0;
        }

        @Override
        public long getLastPlayed(){
            return 0;
        }

        @Override
        public Player getPlayer(){
            return null;
        }

        @Override
        public boolean hasPlayedBefore(){
            return false;
        }

        @Override
        public boolean isBanned(){
            return false;
        }

        @Override
        public void setBanned(boolean b) {

        }

        @Override
        public boolean isOnline(){
            return false;
        }

        @Override
        public boolean isWhitelisted(){
            return false;
        }

        @Override
        public void setWhitelisted(boolean b) {

        }
    }

ScoreboardApi api = new ScoreboardApi("basşlık");
api.addblankLine(); // boş alan ekler
api.add("yazılar vs");
api.build(); //build eder
api.send(player); // oyuncuya yollar

ayrıca bu üçü yerine direk
Kod:
getConfig().options().copyDefaults(true);
        saveConfig();
        reloadConfig();

saveDefaultConfig(); yazsanda iş görür :)
 
Üst