• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Meine Config wird nicht gespeichert!

2801MC

Kuhfänger
Registriert
15 August 2013
Beiträge
77
Diamanten
0
Hallo, ich programmiere (mal wieder...) ein Plugin, dieses aber nur für meinen eigenen Server!
Ich habe das Problem, dass die Config nicht gespeichert wird.

Code:
package de.skycraft.levelsystem;

import java.io.IOException;

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.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class scls extends JavaPlugin implements Listener {
   
    public void onEnable(){
        this.reloadConfig();
    }
   
    public void sc(){
        this.saveConfig();
    }
   
    public void sclevel(Player p){
        int kills = this.getConfig().getInt("players." + p.getName() + ".kills");
        int level = 0;
        int xp = 0;
        xp += kills*20;
        int xpn = 0;
        int xpg = xp;
        while(xp >= xpn){
            level++;
            xp -= xpn;
            xpn += 100;
        }
        int ang = level * 2;
        int vert = level * 2;
        int leben = level * 10;
        p.setMaxHealth((double) leben);
        this.getConfig().set("players." + p.getName() + ".ang", ang);
        this.getConfig().set("players." + p.getName() + ".vert", vert);
        this.getConfig().set("players." + p.getName() + ".leben", leben);
        this.getConfig().set("players." + p.getName() + ".level", level);
        this.getConfig().set("players." + p.getName() + ".xp", xp);
        this.getConfig().set("players." + p.getName() + ".xpn", xpn);
        this.getConfig().set("players." + p.getName() + ".xpg", xpg);
        sc();
    }
   
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
        if(sender instanceof Player){
            Player p = (Player) sender;
            if(cmd.getName().equalsIgnoreCase("scinfo")){
                if(args.length == 0){
                    int death = this.getConfig().getInt("players." + p.getName() + ".death");
                    int kills = this.getConfig().getInt("players." + p.getName() + ".kills");
                    double kdr = 0;
                    int ang = this.getConfig().getInt("players." + p.getName() + ".ang");
                    int vert = this.getConfig().getInt("players." + p.getName() + ".vert");
                    int xp = this.getConfig().getInt("players." + p.getName() + ".xp");
                    int xpn = this.getConfig().getInt("players." + p.getName() + ".xpn");
                    int xpg = this.getConfig().getInt("players." + p.getName() + ".xpg");
                    int level = this.getConfig().getInt("players." + p.getName() + ".level");
                    int leben = this.getConfig().getInt("players." + p.getName() + ".leben");
                    p.sendMessage(ChatColor.AQUA + "Deine Kills: " + kills);
                    p.sendMessage(ChatColor.AQUA + "Deine Tode: " + death);
                    p.sendMessage(ChatColor.AQUA + "Deine KDR: " + kdr);
                    p.sendMessage(ChatColor.AQUA + "Dein Angriffswert: " + ang);
                    p.sendMessage(ChatColor.AQUA + "Dein Verteidigungswert: " + vert);
                    p.sendMessage(ChatColor.AQUA + "Deine EXP:/n- Gesammt: " + xpg + "/n- Zum nächstem Level: " + xp + "/" + xpn);
                    p.sendMessage(ChatColor.AQUA + "Dein Level: " + level);
                    p.sendMessage(ChatColor.AQUA + "Deine Leben: " + p.getHealth() + "/" + leben);
                } else {
                    int death = this.getConfig().getInt("players." + args[0] + ".death");
                    int kills = this.getConfig().getInt("players." + args[0] + ".kills");
                    double kdr = 0;
                    int ang = this.getConfig().getInt("players." + args[0] + ".ang");
                    int vert = this.getConfig().getInt("players." + args[0] + ".vert");
                    int xp = this.getConfig().getInt("players." + args[0] + ".xp");
                    int xpn = this.getConfig().getInt("players." + args[0] + ".xpn");
                    int xpg = this.getConfig().getInt("players." + args[0] + ".xpg");
                    int level = this.getConfig().getInt("players." + args[0] + ".level");
                    int leben = this.getConfig().getInt("players." + args[0] + ".leben");
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Kills: " + kills);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Tode: " + death);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s KDR: " + kdr);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Angriffswert: " + ang);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Verteidigungswert: " + vert);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s EXP:/n- Gesammt: " + xpg + "/n- Zum nächstem Level: " + xp + "/" + xpn);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Level: " + level);
                    p.sendMessage(ChatColor.AQUA + args[0] + "'s Leben: " + p.getHealth() + "/" + leben);
                }
            }
        }
        return true;
    }
   
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){
        Player p = e.getEntity();
        Player k = p.getKiller();
        if(p instanceof Player && k instanceof Player){
            int death = this.getConfig().getInt("players." + p.getName() + ".death");
            int kills = this.getConfig().getInt("players." + k.getName() + ".kills");
            death++;
            kills++;
            this.getConfig().set("players." + p.getName() + ".death", death);
            this.getConfig().set("players." + k.getName() + ".kills", kills);
            sc();
            sclevel(p);
            sclevel(k);
        }
    }
   
    @EventHandler
    public void onAttack(EntityDamageByEntityEvent e){
        if(e.getEntity() instanceof Player && e.getDamager() instanceof Player){
            Player p = (Player) e.getEntity();
            Player d = (Player) e.getDamager();
            int ang = this.getConfig().getInt("players." + d.getName() + ".ang");
            int vert = this.getConfig().getInt("players." + p.getName() + ".vert");
            float angmulti = 1.0f;
            float vertmulti = 1.0f;
            float schaden = (ang * angmulti)/(vert * vertmulti);
            e.setDamage(schaden);
            sclevel(p);
            sclevel(d);
        }
    }
   
    @EventHandler
    public void onJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
        Bukkit.broadcastMessage(ChatColor.GOLD + "##########");
        Bukkit.broadcastMessage(ChatColor.AQUA + p.getName() + " ist Online!");
        Bukkit.broadcastMessage(ChatColor.GOLD + "##########");
        sclevel(p);
    }
   
}

