package io.github.thediamondpicks.bans; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /** * Created by TheDiamondPicks on 28/09/2016. */ public class Main extends JavaPlugin { private Connection connection; private String host, database, username, password; private int port; private static Plugin plugin; @Override public void onEnable() { getCommand("ban").setExecutor(new BanCommand()); plugin = this; host = "jerryandjamy.com"; port = 3306; database = "Bans"; username = "nanana"; password = "youthoughtwouldgetthepass"; try { openConnection(); Statement statement = connection.createStatement(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } @Override public void onDisable() { plugin = null; // Prevents mem leaks } //Much eaisier then registering events in 10 diffirent methods public static void registerEvents(org.bukkit.plugin.Plugin plugin, Listener... listeners) { for (Listener listener : listeners) { Bukkit.getServer().getPluginManager().registerEvents(listener, plugin); } } //To access the plugin variable from other classes public static Plugin getPlugin() { return plugin; } public void openConnection() throws SQLException, ClassNotFoundException { if (connection != null && !connection.isClosed()) { return; } synchronized (this) { if (connection != null && !connection.isClosed()) { return; } Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database, this.username, this.password); } } BukkitRunnable r = new BukkitRunnable() { public void run() { try { openConnection(); Statement statement = connection.createStatement(); } catch(ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } } }; }