Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.vanished.spongecooldowns;
- import com.google.inject.Inject;
- import com.vanished.spongecooldowns.database.Queries;
- import com.zaxxer.hikari.HikariDataSource;
- import com.vanished.spongecooldowns.listener.PlayerActivity;
- import ninja.leaping.configurate.ConfigurationNode;
- import ninja.leaping.configurate.commented.CommentedConfigurationNode;
- import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
- import ninja.leaping.configurate.loader.ConfigurationLoader;
- import org.spongepowered.api.Sponge;
- import org.spongepowered.api.config.ConfigDir;
- import org.spongepowered.api.config.DefaultConfig;
- import org.spongepowered.api.event.Listener;
- import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
- import org.spongepowered.api.event.game.state.GameStartedServerEvent;
- import org.spongepowered.api.plugin.Plugin;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.sql.Connection;
- import java.sql.SQLException;
- @Plugin(id = "spongecooldowns", name = "Sponge Cooldowns", version = "1.0")
- public class SpongeCooldowns {
- @Inject
- @ConfigDir(sharedRoot = false)
- private Path configDir;
- private Path configFile = Paths.get(configDir + "/config.conf");
- private ConfigurationLoader<CommentedConfigurationNode> configLoader = HoconConfigurationLoader.builder().setPath(configFile).build();
- public CommentedConfigurationNode configNode;
- private static SpongeCooldowns instance;
- private static HikariDataSource dataSource;
- @Listener
- public void onServerStart(GamePreInitializationEvent event) {
- //Setting the instance
- instance = this;
- //Config stuff (Creating directories and loading files)
- checkDirectory();
- configSetup();
- //MySQL Stuff
- dataSource = new HikariDataSource();
- dataSource.setJdbcUrl("jdbc:mysql://" + configNode.getNode("mysql", "host").getString() + "/" + configNode.getNode("mysql", "database").getString());
- dataSource.setUsername(configNode.getNode("mysql", "username").getString());
- dataSource.setPassword(configNode.getNode("mysql", "password").getString());
- dataSource.setDriverClassName("com.mysql.jdbc.Driver");
- connectMysql();
- }
- public static SpongeCooldowns getInstance() {
- return instance;
- }
- public Connection getConnection() {
- try {
- return dataSource.getConnection();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return null;
- }
- private void connectMysql() {
- Queries.checkIfTableExists("cooldowns", "playerUUID varchar(255), command varchar(255), cooldownStart bigint");
- }
- private void checkDirectory() {
- if (!Files.exists(configDir)) {
- try {
- Files.createDirectories(configDir);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private void configSetup() {
- if (!Files.exists(configFile)) {
- try {
- Files.createFile(configFile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else {
- load();
- }
- }
- private void load() {
- try {
- configNode = configLoader.load();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment