From 54240c3f58b1dc9fbf1d5e186d48d256d97c5b48 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 16 Jun 2021 23:00:27 -0400 Subject: [PATCH] first commit --- .classpath | 15 +++ .gitignore | 3 + .project | 17 +++ README.md | 0 config.yml | 5 + plugin.yml | 10 ++ src/dev/pinfosec/pinwarn/.classpath | 5 + src/dev/pinfosec/pinwarn/.project | 17 +++ src/dev/pinfosec/pinwarn/Main.java | 53 ++++++++ .../pinwarn/commands/WarnCommand.java | 114 ++++++++++++++++++ 10 files changed, 239 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 README.md create mode 100644 config.yml create mode 100644 plugin.yml create mode 100644 src/dev/pinfosec/pinwarn/.classpath create mode 100644 src/dev/pinfosec/pinwarn/.project create mode 100644 src/dev/pinfosec/pinwarn/Main.java create mode 100644 src/dev/pinfosec/pinwarn/commands/WarnCommand.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..130a8a3 --- /dev/null +++ b/.classpath @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a438ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +**/bin/ +.metadata/ +.settings/ diff --git a/.project b/.project new file mode 100644 index 0000000..a78094d --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + dev.pinfosec.pin-warn + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..bd7974b --- /dev/null +++ b/config.yml @@ -0,0 +1,5 @@ +# this is a comment +port: "3306" +dbuser: "user" +dbpasswd: "password" +dbaddress: "localhost" \ No newline at end of file diff --git a/plugin.yml b/plugin.yml new file mode 100644 index 0000000..96b0da6 --- /dev/null +++ b/plugin.yml @@ -0,0 +1,10 @@ +main: dev.pinfosec.pinwarn.Main +name: Pin-Warn +version: 1.0 +author: Pin +api-version: 1.13 +commands: + warn: + alliases: [warn] + description: This is a holder desc + permission: pinwarn.warn \ No newline at end of file diff --git a/src/dev/pinfosec/pinwarn/.classpath b/src/dev/pinfosec/pinwarn/.classpath new file mode 100644 index 0000000..ac37fb2 --- /dev/null +++ b/src/dev/pinfosec/pinwarn/.classpath @@ -0,0 +1,5 @@ + + + + + diff --git a/src/dev/pinfosec/pinwarn/.project b/src/dev/pinfosec/pinwarn/.project new file mode 100644 index 0000000..e19cba3 --- /dev/null +++ b/src/dev/pinfosec/pinwarn/.project @@ -0,0 +1,17 @@ + + + pinwarn + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/dev/pinfosec/pinwarn/Main.java b/src/dev/pinfosec/pinwarn/Main.java new file mode 100644 index 0000000..8fb3923 --- /dev/null +++ b/src/dev/pinfosec/pinwarn/Main.java @@ -0,0 +1,53 @@ +package dev.pinfosec.pinwarn; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import org.bukkit.plugin.java.JavaPlugin; +import com.mysql.jdbc.Connection; + +import dev.pinfosec.pinwarn.commands.WarnCommand; + +public class Main extends JavaPlugin { + + final String username = this.getConfig().getString("dbuser"); + final String password = this.getConfig().getString("dbpasswd"); + final String url = ("jdbc:mysql://" + this.getConfig().getString("dbaddress") + ":" + this.getConfig().getString("port") + "/pinwarn"); + public static Connection connection; + + public void onEnable() { + new WarnCommand(this); + this.saveDefaultConfig(); + + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.err.println("jdbc driver unavailable!"); + return; + } + + try { + connection = (Connection) DriverManager.getConnection(url, username, password); + String sql = "CREATE TABLE IF NOT EXISTS pinwarn(UUID varchar(64), " + + "warning1 varchar(64), reason1 text, warning2 varchar(64), " + + "reason2 text, warning3 varchar(64), reason3 text);"; + PreparedStatement stmt = connection.prepareStatement(sql); + stmt.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + + } + + public void onDisable() { + try { + if (connection!=null && !connection.isClosed()) { + connection.close(); + } + } catch(Exception e) { + e.printStackTrace(); + } + } + + +} diff --git a/src/dev/pinfosec/pinwarn/commands/WarnCommand.java b/src/dev/pinfosec/pinwarn/commands/WarnCommand.java new file mode 100644 index 0000000..d36cd37 --- /dev/null +++ b/src/dev/pinfosec/pinwarn/commands/WarnCommand.java @@ -0,0 +1,114 @@ +package dev.pinfosec.pinwarn.commands; + +import dev.pinfosec.pinwarn.Main; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.CommandExecutor; + +public class WarnCommand implements CommandExecutor { + @SuppressWarnings("unused") + private Main plugin; + + public WarnCommand(Main plugin) { + this.plugin = plugin; + plugin.getCommand("warn").setExecutor(this); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, + String label, String[] args) { + + try { + switch(args[0]) { + case "check": + String puuid = Bukkit.getOfflinePlayer(args[1]).getUniqueId().toString(); + sender.sendMessage(puuid); + String sqlcheck = "SELECT * from pinwarn WHERE UUID=?;"; + sender.sendMessage(sqlcheck); + PreparedStatement stmtcheck = dev.pinfosec.pinwarn.Main.connection.prepareStatement(sqlcheck); + stmtcheck.setString(1, Bukkit.getOfflinePlayer(args[1]).getUniqueId().toString()); + sender.sendMessage(sqlcheck); + ResultSet rs = stmtcheck.executeQuery(); + while (rs.next()) { + String playeruuid = rs.getString(1); + String warning1 = rs.getString(2); + String reason1 = rs.getString(3); + String warning2 = rs.getString(4); + String reason2 = rs.getString(5); + String warning3 = rs.getString(6); + String reason3 = rs.getString(7); + sender.sendMessage("User: " + args[1]); + sender.sendMessage("UUID: " + playeruuid); + sender.sendMessage("Warning 1: " + warning1); + sender.sendMessage("Reason: " + reason1); + sender.sendMessage("Warning 2: " + warning2); + sender.sendMessage("Reason: " + reason2); + sender.sendMessage("Warning 3: " + warning3); + sender.sendMessage("Reason: " + reason3); + } + break; + case "list": + sender.sendMessage("This is a list"); + sender.sendMessage("This is arg 1 " + args[1]); + break; + case "add": + String warnedplayer = args[1]; + String pexistqry = "SELECT EXISTS(SELECT * FROM pinwarn WHERE UUID=?);"; + PreparedStatement pexiststm = dev.pinfosec.pinwarn.Main.connection.prepareStatement(pexistqry); + pexiststm.setString(1, Bukkit.getOfflinePlayer(args[1]).getUniqueId().toString()); + ResultSet pexrs = null; + pexrs = pexiststm.executeQuery(); + while (pexrs.next()) { + if(pexrs.getBoolean(1)) { + String warn2chk = "SELECT warning2 FROM pinwarn WHERE UUID=?;"; + PreparedStatement warn2chkstm = dev.pinfosec.pinwarn.Main.connection.prepareStatement(warn2chk); + warn2chkstm.setString(1, Bukkit.getOfflinePlayer(args[1]).getUniqueId().toString()); + ResultSet warn2rs = null; + warn2rs = warn2chkstm.executeQuery(); + while (warn2rs.next()) { + if(warn2rs.getBoolean(1)) { + String sql3 = "UPDATE `pinwarn` SET warning3=?, reason3=? WHERE UUID=?;"; + PreparedStatement stmt3 = dev.pinfosec.pinwarn.Main.connection.prepareStatement(sql3); + stmt3.setString(3, Bukkit.getOfflinePlayer(warnedplayer).getUniqueId().toString()); + stmt3.setString(1, args[2]); + stmt3.setString(2, args[3]); + stmt3.executeUpdate(); + } + else { + String sql2 = "UPDATE `pinwarn` SET warning2=?, reason2=? WHERE UUID=?;"; + PreparedStatement stmt2 = dev.pinfosec.pinwarn.Main.connection.prepareStatement(sql2); + stmt2.setString(3, Bukkit.getOfflinePlayer(warnedplayer).getUniqueId().toString()); + stmt2.setString(1, args[2]); + stmt2.setString(2, args[3]); + stmt2.executeUpdate(); + } + } + } else { + String sql = "INSERT INTO `pinwarn`(uuid, warning1, reason1) VALUES (?, ?, ?);"; + PreparedStatement stmt = dev.pinfosec.pinwarn.Main.connection.prepareStatement(sql); + stmt.setString(1, Bukkit.getOfflinePlayer(warnedplayer).getUniqueId().toString()); + stmt.setString(2, args[2]); + stmt.setString(3, args[3]); + stmt.executeUpdate(); + } + } + + break; + default: + sender.sendMessage("Unknown"); + } + + + } catch(Exception e) { + e.printStackTrace(); + } + + + + return false; + } +}