Advertisement
Guest User

Untitled

a guest
May 2nd, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.00 KB | None | 0 0
  1. package me.harry0198.base;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.SQLException;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. import java.util.logging.Level;
  12. import java.util.stream.Stream;
  13.  
  14. import org.bukkit.Bukkit;
  15. import org.bukkit.Sound;
  16. import org.bukkit.configuration.file.YamlConfiguration;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.generator.ChunkGenerator;
  19. import org.bukkit.plugin.RegisteredServiceProvider;
  20. import org.bukkit.plugin.java.JavaPlugin;
  21.  
  22. import co.aikar.commands.PaperCommandManager;
  23. import me.harry0198.base.commands.admin.CommandCreateWorld;
  24. import me.harry0198.base.commands.admin.run.FirstRun;
  25. import me.harry0198.base.commands.homes.CommandHome;
  26. import me.harry0198.base.commands.management.CommandCreate;
  27. import me.harry0198.base.commands.management.CommandDelete;
  28. import me.harry0198.base.commands.management.CommandMenu;
  29. import me.harry0198.base.commands.member.InviteCommand;
  30. import me.harry0198.base.commands.member.JoinCommand;
  31. import me.harry0198.base.commands.member.KickCommand;
  32. import me.harry0198.base.commands.member.LeaveCommand;
  33. import me.harry0198.base.commands.member.ListCommand;
  34. import me.harry0198.base.commands.member.RejectCommand;
  35. import me.harry0198.base.configuration.Conditions;
  36. import me.harry0198.base.generator.WorldGenerator;
  37. import me.harry0198.base.listeners.InventoryClick;
  38. import me.harry0198.base.listeners.PlayerEntity;
  39. import net.milkbowl.vault.economy.Economy;
  40. import net.milkbowl.vault.permission.Permission;
  41.  
  42. public class Base extends JavaPlugin {
  43.  
  44.     private static Connection connection;
  45.     private String host, database, username, password;
  46.     private int port;
  47.     private PaperCommandManager manager;
  48.     private static Economy economy;
  49.     private static Permission perms = null;
  50.  
  51.     private File gridData;
  52.     private YamlConfiguration modifyGridData;
  53.    
  54.     private Map<Player, Player> invite = new HashMap<>();
  55.     public Map<String, String> selectedPlayer = new HashMap<>();
  56.    
  57.  
  58.     /**
  59.      * Log any message to console with any level.
  60.      *
  61.      * @param level the log level to log on.
  62.      * @param msg   the message to log.
  63.      */
  64.     public void log(Level level, String msg) {
  65.         getLogger().log(level, msg);
  66.     }
  67.  
  68.     /**
  69.      * Log a message to console on INFO level.
  70.      *
  71.      * @param msg the msg you want to log.
  72.      */
  73.     public void info(String msg) {
  74.         log(Level.INFO, msg);
  75.     }
  76.  
  77.     /**
  78.      * Log a message to console on WARNING level.
  79.      *
  80.      * @param msg the msg you want to log.
  81.      */
  82.     public void warn(String msg) {
  83.         log(Level.WARNING, msg);
  84.     }
  85.  
  86.     /**
  87.      * Log a message to console on SEVERE level.
  88.      *
  89.      * @param msg the msg you want to log.
  90.      */
  91.     public void severe(String msg) {
  92.         log(Level.SEVERE, msg);
  93.     }
  94.  
  95.     @SuppressWarnings("deprecation")
  96.     @Override
  97.     public void onEnable() {
  98.         // Check if the server is running Vault
  99.         if (!Bukkit.getPluginManager().isPluginEnabled("Vault")) {
  100.             warn("Vault has not been located. Stopping Server...");
  101.             Bukkit.getPluginManager().disablePlugin(this);
  102.             return;
  103.         }
  104.        
  105.        
  106.  
  107.         host = "localhost";
  108.         port = 3306;
  109.         database = "Base Database";
  110.         username = "root";
  111.         password = "";
  112.  
  113.         try {
  114.             openConnection();
  115.  
  116.             info("SQL Database successfully connected");
  117.         } catch (SQLException x) {
  118.             x.printStackTrace();
  119.         }
  120.         try {
  121.             PreparedStatement ps = connection.prepareStatement(
  122.                     "CREATE TABLE IF NOT EXISTS PLAYER_DATA(UUID varchar(36) NOT NULL, " + "BASE_OWNER varchar(36), "
  123.                             + "ISLANDS int(1), " + "OWNER boolean, " + "REGION_MIN_X int(30), "
  124.                             + "REGION_MAX_X int(30), " + "REGION_MIN_Z int(30), " + "REGION_MAX_Z int(30), "
  125.                             + "X int(30), " + "Z int(30), " + "COOP_ISLAND varchar(255), " + "RATINGS_LEFT int(1));");
  126.  
  127.             PreparedStatement ps2 = connection.prepareStatement(
  128.                     "CREATE TABLE IF NOT EXISTS ISLAND_DATA(ISLAND_CODE varchar(255), " + "TIME int(4), "
  129.                             + "RATINGS int(3), " + "WEATHER varchar(36), " + "BASE_OWNER varchar(36));");
  130.  
  131.             PreparedStatement ps3 = connection
  132.                     .prepareStatement("CREATE TABLE IF NOT EXISTS ISLAND_LIST(ISLAND_CODE varchar(255), "
  133.                             + "no1 varchar(36), " + "no2 varchar(36), " + "no3 varchar(36), " + "no4 varchar(36), "
  134.                             + "no5 varchar(36), " + "no6 varchar(36), " + "no7 varchar(36), " + "no8 varchar(36));");
  135.  
  136.             ps3.executeUpdate();
  137.             ps2.executeUpdate();
  138.             ps.executeUpdate();
  139.         } catch (SQLException e) {
  140.             e.printStackTrace();
  141.         }
  142.  
  143.         initializeFiles();
  144.  
  145.         this.getServer().getPluginManager().registerEvents(new PlayerEntity(), this);
  146.         this.getServer().getPluginManager().registerEvents(new InventoryClick(this), this);
  147.  
  148.         // Load Vault
  149.         info("Hooking into Vault..");
  150.         // Setup Vaults Economy Hook
  151.         setupEconomy();
  152.         // Setup Vaults Permission Hook
  153.         setupPermissions();
  154.         info("Hooked into Vault!");
  155.        
  156.         manager = new PaperCommandManager(this);
  157.         try {
  158.             Conditions.class.newInstance().registerConditions(manager);
  159.         } catch (InstantiationException | IllegalAccessException e) {
  160.             e.printStackTrace();
  161.         }
  162.         manager.enableUnstableAPI("help");
  163.         // Lists Commands
  164.         Stream.of(
  165.                 //Admin Commands
  166.                 new CommandCreateWorld(this),
  167.                 new BaseCommandTest(),
  168.                 //Management Commands
  169.                 new CommandHome(this),
  170.                 new CommandCreate(this),
  171.                 new CommandDelete(this),
  172.                 //Coop Commands
  173.                 new InviteCommand(this),
  174.                 new JoinCommand(this),
  175.                 new KickCommand(this),
  176.                 new LeaveCommand(this),
  177.                 new ListCommand(),
  178.                 new RejectCommand(this),
  179.                 new CommandMenu()
  180.                
  181.         ).forEach(manager::registerCommand);
  182.  
  183.     }
  184.  
  185.     private void initializeFiles() {
  186.         File folder = new File(Bukkit.getServer().getPluginManager().getPlugin("Base").getDataFolder(), "PluginData");
  187.         if (!folder.exists()) {
  188.             folder.mkdirs();
  189.         }
  190.  
  191.         gridData = new File(folder, "GridData.yml");
  192.  
  193.         if (!(gridData.exists())) {
  194.  
  195.             try {
  196.                 gridData.createNewFile();
  197.             } catch (IOException e) {
  198.                 e.printStackTrace();
  199.             }
  200.             modifyGridData = YamlConfiguration.loadConfiguration(gridData);
  201.  
  202.             FirstRun f = new FirstRun(this);
  203.             f.onFirstRun();
  204.         }
  205.  
  206.         modifyGridData = YamlConfiguration.loadConfiguration(gridData);
  207.         info("GridData.yml Loaded");
  208.     }
  209.  
  210.     private void openConnection() throws SQLException {
  211.  
  212.         if (connection != null && !connection.isClosed()) {
  213.             return;
  214.         }
  215.         connection = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database,
  216.                 this.username, this.password);
  217.     }
  218.  
  219.     public static PreparedStatement prepareStatement(String query) {
  220.         PreparedStatement ps = null;
  221.         try {
  222.             ps = connection.prepareStatement(query);
  223.         } catch (SQLException e) {
  224.             e.printStackTrace();
  225.         }
  226.         return ps;
  227.     }
  228.  
  229.     /**
  230.      * Implement Vault's Economy API
  231.      */
  232.     private void setupEconomy() {
  233.         RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager()
  234.                 .getRegistration(Economy.class);
  235.         if (economyProvider != null)
  236.             economy = economyProvider.getProvider();
  237.     }
  238.  
  239.     /**
  240.      * Implement Vault's Permission API
  241.      */
  242.     private boolean setupPermissions() {
  243.         RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
  244.         perms = rsp.getProvider();
  245.         return perms != null;
  246.     }
  247.    
  248.     @Override
  249.     public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
  250.         return new WorldGenerator(id);
  251.     }
  252.    
  253.     public static Permission getPermissions() {
  254.         return perms;
  255.     }
  256.  
  257.     public static Economy getEconomy() {
  258.         return economy;
  259.     }
  260.  
  261.     public YamlConfiguration getGridData() {
  262.         return modifyGridData;
  263.     }
  264.  
  265.     public File getGridFile() {
  266.         return gridData;
  267.     }
  268.    
  269.     public Map<Player, Player> getInvite() {
  270.         return invite;
  271.     }
  272.  
  273.     @Override
  274.     public void onDisable() {
  275.         try {
  276.             connection.close();
  277.             info("Closed database connection");
  278.         } catch (SQLException e) {
  279.             e.printStackTrace();
  280.         }
  281.     }
  282.     public void playSound(Player player, Sound sound) {
  283.         player.playSound(player.getLocation(), sound, 1, 1);
  284.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement