Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyPlugin extends JavaPlugin {
- private Connection dbConnection;
- @Override
- public void onEnable() {
- // Set up database connection
- try {
- dbConnection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "username", "password");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- // Schedule a task to run asynchronously after a delay of 20 ticks (1 second)
- new BukkitRunnable() {
- @Override
- public void run() {
- // Code to run asynchronously
- try {
- // Load data from database using separate thread
- CompletableFuture.supplyAsync(() -> loadDataFromDatabase())
- .thenAccept(data -> {
- // Code to run on main game thread after data has been loaded
- Bukkit.broadcastMessage("Loaded data from database: " + data);
- })
- .exceptionally(ex -> {
- // Code to run if an exception occurs while loading data
- getLogger().severe("Error loading data from database: " + ex.getMessage());
- return null;
- }).join();
- } catch (Exception ex) {
- getLogger().severe("Error scheduling async task: " + ex.getMessage());
- }
- }
- }.runTaskLaterAsynchronously(this, 20);
- }
- private List<String> loadDataFromDatabase() {
- List<String> data = new ArrayList<>();
- try (Statement statement = dbConnection.createStatement();
- ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable")) {
- while (resultSet.next()) {
- data.add(resultSet.getString("column_name"));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return data;
- }
- @Override
- public void onDisable() {
- // Close database connection
- try {
- dbConnection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement