Solved i got a bug that i cant fix

Discussion in 'Plugin Development' started by Uniganked, Sep 2, 2017.

Thread Status:
Not open for further replies.
  1. Offline

    Uniganked

    [18:06:36] [Server thread/ERROR]: Could not load 'plugins\core.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Cannot find main class `net.grandtheftmc.core.core'
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:66) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.loadPlugins(CraftServer.java:300) [spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:204) [spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:542) [spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_144]
    Caused by: java.lang.ClassNotFoundException: net.grandtheftmc.core.core
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_144]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.Class.forName0(Native Method) ~[?:1.8.0_144]
    at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_144]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.11.jar:git-Spigot-f950f8e-0a81101]
    ... 7 more
     
  2. Offline

    Zombie_Striker

    @Uniganked
    Do you own grafttheftmc.net? If not, then why is that in the project's name?

    Are you sure you have the correct path?
     
  3. Offline

    Uniganked

    it is not mine it is my friends he wants me to fix it bc he is away but i tryed everything that i can think of and he name it that idk why
     
  4. Offline

    Zombie_Striker

    @Uniganked
    What is the name of the main class? Can you post it?
     
  5. Offline

    Uniganked

    core.class
     
  6. Online

    timtower Administrator Administrator Moderator

  7. Offline

    Uniganked

    Code:
    package net.grandtheftmc.core;
    
    import com.comphenix.protocol.ProtocolLibrary;
    import com.comphenix.protocol.ProtocolManager;
    import com.j0ach1mmall3.ultimatecosmetics.Main;
    import com.sk89q.worldedit.bukkit.WorldEditPlugin;
    import me.libraryaddict.disguise.LibsDisguises;
    import net.grandtheftmc.core.achivements.AchievementCommand;
    import net.grandtheftmc.core.announcer.Announcer;
    import net.grandtheftmc.core.announcer.AnnouncerCommand;
    import net.grandtheftmc.core.commands.*;
    import net.grandtheftmc.core.cosmetics.Cosmetic;
    import net.grandtheftmc.core.cosmetics.CosmeticCommand;
    import net.grandtheftmc.core.cosmetics.CosmeticType;
    import net.grandtheftmc.core.cosmetics.PetDataCommand;
    import net.grandtheftmc.core.editmode.*;
    import net.grandtheftmc.core.enjin.EnjinCore;
    import net.grandtheftmc.core.events.ServerSaveEvent;
    import net.grandtheftmc.core.handlers.chat.ChatManager;
    import net.grandtheftmc.core.leaderboards.LeaderBoardManager;
    import net.grandtheftmc.core.listeners.*;
    import net.grandtheftmc.core.listeners.Damage;
    import net.grandtheftmc.core.listeners.Interact;
    import net.grandtheftmc.core.listeners.InventoryClick;
    import net.grandtheftmc.core.menus.MenuListener;
    import net.grandtheftmc.core.menus.MenuManager;
    import net.grandtheftmc.core.nametags.NametagCommand;
    import net.grandtheftmc.core.nametags.NametagManager;
    import net.grandtheftmc.core.perms.PermsManager;
    import net.grandtheftmc.core.redis.RedisFactory;
    import net.grandtheftmc.core.redis.RedisListener;
    import net.grandtheftmc.core.redis.RedisManager;
    import net.grandtheftmc.core.servers.ServerCommand;
    import net.grandtheftmc.core.servers.ServerManager;
    import net.grandtheftmc.core.servers.ServerPingListener;
    import net.grandtheftmc.core.servers.ServerType;
    import net.grandtheftmc.core.tasks.AntiAFK;
    import net.grandtheftmc.core.tutorials.Help;
    import net.grandtheftmc.core.tutorials.NextCommand;
    import net.grandtheftmc.core.tutorials.TutorialCommand;
    import net.grandtheftmc.core.tutorials.TutorialManager;
    import net.grandtheftmc.core.users.UserManager;
    import net.grandtheftmc.core.users.UserRank;
    import net.grandtheftmc.core.voting.VoteCommand;
    import net.grandtheftmc.core.voting.VoteManager;
    import net.grandtheftmc.core.voting.crates.Crate;
    import net.grandtheftmc.core.voting.crates.CrateManager;
    import net.grandtheftmc.core.voting.crates.listeners.CrateOpenListener;
    import net.grandtheftmc.core.whitelist.WhitelistManager;
    import org.bukkit.Bukkit;
    import org.bukkit.WorldCreator;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.bukkit.scheduler.BukkitTask;
    
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    
    //import com.dsh105.echopet.EchoPetPlugin;
    
    public class Core extends JavaPlugin {
      public static MySQL sql;
      private static Core instance;
      private WorldEditPlugin worldEdit;
      private Main uc;
      private LibsDisguises libsDisguises;
      //private EchoPetPlugin echoPet;
      private ProtocolManager manager;
    
      private Settings settings;
    
      private ServerManager sm;
      private UserManager um;
      private PermsManager pm;
      private WhitelistManager wm;
      private VoteManager vm;
      private Announcer an;
      private TutorialManager tm;
      private LeaderBoardManager lm;
      private NametagManager nm;
      private CrateManager cm;
      private AntiAFK antiAFK;
    
      //MySQL Async Queue List
      private MySQLAsyncQueue mySQLAsyncQueue;
      private BukkitTask mysqlAsyncTask;
    
      public static Core getInstance() {
      return instance;
      }
    
      public static MySQL getSQL() {
      return sql;
      }
    
      public static WorldEditPlugin getWorldEdit() {
      return Core.getInstance().worldEdit;
      }
    
      public static Main getUltimateCosmetics() {
      return Core.getInstance().uc;
      }
    
      public static LibsDisguises getLibsDisguises() {
      return Core.getInstance().libsDisguises;
      }
    
      /*public static EchoPetPlugin getEchoPet() {
      return Core.getInstance().echoPet;
      }*/
    
      public static ServerManager getServerManager() {
      return Core.getInstance().sm;
      }
    
      public static UserManager getUserManager() {
      return Core.getInstance().um;
      }
    
      public static PermsManager getPermsManager() {
      return Core.getInstance().pm;
      }
    
      public static WhitelistManager getWhitelistManager() {
      return Core.getInstance().wm;
      }
    
      public static VoteManager getVoteManager() {
      return Core.getInstance().vm;
      }
    
      public static Announcer getAnnouncer() {
      return Core.getInstance().an;
      }
    
      public static Settings getSettings() {
      return Core.getInstance().settings;
      }
    
      public static TutorialManager getTutorialManager() {
      return Core.getInstance().tm;
      }
    
      public static NametagManager getNametagManager() {
      return Core.getInstance().nm;
      }
    
      public static CrateManager getCrateManager() {
      return Core.getInstance().cm;
      }
    
      public static ProtocolManager getProtocolLib() {
      return Core.getInstance().manager;
      }
    
      public static AntiAFK getAntiAFK() {
      return Core.getInstance().antiAFK;
      }
    
      public static String name() {
      return Core.getInstance().settings.name();
      }
    
      public static MySQLAsyncQueue getMySQLAsyncQueue() {
      return Core.getInstance().mySQLAsyncQueue;
      }
    
      public static void log(String s) {
      Core.getInstance().getLogger().log(Level.INFO, Utils.f("&a" + s));
      }
    
      public static void error(String s) {
      Core.getInstance().getLogger().log(Level.SEVERE, Utils.f("&c" + s));
      }
    
      @Override
      public void onEnable() {
    
    
      this.getLogger().info("Loading GTMCore...!!!!!!!!!!!!!!!!!");
      Bukkit.setWhitelist(false);
      instance = this;
      PluginManager plm = Bukkit.getPluginManager();
      this.settings = new Settings();
      this.manager = ProtocolLibrary.getProtocolManager();
      this.worldEdit = plm.getPlugin("WorldEdit") == null ? null : (WorldEditPlugin) plm.getPlugin("WorldEdit");
      this.uc = plm.getPlugin("UltimateCosmetics") == null ? null : (Main) plm.getPlugin("UltimateCosmetics");
      this.libsDisguises = plm.getPlugin("LibsDisguises") == null ? null : LibsDisguises.getInstance();
      //this.echoPet = null;
      if (this.uc == null) {
      Core.error("UltimateCosmetics not found. Disabling Cosmetics");
      this.settings.setLoadCosmetics(false);
      }
      Core.log("Loading GTMCore...");
      this.load();
      this.sm = new ServerManager();
      this.um = new UserManager();
      this.pm = new PermsManager();
      this.wm = new WhitelistManager();
      this.vm = new VoteManager();
      this.an = new Announcer();
      this.tm = new TutorialManager();
      this.lm = new LeaderBoardManager();
      this.nm = new NametagManager();
      this.cm = new CrateManager();
      this.registerCommands();
      this.registerListeners();
    
      //register Enjin
      EnjinCore.init();
      }
    
      @Override
      public void onDisable() {
      Bukkit.setWhitelist(true);
      Bukkit.getScheduler().cancelTasks(this);
      sql.closeConnection();
      this.save();
      this.cm.getCrates().forEach(Crate::destroy);
      shutdownRedis();
      }
    
      private void registerListeners() {
      PluginManager pm = Bukkit.getPluginManager();
      pm.registerEvents(new Join(), this);
      pm.registerEvents(new Leave(), this);
      pm.registerEvents(new Login(), this);
      pm.registerEvents(new Move(), this);
      pm.registerEvents(new PetListener(), this);
      pm.registerEvents(new SignChange(), this);
      pm.registerEvents(new MenuListener(), this);
      pm.registerEvents(new HungerChange(), this);
      pm.registerEvents(new WeatherChange(), this);
      if (Core.getSettings().useEditMode()) {
      //No need to register a dud listener, only register the associated ones if edit mode is required.
      pm.registerEvents(new BlockChange(), this);
      pm.registerEvents(new BreakBlock(), this);
      pm.registerEvents(new PlaceBlock(), this);
      pm.registerEvents(new Interact(), this);
      }
      if (!Core.getSettings().canCraft() || Core.getSettings().useEditMode()) {
      pm.registerEvents(new Craft(), this);
      }
      if (Core.getSettings().useEditMode() || !Core.getSettings().canInteractInventory()) {
      pm.registerEvents(new InventoryClick(), this);
      }
      pm.registerEvents(new ChunkLoad(), this);
      pm.registerEvents(new Chat(), this);
      pm.registerEvents(new Teleport(), this);
      pm.registerEvents(new CommandListener(), this);
      pm.registerEvents(new HangingBreak(), this);
      pm.registerEvents(new net.grandtheftmc.core.editmode.Damage(), this);
      pm.registerEvents(new net.grandtheftmc.core.editmode.Interact(), this);
      pm.registerEvents(new net.grandtheftmc.core.editmode.InventoryClick(), this);
      pm.registerEvents(new ServerPingListener(), this);
      pm.registerEvents(new SwapHandItems(), this);
      pm.registerEvents(new Save(), this);
      pm.registerEvents(new CrateOpenListener(), this);
      if (pm.getPlugin("NuVotifier") != null || pm.getPlugin("Votifier") != null)
      pm.registerEvents(this.vm, this);
      pm.registerEvents(new MenuManager(), this);
      pm.registerEvents(new Damage(), this);
      this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
      }
    
      private void registerCommands() {
      this.getCommand("config").setExecutor(new ConfigCommand());
      this.getCommand("editmode").setExecutor(new EditModeCommand());
      this.getCommand("rank").setExecutor(new RankCommand());
      this.getCommand("bucks").setExecutor(new BucksCommand());
      this.getCommand("tokens").setExecutor(new TokensCommand());
      this.getCommand("whitelist").setExecutor(new WhitelistCommand());
      this.getCommand("announcer").setExecutor(new AnnouncerCommand());
      this.getCommand("message").setExecutor(new MessageCommand());
      this.getCommand("reply").setExecutor(new ReplyCommand());
      this.getCommand("vote").setExecutor(new VoteCommand());
      this.getCommand("tutorial").setExecutor(new TutorialCommand());
      this.getCommand("next").setExecutor(new NextCommand());
      this.getCommand("socialspy").setExecutor(new SocialSpyCommand());
      this.getCommand("server").setExecutor(new ServerCommand());
      this.getCommand("cosmetic").setExecutor(new CosmeticCommand());
      this.getCommand("nametag").setExecutor(new NametagCommand());
      this.getCommand("petdata").setExecutor(new PetDataCommand());
      this.getCommand("prefs").setExecutor(new PrefsCommand());
      this.getCommand("rewards").setExecutor(new RewardsCommand());
      this.getCommand("ignore").setExecutor(new IgnoreCommand());
      this.getCommand("list").setExecutor(new ListCommand());
      this.getCommand("clearchat").setExecutor(new ClearChatCommand());
      this.getCommand("globalmute").setExecutor(new GlobalMuteCommand());
      this.getCommand("rules").setExecutor(new RulesCommand());
      this.getCommand("save").setExecutor(new SaveCommand());
      this.getCommand("playtime").setExecutor(new PlaytimeCommand());
      this.getCommand("info").setExecutor(new InfoCommand());
      this.getCommand("achievement").setExecutor(new AchievementCommand());
      this.getCommand("crowbar").setExecutor(new CrowbarCommand());
      this.getCommand("crate").setExecutor(new CrateCommand());
      this.getCommand("randomvoter").setExecutor(new RandomVoterCommand());
      this.getCommand("maxplayers").setExecutor(new MaxPlayersCommand());
      this.getCommand("votestreak").setExecutor(new VotestreakCommand());
      this.getCommand("chatfilter").setExecutor(new ChatFilterCommand());
      this.getCommand("forumrank").setExecutor(new ForumRankCommand());
      this.getCommand("store").setExecutor(new StoreCommand());
      }
    
      private void load() {
      this.getServer().getScheduler().scheduleSyncRepeatingTask(this, () -> {
      Bukkit.getPluginManager().callEvent(new ServerSaveEvent());
      this.getLogger().info("ServerSaveEvent check");
      }, 18000L, 18000L);
      this.settings.setCoreConfig(Utils.loadConfig("core"));
      this.settings.setMySQLConfig(Utils.loadConfigFromMaster("mysql"));
      this.settings.setServersConfig(Utils.loadConfig("servers"));
      this.settings.setJoinSignsConfig(Utils.loadConfig("joinSigns"));
      this.settings.setPermsConfig(Utils.loadConfig("perms"));
      this.settings.setWhitelistConfig(Utils.loadConfig("whitelist"));
      this.settings.setAnnouncerConfig(Utils.loadConfig("announcer"));
      this.settings.setVotingConfig(Utils.loadConfig("voting"));
      this.settings.setTokenShopConfig(Utils.loadConfig("tokenshop"));
      this.settings.setTutorialsConfig(Utils.loadConfig("tutorials"));
      this.settings.setLeaderBoardsConfig(Utils.loadConfig("leaderBoards"));
      this.settings.setSocialSpyConfig(Utils.loadConfig("socialSpy"));
      this.settings.setWorldsConfig(Utils.loadConfig("worlds"));
      this.settings.setRewardsConfig(Utils.loadConfig("rewards"));
      this.settings.setRulesConfig(Utils.loadConfig("rules"));
      this.settings.setNametagsConfig(Utils.loadConfigFromMaster("nametags"));
      this.settings.setHelpConfig(Utils.loadConfig("help"));
      this.settings.setCratesConfig(Utils.loadConfig("crates"));
      this.settings.setCrateRewardsConfig(Utils.loadConfig("crateRewards"));
      this.settings.setRedisConfig(Utils.loadConfig("redis"));
      Utils.setMaxPlayers(this.settings.getCoreConfig().getInt("maxplayers"));
      YamlConfiguration c = this.settings.getCoreConfig();
      this.settings.setType(ServerType.getType(c.getString("serverType")));
      if (c.get("serverNumber") == null) this.settings.setNumber(0);
      else this.settings.setNumber(c.getInt("serverNumber"));
      if (c.getString("rankToJoin") != null)
      this.settings.setRankToJoin(UserRank.getUserRankOrNull(c.getString("rankToJoin")));
      if (c.get("editMode") == null) this.settings.setUseEditMode(true);
      else this.settings.setUseEditMode(c.getBoolean("editMode"));
      this.loadMySQL();
      this.loadMenus();
      Help.loadHelpData();
      this.settings.getWorldsConfig().getStringList("worlds").stream().filter(s -> Bukkit.getWorld(s) == null).forEach(s -> new WorldCreator(s).createWorld());
      antiAFK = new AntiAFK();
      new ChatManager(Utils.loadConfig("chatsettings"));
    
      //init SQL async task
      mySQLAsyncQueue = new MySQLAsyncQueue();
      //Run every second, better to have 1 thread running constantly than always spawning new ones
      mysqlAsyncTask = Bukkit.getScheduler().runTaskTimerAsynchronously(this, mySQLAsyncQueue, 0L, 20L);
    
      //Init redis
      loadRedis();
      }
    
      public void reload() {
    
      //Close Async, force flush all queries
      mySQLAsyncQueue.run();
      mysqlAsyncTask.cancel();
    
      sql.closeConnection();
    
      //close redis
      shutdownRedis();
    
      this.load();
      this.sm.loadJoinSigns();
      this.pm.loadPerms();
      this.wm.load();
      this.an.loadAnnouncements();
      this.an.startSchedule();
      this.vm.startSchedule();
      this.vm.loadLinksAndRewards();
      this.vm.loadTokenShop();
      this.tm.load();
      this.lm.loadLeaderBoards();
      this.nm.loadNametags();
      this.cm.load();
      this.cm.loadRewards();
      }
    
      public void save() {
      this.sm.saveJoinSigns();
      this.pm.savePerms();
      this.wm.save();
      this.an.saveAnnouncements();
      this.tm.save();
      this.lm.saveLeaderBoards();
      this.cm.save();
      this.vm.save();
      }
    
      private void loadRedis() {
      /*10.0.51.209:5555
      gtmredispass*/
      String server = this.settings.getRedisConfig().getString("server");
      String password = this.settings.getRedisConfig().getString("password");
      int port = this.settings.getRedisConfig().getInt("port");
      Core.log("Attempting to connect to redis server (" + server + ":" + port + ")(pass=" + password + ")...");
    
      Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
      //init pool
      Core.log("Initialising Redis connection pool...");
      new RedisFactory(server, password, port, () -> {
    
      Core.log("Initialising Redis listener...");
      new RedisListener();
      });
    
    
      });
    
      /* //THIS WORKS
    
      try {
      jedis = new Jedis(server, port);
      jedis.auth(password);
      jedis.ping();
      getLogger().info("Connected to Redis server successfully.");
    
      redisManager = new RedisManager();
    
      Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
      new RedisListener();
      });
    
      getLogger().info("Redis listener registered.");
      } catch (Exception e) {
      getLogger().warning("Failed to connect to redis! Redis support is disabled.");
      }*/
    
    
    
      /*
    
    FutureTask<JedisPool> task = new FutureTask(new Callable() {
      public JedisPool call()
      throws Exception {
      //JedisPoolConfig config = new JedisPoolConfig();
      //config.setMaxTotal(8);
      return new JedisPool(server, port);
      //return new JedisPool(config, server, port, 0, password);
      }
      });
    
      Bukkit.getScheduler().runTaskAsynchronously(this, task);
    
      try {
      Core.log("Creating Jedis pool...");
      ClassLoader prev = Thread.currentThread().getContextClassLoader();
      Thread.currentThread().setContextClassLoader(Core.class.getClassLoader());
      this.pool = task.get();
      Thread.currentThread().setContextClassLoader(prev);
      } catch (InterruptedException | ExecutionException e) {
      throw new RuntimeException("Unable to create Redis pool", e);
      }
    
    
      try (Jedis rsc = pool.getResource()) {
      Core.log("Pinging Redis...");
      rsc.auth(password);
      rsc.ping();
      // If that worked
      getLogger().log(Level.INFO, "Successfully connected to Redis.");
    
      redisManager = new RedisManager();
      new RedisListener();
      } catch (JedisConnectionException e) {
      pool.destroy();
      pool = null;
      throw e;
      }*/
      }
    
      private void shutdownRedis() {
      if (RedisManager.redisEnabled()) {
      RedisFactory.getPool().close();
      }
      }
    
      private void loadMySQL() {
      YamlConfiguration c = this.settings.getMySQLConfig();
      this.settings.setHost(c.getString("mysql.host"));
      this.settings.setPort(c.getString("mysql.port"));
      this.settings.setDatabase(c.getString("mysql.database"));
      this.settings.setUser(c.getString("mysql.user"));
      this.settings.setPassword(c.getString("mysql.password"));
    
      sql = new MySQL(this.settings.getHost(), this.settings.getPort(), this.settings.getDatabase(), this.settings.getUser(),
      this.settings.getPassword());
      sql.openConnection();
      new BukkitRunnable() {
      @Override
      public void run() {
      if (!Core.this.settings.loadCosmetics()) return;
      try (ResultSet rs = Core.sql.query("select * from cosmetics LIMIT 1;")) {
      ResultSetMetaData metaData = rs.getMetaData();
      List<String> columns = new ArrayList<>();
      for (int i = 3; i <= metaData.getColumnCount(); i++)
      columns.add(metaData.getColumnName(i).toLowerCase());
      for (CosmeticType type : CosmeticType.values()) {
      if (!columns.contains(type.toString().toLowerCase()))
      Core.sql.update("alter table cosmetics add column `" + type.toString().toLowerCase() + "` BOOLEAN not null default 0;");
      if (!columns.contains("last:" + type.toString().toLowerCase()))
      Core.sql.update("alter table cosmetics add column `last:" + type.toString().toLowerCase() + "` VARCHAR(255);");
      }
      for (Cosmetic c : Cosmetic.values()) {
      if (!columns.contains(c.getDBName()))
      Core.sql.update("alter table cosmetics add column `" + c.getDBName() + "` BOOLEAN not null default 0;");
      /*if (c.getType() == CosmeticType.PET)
      c.getPetType().getAllowedDataTypes().stream().filter(d -> !columns.contains("petdata:" + c.getName() + ':' + d.toString().toLowerCase())).forEach(d -> Core.sql.update("alter table cosmetics add column `petdata:" + c.getName().toLowerCase() + ':' + d.toString().toLowerCase() + "` BOOLEAN not null default 0;"));*/
      }
      rs.close();
      } catch (SQLException e) {
      Core.error("Error while altering Cosmetics table: ");
      e.printStackTrace();
      }
      try (ResultSet rs = Core.sql.query("select * from nametags LIMIT 1;")) {
      ResultSetMetaData metaData = rs.getMetaData();
      List<String> columns = new ArrayList<>();
      for (int i = 3; i <= metaData.getColumnCount(); i++)
      columns.add(metaData.getColumnName(i).toLowerCase());
      Core.getNametagManager().getNametags().stream().filter(tag -> !columns.contains(tag.getName().toLowerCase())).forEach(tag -> Core.sql.update("alter table nametags add column " + tag.getName() + " BOOLEAN not null default 0;"));
      rs.close();
      } catch (SQLException e) {
      Core.error("Error while altering Nametags table:");
      e.printStackTrace();
      }
      }
      }.runTaskAsynchronously(this);
      }
    
      private void loadMenus() {
      MenuManager.addMenu("vote", 54, "&e&lVoting Menu");
      MenuManager.addMenu("tokenshop", 54, "&e&lToken Shop");
      MenuManager.addMenu("buyshopitem", 54, "&e&lBuy Token Shop Item");
      MenuManager.addMenu("serverwarper", 54, "&e&lServer Warper");
      MenuManager.addMenu("gtmservers", 54, "&e&lGTM Server Warper");
      MenuManager.addMenu("cosmetics", 54, "&6&lCosmetics");
      MenuManager.addMenu("buycosmetic", 54, "&6&lBuy Cosmetic");
      MenuManager.addMenu("nametags", 54, "&a&lNametags");
      MenuManager.addMenu("applynametag", 54, "&a&lApply Nametag");
      MenuManager.addMenu("buynametag", 54, "&a&lBuy Nametag");
      MenuManager.addMenu("prefs", 54, "&5&lPreferences");
      MenuManager.addMenu("rewards", 54, "&a&lRewards");
      MenuManager.addMenu("confirmcratereward", 54, "&e&lConfirm Accepting Reward");
      MenuManager.addMenu("confirmexpensivecrate", 54, "&e&lConfirm Opening Crate");
      ServerType st = this.settings.getType();
      for (CosmeticType type : CosmeticType.values())
      if (type.isEnabled(st))
      MenuManager.addMenu(type.toString().toLowerCase(), 54, type.getColoredDisplayName());
      if (CosmeticType.BANNER.isEnabled(st))
      MenuManager.addMenu("bannervariant", 54, CosmeticType.BANNER.getColoredDisplayName() + " Hat or Cape");
      if (CosmeticType.BLOCK.isEnabled(st))
      MenuManager.addMenu("blockvariant", 54, "&2&lBalloon or Block Pet");
      if (CosmeticType.PARTICLE.isEnabled(st))
      MenuManager.addMenu("particleshape", 54, CosmeticType.PARTICLE.getColoredDisplayName() + " Shape");
      if (CosmeticType.PET.isEnabled(st)) {
      MenuManager.addMenu("petdata", 54, CosmeticType.PET.getColoredDisplayName() + " Data");
      }
      }
    
    
    }
     
  8. Offline

    FrostDevStudios

    @Uniganked
    Your package for your main class is net.grandtheftmc.core.Core
    Not net.grandtheftmc.core.core
     
  9. Offline

    Uniganked

    so change the package name to net.grandtheftmc.core.core?
     
  10. Offline

    FrostDevStudios

    @Uniganked
    change it to net.grandtheftmc.core.Core
     
  11. Offline

    Uniganked

  12. Offline

    FrostDevStudios

Thread Status:
Not open for further replies.

Share This Page