Guest User

Untitled

a guest
Jun 22nd, 2017
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. package com.vanished.spongecooldowns;
  2.  
  3. import com.google.inject.Inject;
  4. import com.vanished.spongecooldowns.database.Queries;
  5. import com.zaxxer.hikari.HikariDataSource;
  6. import com.vanished.spongecooldowns.listener.PlayerActivity;
  7. import ninja.leaping.configurate.ConfigurationNode;
  8. import ninja.leaping.configurate.commented.CommentedConfigurationNode;
  9. import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
  10. import ninja.leaping.configurate.loader.ConfigurationLoader;
  11. import org.spongepowered.api.Sponge;
  12. import org.spongepowered.api.config.ConfigDir;
  13. import org.spongepowered.api.config.DefaultConfig;
  14. import org.spongepowered.api.event.Listener;
  15. import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
  16. import org.spongepowered.api.event.game.state.GameStartedServerEvent;
  17. import org.spongepowered.api.plugin.Plugin;
  18.  
  19. import java.io.IOException;
  20. import java.nio.file.Files;
  21. import java.nio.file.Path;
  22. import java.nio.file.Paths;
  23. import java.sql.Connection;
  24. import java.sql.SQLException;
  25.  
  26. @Plugin(id = "spongecooldowns", name = "Sponge Cooldowns", version = "1.0")
  27. public class SpongeCooldowns {
  28. @Inject
  29. @ConfigDir(sharedRoot = false)
  30. private Path configDir;
  31.  
  32. private Path configFile = Paths.get(configDir + "/config.conf");
  33.  
  34. private ConfigurationLoader<CommentedConfigurationNode> configLoader = HoconConfigurationLoader.builder().setPath(configFile).build();
  35. public CommentedConfigurationNode configNode;
  36.  
  37. private static SpongeCooldowns instance;
  38. private static HikariDataSource dataSource;
  39.  
  40. @Listener
  41. public void onServerStart(GamePreInitializationEvent event) {
  42. //Setting the instance
  43. instance = this;
  44.  
  45. //Config stuff (Creating directories and loading files)
  46. checkDirectory();
  47. configSetup();
  48.  
  49. //MySQL Stuff
  50. dataSource = new HikariDataSource();
  51. dataSource.setJdbcUrl("jdbc:mysql://" + configNode.getNode("mysql", "host").getString() + "/" + configNode.getNode("mysql", "database").getString());
  52. dataSource.setUsername(configNode.getNode("mysql", "username").getString());
  53. dataSource.setPassword(configNode.getNode("mysql", "password").getString());
  54. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  55. connectMysql();
  56. }
  57.  
  58. public static SpongeCooldowns getInstance() {
  59. return instance;
  60. }
  61.  
  62. public Connection getConnection() {
  63. try {
  64. return dataSource.getConnection();
  65. } catch (SQLException e) {
  66. e.printStackTrace();
  67. }
  68. return null;
  69. }
  70.  
  71. private void connectMysql() {
  72. Queries.checkIfTableExists("cooldowns", "playerUUID varchar(255), command varchar(255), cooldownStart bigint");
  73. }
  74.  
  75. private void checkDirectory() {
  76. if (!Files.exists(configDir)) {
  77. try {
  78. Files.createDirectories(configDir);
  79. } catch (IOException e) {
  80. e.printStackTrace();
  81. }
  82. }
  83. }
  84.  
  85. private void configSetup() {
  86. if (!Files.exists(configFile)) {
  87. try {
  88. Files.createFile(configFile);
  89. } catch (IOException e) {
  90. e.printStackTrace();
  91. }
  92. } else {
  93. load();
  94. }
  95. }
  96.  
  97. private void load() {
  98. try {
  99. configNode = configLoader.load();
  100. } catch (IOException e) {
  101. e.printStackTrace();
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment