Setting config values not working

Discussion in 'Spigot Plugin Development' started by TheMcBaws, Jul 27, 2018.

  1. Yep, Im having problems setting values in my config, a bunch of it gets deleted after I saveConfig();
    Code (Java):
                        Location loc = player.getLocation();
                        Double x, y, z;
                        Float yaw, pitch;
                        String world;
                        x = loc.getX();
                        y = loc.getY();
                        z = loc.getZ();
                        yaw = loc.getYaw();
                        pitch = loc.getPitch();
                        world = loc.getWorld().getName();
                        config.set("x", x);
                        config.set("y", y);
                        config.set("z", z);
                        config.set("pitch", pitch);
                        config.set("yaw", yaw);
                        config.set("world", world);
                        saveConfig();
    Code (YAML):
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                                                                                             #
    #                                                                                             #
    #                AAA                      JJJJJJJJJJJ                 iiii                    #
    #               A:::A                     J:::::::::J                i::::i                   #
    #              A:::::A                    J:::::::::J                 iiii                    #
    #             A:::::::A                   JJ:::::::JJ                                         #
    #            A:::::::::A                    J:::::J   ooooooooooo   iiiiiiinnnn  nnnnnnnn     #
    #           A:::::A:::::A                   J:::::J oo:::::::::::oo i:::::in:::nn::::::::nn   #
    #          A:::::A A:::::A                  J:::::Jo:::::::::::::::o i::::in::::::::::::::nn  #
    #         A:::::A   A:::::A                 J:::::jo:::::ooooo:::::o i::::inn:::::::::::::::n #
    #        A:::::A     A:::::A                J:::::Jo::::o     o::::o i::::i  n:::::nnnn:::::n #
    #       A:::::AAAAAAAAA:::::A   JJJJJJJ     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #      A:::::::::::::::::::::A  J:::::J     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #     A:::::AAAAAAAAAAAAA:::::A J::::::J   J::::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #    A:::::A             A:::::AJ:::::::JJJ:::::::Jo:::::ooooo:::::oi::::::i n::::n    n::::n #
    #   A:::::A               A:::::AJJ:::::::::::::JJ o:::::::::::::::oi::::::i n::::n    n::::n #
    #  A:::::A                 A:::::A JJ:::::::::JJ    oo:::::::::::oo i::::::i n::::n    n::::n #
    # AAAAAAA                   AAAAAAA  JJJJJJJJJ        ooooooooooo   iiiiiiii nnnnnn    nnnnnn #
    #                                    by Themcbaws                                             #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

            # If you need help contact me on Spigot or on Discord(Themcbaws#3884) #
               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
               # |  \/  |     (_)        / ____|    | | | | (_)                #
               # | \  / | __ _ _ _ __   | (___   ___| |_| |_ _ _ __   __ _ ___ #
               # | |\/| |/ _` | | '_ \   \___ \ / _ \ __| __| | '_ \ / _` / __|#
               # | |  | | (_| | | | | |  ____) |  __/ |_| |_| | | | | (_| \__ \#
               # |_|  |_|\__,_|_|_| |_| |_____/ \___|\__|\__|_|_| |_|\__, |___/#
               #                                                      __/ |    #
               #                                                     |___/     #
               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
               # these may or may not need complete plugin reloading/server restarts
    useplaceholderapi
    : true
    firstjointpenabled
    : true
    x
    : 100
    y
    : 100
    z
    : 100
    pitch
    : 90
    yaw
    : 90
    world
    : "world"

                      # # # # # # # # # # # # # # # # # # # # # # # # #
                      # |  \/  |                                      #
                      # | \  / | ___  ___ ___  __ _  __ _  ___  ___   #
                      # | |\/| |/ _ \/ __/ __|/ _` |/ _` |/ _ \/ __|  #
                      # | |  | |  __/\__ \__ \ (_| | (_| |  __/\__ \  #
                      # |_|  |_|\___||___/___/\__,_|\__, |\___||___/  #
                      #                              __/ |            #
                      #                             |___/             #
                      # # # # # # # # # # # # # # # # # # # # # # # # #
              # use %player_name% for players name in case of not using PAPI #

    joinmessage
    : "&2&lWelcome, %player_name%!"
    leavemessage
    : "&c&lBye, %player_name%!"
    firstjoinmessage
    : "&d&l%player_name% has joined for the first time!"
    nopermissionmessage
    : "No perms"
    reloadmessage
    : "Config reloaded"
    papidetected
    : "Papi detected"
    papihooked
    : "Papi hooked"
    angrypapi
    : "Enable papi damnit"
    papiundetected
    : "Papi undetected"
    mustbeaplayer
    : "You must be a player"
    spawnset
    : "Spawn has been set"

                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
                  #  _____                    _         _                 #
                  # |  __ \                  (_)       (_)                #
                  # | |__) |__ _ __ _ __ ___  _ ___ ___ _  ___  _ __  ___ #
                  # |  ___/ _ \ '__| '_ ` _ \| / __/ __| |/ _ \| '_ \/ __|#
                  # | |  |  __/ |  | | | | | | \__ \__ \ | (_) | | | \__ \#
                  # |_|   \___|_|  |_| |_| |_|_|___/___/_|\___/|_| |_|___/#
                  #                                                       #
                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

    silentjoinpermission
    : "a.silentjoin"
    silentleavepermission
    : "a.silentleave"
    silentfirstjoinpermission
    : "a.silentfirstjoin"
    reloadpermission
    : "a.reload"
    setspawnpermission
    : "a.setspawn"



    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                _                               _    _____      _   _   _                #
    #     /\      | |                             | |  / ____|    | | | | (_)                 #
    #    /  \   __| |_   ____ _ _ __   ___ ___  __| | | (___   ___| |_| |_ _ _ __   __ _ ___  #
    #   / /\ \ / _` \ \ / / _` | '_ \ / __/ _ \/ _` |  \___ \ / _ \ __| __| | '_ \ / _` / __| #
    #  / ____ \ (_| |\ V / (_| | | | | (_|  __/ (_| |  ____) |  __/ |_| |_| | | | | (_| \__ \ #
    # /_/    \_\__,_| \_/ \__,_|_| |_|\___\___|\__,_| |_____/ \___|\__|\__|_|_| |_|\__, |___/ #
    #                                                                              __/ |      #
    #                                                                             |___/       #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    # these may or may not need complete plugin reloading/server restarts
    basecommand
    : "ajoin"
    aliases
    :
    - "join"
    - "firstjoin"
    # like minecraft:tp or minecraft:?(which uses "minecraft" as a prefix)
    commandprefix
    : "a"
    plugindesc
    : "Base command for AJoin"
    pluginusage
    : "/ajoin <subcommand>"
    Code (YAML):
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                                                                                             #
    #                                                                                             #
    #                AAA                      JJJJJJJJJJJ                 iiii                    #
    #               A:::A                     J:::::::::J                i::::i                   #
    #              A:::::A                    J:::::::::J                 iiii                    #
    #             A:::::::A                   JJ:::::::JJ                                         #
    #            A:::::::::A                    J:::::J   ooooooooooo   iiiiiiinnnn  nnnnnnnn     #
    #           A:::::A:::::A                   J:::::J oo:::::::::::oo i:::::in:::nn::::::::nn   #
    #          A:::::A A:::::A                  J:::::Jo:::::::::::::::o i::::in::::::::::::::nn  #
    #         A:::::A   A:::::A                 J:::::jo:::::ooooo:::::o i::::inn:::::::::::::::n #
    #        A:::::A     A:::::A                J:::::Jo::::o     o::::o i::::i  n:::::nnnn:::::n #
    #       A:::::AAAAAAAAA:::::A   JJJJJJJ     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #      A:::::::::::::::::::::A  J:::::J     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #     A:::::AAAAAAAAAAAAA:::::A J::::::J   J::::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #    A:::::A             A:::::AJ:::::::JJJ:::::::Jo:::::ooooo:::::oi::::::i n::::n    n::::n #
    #   A:::::A               A:::::AJJ:::::::::::::JJ o:::::::::::::::oi::::::i n::::n    n::::n #
    #  A:::::A                 A:::::A JJ:::::::::JJ    oo:::::::::::oo i::::::i n::::n    n::::n #
    # AAAAAAA                   AAAAAAA  JJJJJJJJJ        ooooooooooo   iiiiiiii nnnnnn    nnnnnn #
    #                                    by Themcbaws                                             #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

     
     
  2. Location is ConfigurationSerialisable. Do this:

    Location loc = some location
    config.set(“path.here”, loc);

    Location loc = (Location) config.get(“path.here”);
     
  3. Code (Text):

    public void onEnable() {
    this.getConfig().options().copyDefaults(true);
    this.saveConfig();
    }
     
    Also at the end of your method you forgot reloadConfig()
     
  4. No ?? You don’t reload config when you want to save it. You only call saveConfig();

    A FileConfiguration has a Map<String, Object> which has rhe data in it. He has just altered this map and now is going to save it to the config. If he reloads the map before, it will revert his Map to whatever is in the config, removing his changes. Afterwards, and nothing will happen since he just added that.
     
  5. saveConfig() saves the FileConfiguration object which is stored in the plugin by default. What is the `config` object you're referencing?
     
  6. that didnt work ;(
     
  7. that didnt set any value is what i mean
     
  8. You need to save the config after you set it.
     
  9. Hmmmm... its turning my config from
    Code (YAML):
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                                                                                             #
    #                                                                                             #
    #                AAA                      JJJJJJJJJJJ                 iiii                    #
    #               A:::A                     J:::::::::J                i::::i                   #
    #              A:::::A                    J:::::::::J                 iiii                    #
    #             A:::::::A                   JJ:::::::JJ                                         #
    #            A:::::::::A                    J:::::J   ooooooooooo   iiiiiiinnnn  nnnnnnnn     #
    #           A:::::A:::::A                   J:::::J oo:::::::::::oo i:::::in:::nn::::::::nn   #
    #          A:::::A A:::::A                  J:::::Jo:::::::::::::::o i::::in::::::::::::::nn  #
    #         A:::::A   A:::::A                 J:::::jo:::::ooooo:::::o i::::inn:::::::::::::::n #
    #        A:::::A     A:::::A                J:::::Jo::::o     o::::o i::::i  n:::::nnnn:::::n #
    #       A:::::AAAAAAAAA:::::A   JJJJJJJ     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #      A:::::::::::::::::::::A  J:::::J     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #     A:::::AAAAAAAAAAAAA:::::A J::::::J   J::::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #    A:::::A             A:::::AJ:::::::JJJ:::::::Jo:::::ooooo:::::oi::::::i n::::n    n::::n #
    #   A:::::A               A:::::AJJ:::::::::::::JJ o:::::::::::::::oi::::::i n::::n    n::::n #
    #  A:::::A                 A:::::A JJ:::::::::JJ    oo:::::::::::oo i::::::i n::::n    n::::n #
    # AAAAAAA                   AAAAAAA  JJJJJJJJJ        ooooooooooo   iiiiiiii nnnnnn    nnnnnn #
    #                                    by Themcbaws                                             #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

            # If you need help contact me on Spigot or on Discord(Themcbaws#3884) #
               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
               # |  \/  |     (_)        / ____|    | | | | (_)                #
               # | \  / | __ _ _ _ __   | (___   ___| |_| |_ _ _ __   __ _ ___ #
               # | |\/| |/ _` | | '_ \   \___ \ / _ \ __| __| | '_ \ / _` / __|#
               # | |  | | (_| | | | | |  ____) |  __/ |_| |_| | | | | (_| \__ \#
               # |_|  |_|\__,_|_|_| |_| |_____/ \___|\__|\__|_|_| |_|\__, |___/#
               #                                                      __/ |    #
               #                                                     |___/     #
               # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
               # these may or may not need complete plugin reloading/server restarts
    useplaceholderapi
    : true
    firstjointpenabled
    : true
    firstjoinlocation
    :

                      # # # # # # # # # # # # # # # # # # # # # # # # #
                      # |  \/  |                                      #
                      # | \  / | ___  ___ ___  __ _  __ _  ___  ___   #
                      # | |\/| |/ _ \/ __/ __|/ _` |/ _` |/ _ \/ __|  #
                      # | |  | |  __/\__ \__ \ (_| | (_| |  __/\__ \  #
                      # |_|  |_|\___||___/___/\__,_|\__, |\___||___/  #
                      #                              __/ |            #
                      #                             |___/             #
                      # # # # # # # # # # # # # # # # # # # # # # # # #
              # use %player_name% for players name in case of not using PAPI #

    joinmessage
    : "&2&lWelcome, %player_name%!"
    leavemessage
    : "&c&lBye, %player_name%!"
    firstjoinmessage
    : "&d&l%player_name% has joined for the first time!"
    nopermissionmessage
    : "No perms"
    reloadmessage
    : "Config reloaded"
    papidetected
    : "Papi detected"
    papihooked
    : "Papi hooked"
    angrypapi
    : "Enable papi damnit"
    papiundetected
    : "Papi undetected"
    mustbeaplayer
    : "You must be a player"
    spawnset
    : "Spawn has been set"

                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
                  #  _____                    _         _                 #
                  # |  __ \                  (_)       (_)                #
                  # | |__) |__ _ __ _ __ ___  _ ___ ___ _  ___  _ __  ___ #
                  # |  ___/ _ \ '__| '_ ` _ \| / __/ __| |/ _ \| '_ \/ __|#
                  # | |  |  __/ |  | | | | | | \__ \__ \ | (_) | | | \__ \#
                  # |_|   \___|_|  |_| |_| |_|_|___/___/_|\___/|_| |_|___/#
                  #                                                       #
                  # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

    silentjoinpermission
    : "a.silentjoin"
    silentleavepermission
    : "a.silentleave"
    silentfirstjoinpermission
    : "a.silentfirstjoin"
    reloadpermission
    : "a.reload"
    setspawnpermission
    : "a.setspawn"



    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                _                               _    _____      _   _   _                #
    #     /\      | |                             | |  / ____|    | | | | (_)                 #
    #    /  \   __| |_   ____ _ _ __   ___ ___  __| | | (___   ___| |_| |_ _ _ __   __ _ ___  #
    #   / /\ \ / _` \ \ / / _` | '_ \ / __/ _ \/ _` |  \___ \ / _ \ __| __| | '_ \ / _` / __| #
    #  / ____ \ (_| |\ V / (_| | | | | (_|  __/ (_| |  ____) |  __/ |_| |_| | | | | (_| \__ \ #
    # /_/    \_\__,_| \_/ \__,_|_| |_|\___\___|\__,_| |_____/ \___|\__|\__|_|_| |_|\__, |___/ #
    #                                                                              __/ |      #
    #                                                                             |___/       #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    # these may or may not need complete plugin reloading/server restarts
    basecommand
    : "ajoin"
    aliases
    :
    - "join"
    - "firstjoin"
    # like minecraft:tp or minecraft:?(which uses "minecraft" as a prefix)
    commandprefix
    : "a"
    plugindesc
    : "Base command for AJoin"
    pluginusage
    : "/ajoin <subcommand>"
    to
    Code (YAML):
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #                                                                                             #
    #                                                                                             #
    #                AAA                      JJJJJJJJJJJ                 iiii                    #
    #               A:::A                     J:::::::::J                i::::i                   #
    #              A:::::A                    J:::::::::J                 iiii                    #
    #             A:::::::A                   JJ:::::::JJ                                         #
    #            A:::::::::A                    J:::::J   ooooooooooo   iiiiiiinnnn  nnnnnnnn     #
    #           A:::::A:::::A                   J:::::J oo:::::::::::oo i:::::in:::nn::::::::nn   #
    #          A:::::A A:::::A                  J:::::Jo:::::::::::::::o i::::in::::::::::::::nn  #
    #         A:::::A   A:::::A                 J:::::jo:::::ooooo:::::o i::::inn:::::::::::::::n #
    #        A:::::A     A:::::A                J:::::Jo::::o     o::::o i::::i  n:::::nnnn:::::n #
    #       A:::::AAAAAAAAA:::::A   JJJJJJJ     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #      A:::::::::::::::::::::A  J:::::J     J:::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #     A:::::AAAAAAAAAAAAA:::::A J::::::J   J::::::Jo::::o     o::::o i::::i  n::::n    n::::n #
    #    A:::::A             A:::::AJ:::::::JJJ:::::::Jo:::::ooooo:::::oi::::::i n::::n    n::::n #
    #   A:::::A               A:::::AJJ:::::::::::::JJ o:::::::::::::::oi::::::i n::::n    n::::n #
    #  A:::::A                 A:::::A JJ:::::::::JJ    oo:::::::::::oo i::::::i n::::n    n::::n #
    # AAAAAAA                   AAAAAAA  JJJJJJJJJ        ooooooooooo   iiiiiiii nnnnnn    nnnnnn #
    #                                    by Themcbaws                                             #
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

    useplaceholderapi
    : true
    firstjointpenabled
    : true
    joinmessage
    : '&2&lWelcome, %player_name%!'
    leavemessage
    : '&c&lBye, %player_name%!'
    firstjoinmessage
    : '&d&l%player_name% has joined for the first time!'
    nopermissionmessage
    : No perms
    reloadmessage
    : Config reloaded
    papidetected
    : Papi detected
    papihooked
    : Papi hooked
    angrypapi
    : Enable papi damnit
    papiundetected
    : Papi undetected
    mustbeaplayer
    : You must be a player
    spawnset
    : Spawn has been set
    silentjoinpermission
    : a.silentjoin
    silentleavepermission
    : a.silentleave
    silentfirstjoinpermission
    : a.silentfirstjoin
    reloadpermission
    : a.reload
    setspawnpermission
    : a.setspawn
    basecommand
    : ajoin
    aliases
    :
    - join
    - firstjoin
    commandprefix
    : a
    plugindesc
    : Base command for AJoin
    pluginusage
    : /ajoin <subcommand>
    firstjoinlocation
    :
      ==
    : org.bukkit.Location
      world
    : world
      x
    : -53.97952054971176
      y
    : 68.0
      z
    : 249.2424689874761
      pitch
    : -4.915202
      yaw
    : -17.817612
     
     
  10. Thats because comments are not fully supported with the method of creating your config file.
     
  11. the config loads great, it works when you manually change a value, unless you mean comments are not supported when using the set() method?
     
  12. Code (Java):
    package net.atlanthea.themcbaws.ajoin.main;

    import java.lang.reflect.Field;
    import java.util.List;
    import java.util.logging.Logger;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.CommandMap;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.server.ServerCommandEvent;
    import org.bukkit.plugin.java.JavaPlugin;

    import net.atlanthea.themcbaws.ajoin.commands.AJoin;
    import net.atlanthea.themcbaws.ajoin.events.PlayerJoinLeaveEvent;

    public class Main extends JavaPlugin implements Listener {
        CommandMap cmp;
        Logger log = getLogger();
        FileConfiguration config = getConfig();
        public Main() {

        }

        @Override
        public void onEnable() {
            loadConfig();
            registerEventListener();
            registerHooks();
            try {
                registerCommands();
            } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }

        private void registerHooks() {
            if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {

                log.info(config.getString("papidetected"));
                if (config.getBoolean("useplaceholderapi")) {

                    log.info(config.getString("papihooked"));
                } else {

                    log.info(config.getString("angrypapi"));
                }
            } else {

                if (config.getBoolean("useplaceholderapi")) {

                    log.info(config.getString("papiundetected"));
                }
            }

        }

        private void registerCommands()
                throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
            Field commandMapField = Bukkit.getServer().getClass().getDeclaredField("commandMap");
            commandMapField.setAccessible(true);
            CommandMap commandMap = (CommandMap) commandMapField.get(Bukkit.getServer());
            this.cmp = commandMap;
            this.cmp.register(config.getString("commandprefix"),
                    new AJoin(config.getString("basecommand"), config));

        }

        private void registerEventListener() {

            getServer().getPluginManager().registerEvents(new PlayerJoinLeaveEvent(config), this);
            getServer().getPluginManager().registerEvents(this, this);
        }

        @EventHandler
        public void onCommandPlayerPreprocessEvent(PlayerCommandPreprocessEvent event) {
            List<String> aliases = config.getStringList("aliases");
            aliases.add(config.getString("basecommand"));
            String message = event.getMessage();
            Player player = event.getPlayer();
            for (String command : aliases) {
                if (message.equalsIgnoreCase("/" + command + " reload")) {
                    if (player.hasPermission(config.getString("reloadpermission"))) {
                        reload();
                        event.getPlayer().sendMessage(
                                ChatColor.translateAlternateColorCodes('&', config.getString("reloadmessage")));
                    } else {
                        event.getPlayer().sendMessage(
                                ChatColor.translateAlternateColorCodes('&', config.getString("nopermissionmessage")));
                    }
                }
                else if(message.equalsIgnoreCase("/" + command + " setspawn")) {
                    if(player.hasPermission(config.getString("setspawnpermission"))) {
                        Location loc = player.getLocation();
                        config.set("firstjoinlocation", loc);
                        saveConfig();
                        player.sendMessage((ChatColor.translateAlternateColorCodes('&', config.getString("spawnset"))));
                    }
                    else {
                        player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("nopermissionmessage")));
                    }
                }
            }
        }

        private void reload() {
            Bukkit.getPluginManager().disablePlugin(this);
            Bukkit.getPluginManager().getPlugin("AJoin").reloadConfig();
            Bukkit.getPluginManager().enablePlugin(this);
        }

        @EventHandler
        public void onServerCommandEvent(ServerCommandEvent event) {
            String commandSent = event.getCommand();
            List<String> aliases = config.getStringList("aliases");
            aliases.add(config.getString("basecommand"));
            CommandSender sender = event.getSender();
            for (String command : aliases) {
                if (commandSent.equalsIgnoreCase(command + " reload")) {
                sender
                        .sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("reloadmessage")));
                reload();
            }
                else if(commandSent.equalsIgnoreCase(command + " setspawn")) {
                    sender.sendMessage(ChatColor.translateAlternateColorCodes('&', (config.getString("mustbeaplayer"))));
                }
               
            }
        }

        private void loadConfig() {
            saveDefaultConfig();

        }

        @Override
        public void onDisable() {
           
        }

    }
    just gonna toss my main class out