Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.harry0198.base;
- import java.io.File;
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.logging.Level;
- import java.util.stream.Stream;
- import org.bukkit.Bukkit;
- import org.bukkit.Sound;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.generator.ChunkGenerator;
- import org.bukkit.plugin.RegisteredServiceProvider;
- import org.bukkit.plugin.java.JavaPlugin;
- import co.aikar.commands.PaperCommandManager;
- import me.harry0198.base.commands.admin.CommandCreateWorld;
- import me.harry0198.base.commands.admin.run.FirstRun;
- import me.harry0198.base.commands.homes.CommandHome;
- import me.harry0198.base.commands.management.CommandCreate;
- import me.harry0198.base.commands.management.CommandDelete;
- import me.harry0198.base.commands.management.CommandMenu;
- import me.harry0198.base.commands.member.InviteCommand;
- import me.harry0198.base.commands.member.JoinCommand;
- import me.harry0198.base.commands.member.KickCommand;
- import me.harry0198.base.commands.member.LeaveCommand;
- import me.harry0198.base.commands.member.ListCommand;
- import me.harry0198.base.commands.member.RejectCommand;
- import me.harry0198.base.configuration.Conditions;
- import me.harry0198.base.generator.WorldGenerator;
- import me.harry0198.base.listeners.InventoryClick;
- import me.harry0198.base.listeners.PlayerEntity;
- import net.milkbowl.vault.economy.Economy;
- import net.milkbowl.vault.permission.Permission;
- public class Base extends JavaPlugin {
- private static Connection connection;
- private String host, database, username, password;
- private int port;
- private PaperCommandManager manager;
- private static Economy economy;
- private static Permission perms = null;
- private File gridData;
- private YamlConfiguration modifyGridData;
- private Map<Player, Player> invite = new HashMap<>();
- public Map<String, String> selectedPlayer = new HashMap<>();
- /**
- * Log any message to console with any level.
- *
- * @param level the log level to log on.
- * @param msg the message to log.
- */
- public void log(Level level, String msg) {
- getLogger().log(level, msg);
- }
- /**
- * Log a message to console on INFO level.
- *
- * @param msg the msg you want to log.
- */
- public void info(String msg) {
- log(Level.INFO, msg);
- }
- /**
- * Log a message to console on WARNING level.
- *
- * @param msg the msg you want to log.
- */
- public void warn(String msg) {
- log(Level.WARNING, msg);
- }
- /**
- * Log a message to console on SEVERE level.
- *
- * @param msg the msg you want to log.
- */
- public void severe(String msg) {
- log(Level.SEVERE, msg);
- }
- @SuppressWarnings("deprecation")
- @Override
- public void onEnable() {
- // Check if the server is running Vault
- if (!Bukkit.getPluginManager().isPluginEnabled("Vault")) {
- warn("Vault has not been located. Stopping Server...");
- Bukkit.getPluginManager().disablePlugin(this);
- return;
- }
- host = "localhost";
- port = 3306;
- database = "Base Database";
- username = "root";
- password = "";
- try {
- openConnection();
- info("SQL Database successfully connected");
- } catch (SQLException x) {
- x.printStackTrace();
- }
- try {
- PreparedStatement ps = connection.prepareStatement(
- "CREATE TABLE IF NOT EXISTS PLAYER_DATA(UUID varchar(36) NOT NULL, " + "BASE_OWNER varchar(36), "
- + "ISLANDS int(1), " + "OWNER boolean, " + "REGION_MIN_X int(30), "
- + "REGION_MAX_X int(30), " + "REGION_MIN_Z int(30), " + "REGION_MAX_Z int(30), "
- + "X int(30), " + "Z int(30), " + "COOP_ISLAND varchar(255), " + "RATINGS_LEFT int(1));");
- PreparedStatement ps2 = connection.prepareStatement(
- "CREATE TABLE IF NOT EXISTS ISLAND_DATA(ISLAND_CODE varchar(255), " + "TIME int(4), "
- + "RATINGS int(3), " + "WEATHER varchar(36), " + "BASE_OWNER varchar(36));");
- PreparedStatement ps3 = connection
- .prepareStatement("CREATE TABLE IF NOT EXISTS ISLAND_LIST(ISLAND_CODE varchar(255), "
- + "no1 varchar(36), " + "no2 varchar(36), " + "no3 varchar(36), " + "no4 varchar(36), "
- + "no5 varchar(36), " + "no6 varchar(36), " + "no7 varchar(36), " + "no8 varchar(36));");
- ps3.executeUpdate();
- ps2.executeUpdate();
- ps.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- initializeFiles();
- this.getServer().getPluginManager().registerEvents(new PlayerEntity(), this);
- this.getServer().getPluginManager().registerEvents(new InventoryClick(this), this);
- // Load Vault
- info("Hooking into Vault..");
- // Setup Vaults Economy Hook
- setupEconomy();
- // Setup Vaults Permission Hook
- setupPermissions();
- info("Hooked into Vault!");
- manager = new PaperCommandManager(this);
- try {
- Conditions.class.newInstance().registerConditions(manager);
- } catch (InstantiationException | IllegalAccessException e) {
- e.printStackTrace();
- }
- manager.enableUnstableAPI("help");
- // Lists Commands
- Stream.of(
- //Admin Commands
- new CommandCreateWorld(this),
- new BaseCommandTest(),
- //Management Commands
- new CommandHome(this),
- new CommandCreate(this),
- new CommandDelete(this),
- //Coop Commands
- new InviteCommand(this),
- new JoinCommand(this),
- new KickCommand(this),
- new LeaveCommand(this),
- new ListCommand(),
- new RejectCommand(this),
- new CommandMenu()
- ).forEach(manager::registerCommand);
- }
- private void initializeFiles() {
- File folder = new File(Bukkit.getServer().getPluginManager().getPlugin("Base").getDataFolder(), "PluginData");
- if (!folder.exists()) {
- folder.mkdirs();
- }
- gridData = new File(folder, "GridData.yml");
- if (!(gridData.exists())) {
- try {
- gridData.createNewFile();
- } catch (IOException e) {
- e.printStackTrace();
- }
- modifyGridData = YamlConfiguration.loadConfiguration(gridData);
- FirstRun f = new FirstRun(this);
- f.onFirstRun();
- }
- modifyGridData = YamlConfiguration.loadConfiguration(gridData);
- info("GridData.yml Loaded");
- }
- private void openConnection() throws SQLException {
- if (connection != null && !connection.isClosed()) {
- return;
- }
- connection = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database,
- this.username, this.password);
- }
- public static PreparedStatement prepareStatement(String query) {
- PreparedStatement ps = null;
- try {
- ps = connection.prepareStatement(query);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return ps;
- }
- /**
- * Implement Vault's Economy API
- */
- private void setupEconomy() {
- RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager()
- .getRegistration(Economy.class);
- if (economyProvider != null)
- economy = economyProvider.getProvider();
- }
- /**
- * Implement Vault's Permission API
- */
- private boolean setupPermissions() {
- RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
- perms = rsp.getProvider();
- return perms != null;
- }
- @Override
- public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
- return new WorldGenerator(id);
- }
- public static Permission getPermissions() {
- return perms;
- }
- public static Economy getEconomy() {
- return economy;
- }
- public YamlConfiguration getGridData() {
- return modifyGridData;
- }
- public File getGridFile() {
- return gridData;
- }
- public Map<Player, Player> getInvite() {
- return invite;
- }
- @Override
- public void onDisable() {
- try {
- connection.close();
- info("Closed database connection");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void playSound(Player player, Sound sound) {
- player.playSound(player.getLocation(), sound, 1, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement