Discord

  • 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!

Spigot Erledigt PlugIn Brauche Hilfe bei der Programmierung einer CoinAPI

zTrouble

Redstoneengineer
Mitglied seit
8 September 2019
Beiträge
30
Moin,

Ich arbeite momentan an einer CoinAPI die auch eine addCoins Methode beinhalten soll, mein aktuelles Problem ist es das wenn ich z.B 6 Coins setzen möchte wenn jemand den befehl /addcoins [args] eingibt (dieser ist nur zum Test weshalb er wenig Sinn macht) dann werden am Anfang 6 Coins hinzugefügt (falls der Spieler noch keine Coins hat). Wenn der Spieler jedoch schon einmal 6 Coins bekommen hat dann nicht mehr. Ich möchte das die Coins hinzugefügt werden und NICHT überschrieben also er soll auch 6 Coins bekommen wenn er schon welche hat, ich hab bereits eine getCoins Mehtode geschrieben die zu der Nachricht ausgegeben wird, in der Config und bei der Methoden Ausgabe bleibt es gleich.

AddCoins Methode:
    public static void addCoins(Player p, int anzahl) {
        FileConfiguration  cfg = Main.getinstance().getConfig();
        if(cfg.get(p.getUniqueId() + ".Coins") == null) {
            cfg.set(p.getUniqueId() + ".Coins", 0);
            int i = cfg.getInt(p.getUniqueId() + ".Coins");
            int total  = i + anzahl;
            cfg.set(p.getUniqueId() + ".Coins", total);
            Main.getinstance().saveConfig();
        }
    }
Bei Zeile 7 sollen die Coins dann hinzugefügt werden

AddCoins Command:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player p = (Player) sender;
        if(args.length == 1) {
            CoinAPI.addCoins(p, 6);
            p.sendMessage("§7Du hast §e§l" + CoinAPI.getCoins(p) + " §7Münzen");
        }
        return false;
       

       
    }

}
Meine Vermutung ist es das keine Coins hinzugefügt sondern gesetzt (also überschrieben) werden.
LG
 

DerFrZocker

Miner
Mitglied seit
10 Dezember 2017
Beiträge
161
Alter
20
Minecraft
DerFrZocker
Deine code logik stimmt nicht ganz:
Java:
        if(cfg.get(p.getUniqueId() + ".Coins") == null) {
            cfg.set(p.getUniqueId() + ".Coins", 0);
            int i = cfg.getInt(p.getUniqueId() + ".Coins");
            int total  = i + anzahl;
            cfg.set(p.getUniqueId() + ".Coins", total);
            Main.getinstance().saveConfig();
        }
Dieser ganze code Block wird nur ausgeführt wen der Spieler keine Coins hat. Ich vermude mal das du die klammer Falsche gesetzt hast. Und eigentlich nur wolltest, das dem Spieler wen er keine Coins hat 0 gegeben werden und danach die coins hinzu gefügt werden.
Sprich wenn du die klammer verschiebst sollte es funktionieren.
 
Oben