Ich glaube es könnte wegen den events sein, diese scheinen nicht aufgerufen zu werden
Durch die Methode "sclevel(p)" müssten eigentlich sofort werte wie ang,vert,xp,xpn,xpg und ein paar andere gesetzt werden, aber die config bleibt leer und die broadcasts im "PlayerJoinEvent" werden auch nicht gezeigt...
 

Payno4

Schafhirte
Registriert
12 Februar 2015
Beiträge
127
Diamanten
300
#Edit
Diese Antwort nicht beachten , leider falsch :)
Ich bin mir nicht sicher , aber ich würd's mal so versuchen :

Oben hinzufügen :
Code:
private static main plugin;

    public static maingetPlugin(){

        return plugin;

    }

und dann :
Code:
    public void sclevel(Player p){

        main pl =main.getPlugin();

   

        int kills = this.getConfig().getInt("players." + p.getName() + ".kills");

        int level = 0;

        int xp = 0;

        xp += kills*20;

        int xpn = 0;

        int xpg = xp;

        while(xp >= xpn){

            level++;

            xp -= xpn;

            xpn += 100;

        }

        int ang = level * 2;

        int vert = level * 2;

        int leben = level * 10;

        p.setMaxHealth((double) leben);

        this.getConfig().set("players." + p.getName() + ".ang", ang);

        this.getConfig().set("players." + p.getName() + ".vert", vert);

        this.getConfig().set("players." + p.getName() + ".leben", leben);

        this.getConfig().set("players." + p.getName() + ".level", level);

        this.getConfig().set("players." + p.getName() + ".xp", xp);

        this.getConfig().set("players." + p.getName() + ".xpn", xpn);

        this.getConfig().set("players." + p.getName() + ".xpg", xpg);

        pl.saveConfig();

    }

Kann aber auch totaler Blödsinn sein :D einfach mal ausprobieren ob's geht :)
 
Zuletzt bearbeitet:
Oben