Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.29 KB | None | 0 0
  1. package me.aberdeener.vaultcore;
  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.SQLException;
  8. import java.sql.Statement;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.ChatColor;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.configuration.InvalidConfigurationException;
  15. import org.bukkit.configuration.file.FileConfiguration;
  16. import org.bukkit.configuration.file.YamlConfiguration;
  17. import org.bukkit.event.Listener;
  18. import org.bukkit.plugin.PluginManager;
  19. import org.bukkit.plugin.RegisteredServiceProvider;
  20. import org.bukkit.plugin.java.JavaPlugin;
  21. import org.bukkit.scheduler.BukkitRunnable;
  22.  
  23. import me.aberdeener.vaultcore.commands.DiscordCommand;
  24. import me.aberdeener.vaultcore.commands.ECCommand;
  25. import me.aberdeener.vaultcore.commands.HelpCommand;
  26. import me.aberdeener.vaultcore.commands.MsgCommand;
  27. import me.aberdeener.vaultcore.commands.PingCommand;
  28. import me.aberdeener.vaultcore.commands.PlayTime;
  29. import me.aberdeener.vaultcore.commands.RanksCommand;
  30. import me.aberdeener.vaultcore.commands.TPACommand;
  31. import me.aberdeener.vaultcore.commands.WarpCommand;
  32. import me.aberdeener.vaultcore.commands.WildTeleport;
  33. import me.aberdeener.vaultcore.commands.WorkbenchCommand;
  34. import me.aberdeener.vaultcore.commands.WorldTPCommand;
  35. import me.aberdeener.vaultcore.commands.staff.CheckCommand;
  36. import me.aberdeener.vaultcore.commands.staff.ClearChat;
  37. import me.aberdeener.vaultcore.commands.staff.ConsoleSay;
  38. import me.aberdeener.vaultcore.commands.staff.FeedCommand;
  39. import me.aberdeener.vaultcore.commands.staff.FlyCommand;
  40. import me.aberdeener.vaultcore.commands.staff.GamemodeCommand;
  41. import me.aberdeener.vaultcore.commands.staff.GrantCommand;
  42. import me.aberdeener.vaultcore.commands.staff.GrantCommandInv;
  43. import me.aberdeener.vaultcore.commands.staff.HealCommand;
  44. import me.aberdeener.vaultcore.commands.staff.InvseeCommand;
  45. import me.aberdeener.vaultcore.commands.staff.StaffChat;
  46. import me.aberdeener.vaultcore.commands.staff.TeleportCommand;
  47. import me.aberdeener.vaultcore.listeners.GrantCommandListener;
  48. import me.aberdeener.vaultcore.listeners.MuteChat;
  49. import me.aberdeener.vaultcore.listeners.PlayerJoinListener;
  50. import me.aberdeener.vaultcore.listeners.PlayerQuitListener;
  51. import me.aberdeener.vaultcore.listeners.PlayerTPListener;
  52. import me.aberdeener.vaultcore.listeners.SetDisplayName;
  53. import me.aberdeener.vaultcore.listeners.SignColours;
  54. import me.aberdeener.vaultcore.listeners.SpawnCommand;
  55. import me.aberdeener.vaultcore.listeners.VaultSuiteChat;
  56. import me.aberdeener.vaultcore.runnables.RankPromotions;
  57. import me.aberdeener.vaultcore.tabcompletion.TabCompletion;
  58. import net.milkbowl.vault.chat.Chat;
  59.  
  60. public class VaultCore extends JavaPlugin implements Listener {
  61.  
  62.     // main instance
  63.     public static VaultCore instance;
  64.  
  65.     // vault chat
  66.     private static Chat chat = null;
  67.  
  68.     // data file setup
  69.     private File playerDataFile;
  70.     private FileConfiguration playerData;
  71.  
  72.     // mysql info
  73.     public Connection connection;
  74.     private String host, database, username, password;
  75.     private int port;
  76.  
  77.     @Override
  78.     public void onEnable() {
  79.  
  80.         // save config.yml if not exist
  81.         getConfig().options().copyDefaults(true);
  82.         saveConfig();
  83.  
  84.         // access Main from other classes
  85.         instance = this;
  86.  
  87.         // connect to sql
  88.         host = "127.0.0.1";
  89.         port = 3306;
  90.         database = "VaultMC_Data";
  91.         username = "root";
  92.         password = "";
  93.         BukkitRunnable r = new BukkitRunnable() {
  94.             @Override
  95.             public void run() {
  96.                 try {
  97.                     openConnection();
  98.                     @SuppressWarnings("unused")
  99.                     Statement stmt = connection.createStatement();
  100.                 } catch (ClassNotFoundException e) {
  101.                     e.printStackTrace();
  102.                 } catch (SQLException e) {
  103.                     e.printStackTrace();
  104.                 }
  105.             }
  106.         };
  107.  
  108.         r.runTaskAsynchronously(this);
  109.  
  110.         // setup vault chat
  111.         setupChat();
  112.  
  113.         // register commands
  114.         registerCommands();
  115.  
  116.         // register listeners (below)
  117.         registerListeners();
  118.  
  119.         // create player data file
  120.         createPlayerData();
  121.  
  122.         // initiate /grant.admin
  123.         GrantCommandInv.initAdmin();
  124.  
  125.         // initiate /grant.mod
  126.         GrantCommandInv.initMod();
  127.  
  128.         // run rank promotions task every 5 minutes
  129.         // define minute
  130.         int minute1 = (int) 1200L;
  131.         this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  132.             public void run() {
  133.                 // run method in class
  134.                 RankPromotions.memberPromotion();
  135.                 RankPromotions.patreonPromotion();
  136.             }
  137.             // use minute variable to see when to run
  138.         }, 0L, minute1 * 5);
  139.     }
  140.  
  141.     // call data file from other class
  142.     public FileConfiguration getPlayerData() {
  143.         return this.playerData;
  144.     }
  145.  
  146.     // method to make data file
  147.     private void createPlayerData() {
  148.         playerDataFile = new File(getDataFolder(), "data.yml");
  149.         if (!playerDataFile.exists()) {
  150.             playerDataFile.getParentFile().mkdirs();
  151.             saveResource("data.yml", false);
  152.         }
  153.  
  154.         playerData = new YamlConfiguration();
  155.         try {
  156.             playerData.load(playerDataFile);
  157.         } catch (IOException | InvalidConfigurationException e) {
  158.             e.printStackTrace();
  159.         }
  160.  
  161.     }
  162.  
  163.     // save data file
  164.     public void savePlayerData() {
  165.         try {
  166.             playerData.save(playerDataFile);
  167.         } catch (Exception e) {
  168.             e.printStackTrace();
  169.  
  170.         }
  171.  
  172.     }
  173.  
  174.     // lets us use this instance to load coords, reload config etc
  175.     public static VaultCore getInstance() {
  176.         return instance;
  177.     }
  178.  
  179.     // vault stuff
  180.     private boolean setupChat() {
  181.         RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
  182.         chat = rsp.getProvider();
  183.         return chat != null;
  184.     }
  185.  
  186.     public static Chat getChat() {
  187.         return chat;
  188.     }
  189.  
  190.     public void registerCommands() {
  191.         // register commands and their classes
  192.         this.getCommand("help").setExecutor(new HelpCommand());
  193.         this.getCommand("help").setTabCompleter(new TabCompletion());
  194.  
  195.         this.getCommand("clearchat").setExecutor(new ClearChat());
  196.         this.getCommand("cc").setExecutor(new ClearChat());
  197.  
  198.         this.getCommand("playtime").setExecutor(new PlayTime());
  199.         this.getCommand("pt").setExecutor(new PlayTime());
  200.  
  201.         this.getCommand("staffchat").setExecutor(new StaffChat());
  202.         this.getCommand("sc").setExecutor(new StaffChat());
  203.  
  204.         this.getCommand("wild").setExecutor(new WildTeleport());
  205.  
  206.         this.getCommand("ping").setExecutor(new PingCommand());
  207.  
  208.         this.getCommand("mutechat").setExecutor(new MuteChat());
  209.  
  210.         this.getCommand("check").setExecutor(new CheckCommand());
  211.  
  212.         this.getCommand("say").setExecutor(new ConsoleSay());
  213.         this.getCommand("chat").setExecutor(new ConsoleSay());
  214.  
  215.         this.getCommand("setspawn").setExecutor(new SpawnCommand());
  216.  
  217.         this.getCommand("spawn").setExecutor(new SpawnCommand());
  218.  
  219.         this.getCommand("grant").setExecutor(new GrantCommand());
  220.  
  221.         this.getCommand("gamemode").setExecutor(new GamemodeCommand());
  222.         this.getCommand("gamemode").setTabCompleter(new TabCompletion());
  223.         this.getCommand("gmc").setExecutor(new GamemodeCommand());
  224.         this.getCommand("gms").setExecutor(new GamemodeCommand());
  225.         this.getCommand("gmsp").setExecutor(new GamemodeCommand());
  226.  
  227.         this.getCommand("teleport").setExecutor(new TeleportCommand());
  228.         this.getCommand("tp").setExecutor(new TeleportCommand());
  229.  
  230.         this.getCommand("tphere").setExecutor(new TeleportCommand());
  231.  
  232.         this.getCommand("tpa").setExecutor(new TPACommand());
  233.  
  234.         this.getCommand("tpahere").setExecutor(new TPACommand());
  235.  
  236.         this.getCommand("tpaccept").setExecutor(new TPACommand());
  237.  
  238.         this.getCommand("tpdeny").setExecutor(new TPACommand());
  239.  
  240.         this.getCommand("invsee").setExecutor(new InvseeCommand());
  241.  
  242.         this.getCommand("fly").setExecutor(new FlyCommand());
  243.  
  244.         this.getCommand("workbench").setExecutor(new WorkbenchCommand());
  245.  
  246.         this.getCommand("enderchest").setExecutor(new ECCommand());
  247.  
  248.         this.getCommand("msg").setExecutor(new MsgCommand());
  249.         this.getCommand("r").setExecutor(new MsgCommand());
  250.  
  251.         this.getCommand("feed").setExecutor(new FeedCommand());
  252.  
  253.         this.getCommand("heal").setExecutor(new HealCommand());
  254.  
  255.         this.getCommand("ranks").setExecutor(new RanksCommand());
  256.  
  257.         this.getCommand("back").setExecutor(new PlayerTPListener());
  258.  
  259.         this.getCommand("discord").setExecutor(new DiscordCommand());
  260.  
  261.         this.getCommand("sv").setExecutor(new WorldTPCommand());
  262.  
  263.         this.getCommand("cr").setExecutor(new WorldTPCommand());
  264.  
  265.         this.getCommand("warp").setExecutor(new WarpCommand());
  266.  
  267.         this.getCommand("setwarp").setExecutor(new WarpCommand());
  268.  
  269.         this.getCommand("delwarp").setExecutor(new WarpCommand());
  270.     }
  271.  
  272.     public void registerListeners() {
  273.  
  274.         // creates the plugin manager
  275.         PluginManager pm = Bukkit.getServer().getPluginManager();
  276.  
  277.         // listens for the main class
  278.         pm.registerEvents(this, this);
  279.  
  280.         // Listens for mutechat class
  281.         pm.registerEvents(new MuteChat(), this);
  282.  
  283.         // Listens for chat class
  284.         pm.registerEvents(new VaultSuiteChat(), this);
  285.  
  286.         // Listens for grantcommand class
  287.         pm.registerEvents(new GrantCommandListener(), this);
  288.  
  289.         // Listens for setdisplayname
  290.         pm.registerEvents(new SetDisplayName(), this);
  291.  
  292.         // Listens for signs
  293.         pm.registerEvents(new SignColours(), this);
  294.  
  295.         // Listens for join
  296.         pm.registerEvents(new PlayerJoinListener(), this);
  297.  
  298.         // Listens for leave
  299.         pm.registerEvents(new PlayerQuitListener(), this);
  300.  
  301.         // Listens for /back messages
  302.         pm.registerEvents(new PlayerTPListener(), this);
  303.     }
  304.  
  305.     @Override
  306.     public void onDisable() {
  307.         this.saveConfig();
  308.         this.savePlayerData();
  309.     }
  310.  
  311.     public void openConnection() throws SQLException, ClassNotFoundException {
  312.         if (connection != null && !connection.isClosed()) {
  313.             return;
  314.         }
  315.  
  316.         synchronized (this) {
  317.             if (connection != null && !connection.isClosed()) {
  318.                 return;
  319.             }
  320.             Class.forName("com.mysql.jdbc.Driver");
  321.             connection = DriverManager.getConnection(
  322.                     "jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database, this.username, this.password);
  323.         }
  324.     }
  325.  
  326.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  327.  
  328.         if (command.getName().equalsIgnoreCase("vcreload")) {
  329.  
  330.             if (!sender.hasPermission("vc.reload")) {
  331.                 sender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission")));
  332.                 return true;
  333.             }
  334.  
  335.             reloadConfig();
  336.             sender.sendMessage(ChatColor.GREEN + "Configuration reloaded!");
  337.             return true;
  338.         }
  339.         return true;
  340.     }
  341. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement