Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.RamonPeek;
- import java.io.ByteArrayOutputStream;
- import java.io.DataOutputStream;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import net.md_5.bungee.api.ChatColor;
- import org.bukkit.Bukkit;
- import org.bukkit.Server;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Listener;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Main extends JavaPlugin implements Listener
- {
- private static Connection connection;
- public Main() {}
- private static String IP = "62.210.168.132";
- private static String PORT = "3306";
- private static String DATABASE = "realmsdb";
- private static String USER = "realmsdb";
- private static String PASSWORD = "realmsww";
- public void onEnable() {
- PluginManager manager = Bukkit.getServer().getPluginManager();
- manager.registerEvents(new Events(this), this);
- Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
- }
- public void onDisable() {
- try {
- if ((connection != null) && (connection.isClosed()))
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void sendToServer(Player p, String targetServer) {
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- DataOutputStream out = new DataOutputStream(b);
- try {
- out.writeUTF("Connect");
- out.writeUTF(targetServer);
- } catch (Exception e) {
- e.printStackTrace();
- }
- p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
- }
- public static synchronized void openConnection()
- {
- try
- {
- connection = DriverManager.getConnection("jdbc:mysql://" + IP + ":" + PORT + "/" + DATABASE + "?user=" + USER + "&password=" + PASSWORD + "&autoReconnect=true");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static synchronized void closeConnection() {
- try {
- connection.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static synchronized boolean dbContainsServer(String name) {
- try {
- PreparedStatement sql = connection.prepareStatement("SELECT * FROM `" + DATABASE + "` WHERE servername=?;");
- sql.setString(1, name);
- ResultSet resultSet = sql.executeQuery();
- boolean containsServer = resultSet.next();
- sql.close();
- resultSet.close();
- return containsServer;
- } catch (Exception e) {
- e.printStackTrace(); }
- return false;
- }
- public String getType(String servername)
- {
- openConnection();
- String type = "";
- try {
- if (dbContainsServer(servername)) {
- PreparedStatement sql = connection.prepareStatement("SELECT servertype FROM `" + DATABASE + "` WHERE servername=?;");
- sql.setString(1, servername);
- ResultSet result = sql.executeQuery();
- result.next();
- type = result.getString("servertype");
- sql.close();
- result.close();
- return type;
- }
- return null;
- }
- catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- return null;
- }
- public List<String> getServers() {
- try {
- PreparedStatement sql = connection.prepareStatement("SELECT servername FROM `" + DATABASE + "` WHERE servertype=?;");
- sql.setString(1, "server");
- ResultSet result = sql.executeQuery();
- List<String> servers = new ArrayList();
- while (result.next()) {
- String sname = result.getString(1);
- servers.add(sname);
- }
- sql.close();
- result.close();
- return servers;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- return null;
- }
- public List<String> getRealms() {
- try {
- PreparedStatement sql = connection.prepareStatement("SELECT servername FROM `" + DATABASE + "` WHERE servertype=?;");
- sql.setString(1, "realm");
- ResultSet result = sql.executeQuery();
- List<String> servers = new ArrayList();
- while (result.next()) {
- String sname = result.getString(1);
- servers.add(sname);
- }
- sql.close();
- result.close();
- return servers;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- return null;
- }
- public void setType(String servername, String servertype) {
- try {
- if (dbContainsServer(servername)) {
- PreparedStatement typeUpdate = connection.prepareStatement("UPDATE `" + DATABASE + "` SET servertype=? WHERE servername=?");
- typeUpdate.setString(1, servertype);
- typeUpdate.setString(2, servername);
- typeUpdate.executeUpdate();
- typeUpdate.close();
- } else {
- PreparedStatement typeUpdate = connection.prepareStatement("INSERT INTO `" + DATABASE + "` (`servername`, `servertype`) VALUES (?, ?)");
- typeUpdate.setString(1, servername);
- typeUpdate.setString(2, servertype);
- typeUpdate.executeUpdate();
- typeUpdate.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- }
- public void remove(String servername)
- {
- try {
- PreparedStatement typeUpdate = connection.prepareStatement("DELETE FROM `" + DATABASE + "` WHERE `servername`=?");
- typeUpdate.setString(1, servername);
- typeUpdate.executeUpdate();
- typeUpdate.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) {
- if ((sender instanceof Player)) {
- Player p = (Player)sender;
- if ((cmd.getName().equalsIgnoreCase("MBR")) || (cmd.getName().equalsIgnoreCase("MinebayRealms"))) {
- if (args.length == 0) {
- p.sendMessage(ChatColor.RED + "Wrong structure, please use: /MBR <SetServer|RemoveServer|SetRealm|RemoveRealm>!");
- } else if (args.length == 1) {
- if (args[0].equalsIgnoreCase("SetServer")) {
- if (p.hasPermission("MBR.SETSERVER")) {
- p.sendMessage(ChatColor.RED + "Invalid arguments, please use: /MBR SetServer <Name>!");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("RemoveServer")) {
- if (p.hasPermission("MBR.REMOVESERVER")) {
- p.sendMessage(ChatColor.RED + "Invalid arguments, please use: /MBR RemoveServer <Name>!");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("SetRealm")) {
- if (p.hasPermission("MBR.SETREALM")) {
- p.sendMessage(ChatColor.RED + "Invalid arguments, please use: /MBR SetRealm <Name>!");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("RemoveRealm")) {
- if (p.hasPermission("MBR.REMOVEREALM")) {
- p.sendMessage(ChatColor.RED + "Invalid arguments, please use: /MBR RemoveRealm <Name>!");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- }
- } else if (args.length == 2)
- if (args[0].equalsIgnoreCase("SetServer")) {
- if (p.hasPermission("MBR.SETSERVER")) {
- setType(args[1], "server");
- p.sendMessage(ChatColor.GREEN + "You have succesfully added: " + args[1] + " to the serverlist in the database.");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("RemoveServer")) {
- if (p.hasPermission("MBR.REMOVESERVER")) {
- if (getType(args[1]) == null) {
- p.sendMessage(ChatColor.RED + "There is no realm found with that name!");
- return false;
- }
- if (getType(args[1]).equalsIgnoreCase("server")) {
- remove(args[1]);
- p.sendMessage(ChatColor.GREEN + "You have succesfully removed: " + args[1] + " from the serverlist in the database.");
- } else {
- p.sendMessage(ChatColor.RED + "There is no server found with that name!");
- }
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("SetRealm")) {
- if (p.hasPermission("MBR.SETREALM")) {
- setType(args[1], "realm");
- p.sendMessage(ChatColor.GREEN + "You have succesfully added: " + args[1] + " to the realmslist in the database.");
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else if (args[0].equalsIgnoreCase("RemoveRealm"))
- if (p.hasPermission("MBR.SETREALM")) {
- if (getType(args[1]) == null) {
- p.sendMessage(ChatColor.RED + "There is no realm found with that name!");
- return false;
- }
- if (getType(args[1]).equalsIgnoreCase("realm")) {
- remove(args[1]);
- p.sendMessage(ChatColor.GREEN + "You have succesfully removed: " + args[1] + " from the realmslist in the database.");
- } else {
- p.sendMessage(ChatColor.RED + "There is no realm found with that name!");
- }
- } else {
- p.sendMessage(ChatColor.RED + "You don't have enough permissions to perform this command.");
- }
- } else { Iterator localIterator2;
- Object rs;
- if (cmd.getName().equalsIgnoreCase("Server")) {
- if (args.length == 0) {
- p.sendMessage(ChatColor.RED + "No server specified, please use: /Server List!");
- } else if (args.length == 1) {
- for (String s : getServers()) {
- if (args[0].equalsIgnoreCase(s)) {
- sendToServer(p, args[0]);
- }
- }
- if (args[0].equalsIgnoreCase("List")) {
- String servers = "";
- for (localIterator2 = getServers().iterator(); localIterator2.hasNext();) { rs = (String)localIterator2.next();
- servers = servers + (String)rs + ", ";
- }
- p.sendMessage(ChatColor.YELLOW + "Available servers: " + servers);
- } else {
- p.sendMessage(ChatColor.RED + "No server found with that name! Please use /Server List!");
- }
- }
- } else if ((cmd.getName().equalsIgnoreCase("Realm")) || (cmd.getName().equalsIgnoreCase("Realms"))) {
- if (args.length == 0) {
- p.sendMessage(ChatColor.RED + "No realm specified, please use: /Realms List!");
- } else if (args.length == 1) {
- for (rs = getRealms().iterator(); ((Iterator)rs).hasNext();) { String s = (String)((Iterator)rs).next();
- if (args[0].equalsIgnoreCase(s)) {
- sendToServer(p, args[0]);
- }
- }
- if (args[0].equalsIgnoreCase("List")) {
- String realms = "";
- for (String rs : getRealms()) {
- realms = realms + rs + ", ";
- }
- p.sendMessage(ChatColor.YELLOW + "Available realms: " + realms);
- } else {
- p.sendMessage(ChatColor.RED + "No realm found with that name! Please use /Realms List!");
- }
- }
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement