Initial Initialization error

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

SeltixSub

Member
Jul 2, 2017
15
1
0
22
Hey, i have some Problems with my Addon 'Coins':
Its planned to be a simple Coins Plugin with Config.

It starts normal without any Problems,
if you (re)load the Skript with the Code it says everything is okay,
but if you execute the code it says 'An internal error occured while attempting to perfom this command.';
And the Console says:

code_language.skript:
[21:56:31 ERROR]: #!#!     at java.lang.reflect.Method.invoke(Method.java:498)
[21:56:31 ERROR]: #!#!     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306)
[21:56:31 ERROR]: #!#!     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[21:56:31 ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1154)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
[21:56:32 ERROR]: #!#!     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[21:56:32 ERROR]: #!#!     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[21:56:32 ERROR]: #!#!     at java.lang.Thread.run(Thread.java:748)
[21:56:32 ERROR]: #!#! Caused by: java.lang.IllegalStateException: Initial initialization
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66)
[21:56:32 ERROR]: #!#!     at coins.Main.<init>(Main.java:24)
[21:56:32 ERROR]: #!#!     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[21:56:32 ERROR]: #!#!     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[21:56:32 ERROR]: #!#!     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[21:56:32 ERROR]: #!#!     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[21:56:32 ERROR]: #!#!     at java.lang.Class.newInstance(Class.java:442)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329)
[21:56:32 ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251)
[21:56:32 ERROR]: #!#!     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198)
[21:56:32 ERROR]: #!#!     at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)
[21:56:32 ERROR]: #!#!     at java.lang.Thread.run(Thread.java:748)
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Version Information:
[21:56:32 ERROR]: #!#!   Skript: 2.1.2
[21:56:32 ERROR]: #!#!   Bukkit: 1.8.8-R0.1-SNAPSHOT
[21:56:32 ERROR]: #!#!   Minecraft: 1.8.8
[21:56:32 ERROR]: #!#!   Java: 1.8.0_144
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Running CraftBukkit: false
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Current node: null
[21:56:32 ERROR]: #!#! Current item: set amount of %player% coins to %number%
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Thread: Server thread
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! End of Error.
[21:56:32 ERROR]: #!#!

The Main class of the Plugin (Written in German):
Java:
package coins;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

import ch.njol.skript.Skript;
import ch.njol.skript.lang.ExpressionType;
import skript.EffRemoveCoins;
import skript.EffResetCoins;
import skript.EffSetCoins;
import skript.ExprGetCoins;


public class Main extends JavaPlugin implements Listener{

    public File coinsFile; // Players
    public YamlConfiguration cfconfig;
    
    public Integer standardamount = 5000;
    public String name = "Coins";
    
    public File configFile; // Some Options
    public YamlConfiguration cfgFile;
    
    @Override
    public void onEnable() {
        Bukkit.getServer().getLogger().info("[Coins] Plugin gestartet!");
        
        checkDir("Coins");
        
        configFile = new File("plugins/Coins/config.yml");
        new YamlConfiguration();
        cfgFile = YamlConfiguration.loadConfiguration(configFile);
        
        
        if(!configFile.exists()) { //Check if your external file exists
            try {
                configFile.createNewFile(); //if not so, create a new one
                cfgFile.set("command", "enabled");
                cfgFile.set("name", "Coins"); //
                
                
                
                
                
                // LAST EDIT
                
                
                
                
                
                cfgFile.set("standardamount", 5000);
                cfgFile.options().copyDefaults(true);
                cfgFile.save(configFile); //save the configuration of config1 or config2 to your new file
            } catch (IOException e) {
                System.out.println("[Coins] Couldn't create config.yml!"); //if something goes wrong this is what will be done then
                System.out.print("[Coins] Error:" + e.toString());
                this.getPluginLoader().disablePlugin(this);
            }
        }else {
            name = cfgFile.getString("name"); // Loading Name
            standardamount = cfgFile.getInt("standardamount"); // Loading start Capital
        }
        
        coinsFile = new File("plugins/Coins/players.yml");
        new YamlConfiguration();
        cfconfig = YamlConfiguration.loadConfiguration(coinsFile);
        
        
        if(!coinsFile.exists()) { //Check if your external file exists
            try {
                coinsFile.createNewFile(); //if not so, create a new one
                cfconfig.options().copyDefaults(true);
                cfconfig.save(coinsFile); //save the configuration of config1 or config2 to your new file
            } catch (IOException e) {
                System.out.println("[Coins] Couldn't create players.yml!"); //if something goes wrong this is what will be done then
                System.out.print("[Coins] Error: " + e.toString());
                this.getPluginLoader().disablePlugin(this);
            }
        }
        
        if(Bukkit.getPluginManager().getPlugin("Skript") == null) {
            sendMessage("[Coins] Skript nicht gefunden :(");
        }else {
            sendMessage("[Coins] Skript wurde gefunden :)");
            this.registerSkript();
        }
    }
    
    public void registerSkript() {
        
        Skript.registerEffect(EffSetCoins.class, new String[] {"set %player%'[s] coins to %number%"});
        Skript.registerEffect(EffSetCoins.class, new String[] {"add %number% to %player%'[s] coins"});
        Skript.registerEffect(EffRemoveCoins.class, new String[] {"remove %number% of %player%'[s] coins"});
        Skript.registerEffect(EffResetCoins.class, new String[] {"reset %player%'[s] coins"});
        Skript.registerExpression(ExprGetCoins.class, String.class, ExpressionType.SIMPLE, new String[] {"%player%'[s] coins"});
        
    }
    
    private boolean checkDir(String dirName)
    {
        dirName = "plugins/" + dirName;
        
        File stats = new File(dirName);
        if (stats.exists() && stats.isDirectory())    // Überprüfen, ob es den Ordner gibt
        {
            return true;
        }
        else
        {
            if (stats.mkdir())    // Erstellen des Ordners
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
    
    @Override
    public void onDisable() {
        saveConfig();
        sendMessage("[Coins] Stope Plugin!");
    }
    
    public void onJoin(PlayerJoinEvent e){
        if(cfconfig.contains(e.getPlayer().getUniqueId().toString()) == false) {
            setCoins(e.getPlayer(), 5000);
        }
    }
    
    public void setCoins(Player p, int amount) {
        cfconfig.set(p.getUniqueId().toString(), amount);
        saveconfig();
    }
    
    public void addCoins(Player p, int amount) {
        int money = (int) cfconfig.get(p.getUniqueId().toString()) + amount;
        cfconfig.set(p.getUniqueId().toString(), money);
        saveconfig();
    }
    
    public void removeCoins(Player p, int amount) {
        int currentmoney = (int) cfconfig.get(p.getUniqueId().toString());
        if(currentmoney >= amount) {
            cfconfig.set(p.getUniqueId().toString(), currentmoney - amount);
        }else {
            cfconfig.set(p.getUniqueId().toString(), 0);
        }
        saveconfig();
    }
    
    public void resetCoins(Player p) {
        cfconfig.set(p.getUniqueId().toString(), 0);
        saveconfig();
    }
    
    public Integer getCoins(Player p) {
        return (Integer) Integer.getInteger((String) cfconfig.get(p.getUniqueId().toString())).intValue();
    }
    
    public String prefix() {
        return "§6§l§o" + name + " §7» ";
    }
    
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (cmd.getName().equalsIgnoreCase("coins")) {
                if(sender instanceof Player) {
                    Player p = (Player)sender;
                    
                    if(cfconfig.contains(p.getUniqueId().toString()) == false) {
                        cfconfig.set(p.getUniqueId().toString(), 5000);
                        saveconfig();
                    }
                    
                    if(args.length == 0) {
                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                        p.sendMessage(prefix() + "§7Du hast§e " + cfconfig.get(p.getUniqueId().toString()) + " §7Coins");
                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                    }else {
                        if(args.length >= 1 && args.length <= 3) {
                            if(args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                p.sendMessage(prefix() + "§aUm deine Coins zu sehen: §7/coins");
                                p.sendMessage(prefix() + "§aUm Coins anderer Spieler zu sehen: §7/coins §aSpieler");
                                p.sendMessage(prefix() + "§aUm Spieler etwas von deinen Coins abzugeben: §7/coins give §bSpieler §eBetrag");
                                if(p.hasPermission("coins.admin")) {
                                    p.sendMessage(prefix() + "§aUm weitere Befehle zu sehen: §7/coins admin");
                                }
                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                            }else if(args[0].equalsIgnoreCase("admin")) {
                                if(p.hasPermission("coins.admin") || p.hasPermission("coins.*")) {
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    p.sendMessage(prefix() + "§aUm einem Spieler Coins hinzuzufügen: §7/coins add §aSpieler §eBetrag");
                                    p.sendMessage(prefix() + "§aUm einem Spieler Coins zu nehmen: §7/coins remove §cSpieler §eBetrag");
                                    p.sendMessage(prefix() + "§aCoins eines Spielers setzen: §7/coins set §bSpieler §eBetrag");
                                    p.sendMessage(prefix() + "§aCoins eines Spielers zurück setzen: §7/coins reset §cSpieler");
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                }else {
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    p.sendMessage(prefix() + "§7Es tut mir leid, aber du darfst diesen Befehl icht benutzen!");
                                    p.sendMessage(prefix() + "§7Fehlende Permission: §ccoins.admin");
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                }
                            }else if(args[0].equalsIgnoreCase("give")) {
                                if(args.length != 3) {
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    p.sendMessage(prefix() + "§7/coins give §aSpieler §eBetrag");
                                    p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld übertragen!");
                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                }else {
                                    @SuppressWarnings("deprecation")
                                    OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
                                    if(empf != null) {
                                        if(isNumeric(args[2])) {
                                            int currentmoney = (int) cfconfig.get(p.getUniqueId().toString());
                                            int amount = Integer.parseInt(args[2]);
                                            if(currentmoney >= amount) {
                                                removeCoins(p, amount);
                                                addCoins(empf.getPlayer(), amount);
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins gegeben!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                if(empf.isOnline()) {
                                                    Player p2 = empf.getPlayer();
                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins bekommen!");
                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                }
                                            }else {
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Oh, wie es scheint hast du keine §c" + args[2].toString() + " §7Coins!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            }
                                        }else {
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        }
                                    }else {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }
                                }
                            }else if(args[0].equalsIgnoreCase("add")) {
                                if(p.hasPermission("coins.add") || p.hasPermission("coins.*")) {
                                    if(args.length != 3) {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7/coins add §aSpieler §eBetrag");
                                        p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld hinzufügen!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }else {
                                        @SuppressWarnings("deprecation")
                                        OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
                                        if(empf != null) {
                                            if(isNumeric(args[2])) {
                                                int amount = Integer.parseInt(args[2]);
                                                    addCoins(empf.getPlayer(), amount);
                                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins hinzugefügt!");
                                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    if(empf.isOnline()) {
                                                        Player p2 = empf.getPlayer();
                                                        p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                        p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins hinzugefügt bekommen!");
                                                        p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    }
                                            }else {
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            }
                                        }else {
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        }
                                    }
                                }else {
                                    noPermission(p, "coins.add");
                                }
                            }else if(args[0].equalsIgnoreCase("remove")) {
                                if(p.hasPermission("coins.remove") || p.hasPermission("coins.*")) {
                                    if(args.length != 3) {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7/coins remove §aSpieler §eBetrag");
                                        p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld weg nehmen!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }else {
                                        @SuppressWarnings("deprecation")
                                        OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
                                        if(empf != null) {
                                            if(isNumeric(args[2])) {
                                                int amount = Integer.parseInt(args[2]);
                                                    removeCoins(empf.getPlayer(), amount);
                                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins weg genommen!");
                                                    p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    if(empf.isOnline()) {
                                                        Player p2 = empf.getPlayer();
                                                        p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                        p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins weg genommen bekommen!");
                                                        p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    }
                                            }else {
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            }
                                        }else {
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        }
                                    }
                                }else {
                                    noPermission(p, "coins.remove");
                                }
                            }else if(args[0].equalsIgnoreCase("dev")) {
                                if(args.length == 2) {
                                    @SuppressWarnings("deprecation")
                                    OfflinePlayer p2 = Bukkit.getOfflinePlayer(args[1]);
                                    p.sendMessage("Status for you arg: " + cfconfig.getStringList(p2.getUniqueId().toString()));
                                    p.sendMessage("Status for your arg: " + cfconfig.contains(p2.getUniqueId().toString()));
                                }
                            }else if(args[0].equalsIgnoreCase("set")) {
                                    if(p.hasPermission("coins.set") || p.hasPermission("coins.*")) {
                                        if(args.length != 3) {
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            p.sendMessage(prefix() + "§7/coins set §aSpieler §eBetrag");
                                            p.sendMessage(prefix() + "§aMit diesem Befehl kannst du den Account anderer Spieler auf eine bestimmte Anzahl von Coins setzen!");
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        }else {
                                            //@SuppressWarnings("deprecation")
                                            Player empf = Bukkit.getPlayer(args[1].toString());
                                            if(empf != null && empf.hasPlayedBefore()) {
                                                if(isNumeric(args[2])) {
                                                            int amount = Integer.parseInt(args[2]);
                                                            setCoins(empf.getPlayer(), amount);
                                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                            p.sendMessage(prefix() + "§7Du hast den Account von §a" + args[1] + "§7 auf §e" + args[2] + " §7gesetzt!");
                                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                                if(empf.isOnline()) {
                                                                    Player p2 = empf.getPlayer();
                                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                                    p2.sendMessage(prefix() + "§7Dein Account wurde von §a" + args[1] + "§7 auf §e" + args[2] + " §7Coins gesetzt!!");
                                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                                }
                                                    }else {
                                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                        p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
                                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    }
                                            }else {
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            }
                                        }
                                    }else {
                                        noPermission(p, "coins.set");
                                    }
                            }else if(args[0].equalsIgnoreCase("reset")) {
                                if(p.hasPermission("coins.reset") || p.hasPermission("coins.*")) {
                                    if(args.length != 2) {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7/coins reset §aSpieler");
                                        p.sendMessage(prefix() + "§aMit diesem Befehl kannst du den Account anderer Spieler zurück setzen!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }else {
                                        Player empf = Bukkit.getPlayer(args[1].toString());
                                        if(empf != null) {
                                                resetCoins(empf.getPlayer());
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                p.sendMessage(prefix() + "§7Du hast den Account von §a" + args[1] + "§7 zurück gesetzt!");
                                                p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                if(empf.isOnline()) {
                                                    Player p2 = empf.getPlayer();
                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                    p2.sendMessage(prefix() + "§7Dein Account wurde von §a" + args[1] + "§7 zurück gesetzt!");
                                                    p2.sendMessage(prefix() + "⛀⛁⛃⛂");
                                                }
                                        }else {
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                            p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
                                            p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        }
                                    }
                                }else {
                                    noPermission(p, "coins.reset");
                                }
                            }else {
                                @SuppressWarnings("deprecation")
                                OfflinePlayer p2 = Bukkit.getOfflinePlayer(args[0]);
                                if(p2 != null) {
                                    if(cfconfig.contains(p2.getUniqueId().toString()) == false) {
                                        cfconfig.set(p2.getUniqueId().toString(), 5000);
                                        saveconfig();
                                    }
                                    
                                    if(cfconfig.contains(p2.getUniqueId().toString())) {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7Der Spieler §a" + args[0] + "§7 hat §e" + cfconfig.get(p2.getUniqueId().toString()) + " §7Coins!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }else {
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                        p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[0].toString() + " §7nicht!");
                                        p.sendMessage(prefix() + "⛀⛁⛃⛂");
                                    }
                                }else {
                                    wrongArgument(p, "§7Oh, wie es aussieht, ist kein Spieler mit dem Namen §c " + args[0] + "§7 online!");
                                }
                            }
                        }else {
                            p.sendMessage(prefix() + "§cFehler! §aHilfe gibt es bei §e/coins hilfe/?");
                        }
                    }
                } else
                    sender.sendMessage(prefix() + "§7Du kannst als §cKonsole§7 diesen Befehl nicht benutzen!");
         }


        return true;
      }
    
    public void sendMessage(String msg) {
         org.bukkit.Bukkit.getServer().getLogger().info(msg);
    }
    
    public void wrongArgument(Player p, String text) {
        p.sendMessage(prefix() + "⛀⛁⛃⛂");
        p.sendMessage(prefix() + text);
        p.sendMessage(prefix() + "⛀⛁⛃⛂");
    }
    
    public void noPermission(Player p,String perm) {
        p.sendMessage(prefix() + "⛀⛁⛃⛂");
        p.sendMessage(prefix() + "§7Es tut mir leid, aber du darfst diesen Befehl icht benutzen!");
        p.sendMessage(prefix() + "§7Fehlende Permission: §c" + perm);
        p.sendMessage(prefix() + "⛀⛁⛃⛂");
    }
    
    public static boolean isNumeric(String str)
    {
      return str.matches("-?\\d+(\\.\\d+)?");  //match a number with optional '-' and decimal.
    }
    
    public void saveconfig() {
        
         try {
             cfconfig.options().copyDefaults(true);
             cfconfig.save(coinsFile);
         }catch(Exception e){
             sendMessage("[Coins] Failed saving config:");
             sendMessage("[Coins] " + e.toString());
         }
        
        
    }
    
    
}

The Skript:

code_language.skript:
on npc right click:
    if citizen is 0:
        cancel event
        open "CHEST" with 4 rows named "            &7&lHändler" to player
        format slot 10 of player with shears named "&7&lScherre" with lore "&a100 &2Coins" to be unstealable
        format slot 12 of player with iron shovel named "&7&lSchaufel" with lore "&a50 &2Coins" to be unstealable
        format slot 13 of player with iron pickaxe named "&7&lSpitzhacke" with lore "&a150 &2Coins" to be unstealable
        format slot 14 of player with iron axe named "&7&lAxt" with lore "&a150 &2Coins" to be unstealable
        format slot 16 of player with fishing rod named "&7&lAngel" with lore "&a25 &2Coins" to be unstealable
        format slot 19 of player with shears of efficiency 5 and unbreaking 3 named "&7&lScherre" with lore "&a200 &2Coins" to be unstealable
        format slot 21 of player with iron shovel of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lSchaufel" with lore "&a350 &2Coins" to be unstealable
        format slot 22 of player with iron pickaxe of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lSpitzhacke" with lore "&a450 &2Coins" to be unstealable
        format slot 23 of player with iron axe of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lAxt" with lore "&a450 &2Coins" to be unstealable
        format slot 25 of player with fishing rod of efficiency 5 and unbreaking 3 named "&7&lAngel" with lore "&a125 &2Coins" to be unstealable

command /buyitems [<player>] [<item>]:
    trigger:
        executor is console:
            send "X"
        else:
            send "&cMaybe you will execute this command, maybe not."
            #add 100 to player's coins
            
command /testcoins [<text>]:
    trigger:
        player is "SeltixSub":
            arg is "1":
                set player's coins to 1000
            arg is "2":
                add 1001 to player's coins
            arg is "3":
                remove 11 of player's coins
            arg is "4":
                reset player's coins
            arg is "5":
                send "Coins: %player's coins%"

If you need more than this, just write it down below.

Thanks for reading & helping! :emoji_grinning:

- Daniel