From 267f0cbfce8aa50651b0e80c77fed57dedb53ba5 Mon Sep 17 00:00:00 2001 From: 5vl Date: Sat, 20 Feb 2021 21:46:39 +0100 Subject: [PATCH] fam gotta backup --- src/main/java/sbr/sbr/commands/balance.java | 41 +++++++++++++++++ .../java/sbr/sbr/events/onPlayerJoin.java | 28 +++++++++++ src/main/java/sbr/sbr/main.java | 46 +++++++++++++++++-- src/main/java/sbr/sbr/utils/chatcolors.java | 32 +++++++++++++ src/main/resources/plugin.yml | 2 + 5 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 src/main/java/sbr/sbr/commands/balance.java create mode 100644 src/main/java/sbr/sbr/events/onPlayerJoin.java create mode 100644 src/main/java/sbr/sbr/utils/chatcolors.java diff --git a/src/main/java/sbr/sbr/commands/balance.java b/src/main/java/sbr/sbr/commands/balance.java new file mode 100644 index 0000000..5af18e7 --- /dev/null +++ b/src/main/java/sbr/sbr/commands/balance.java @@ -0,0 +1,41 @@ +package sbr.sbr.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import sbr.sbr.main; +import sbr.sbr.utils.chatcolors; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public class balance extends chatcolors implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player p = (Player) sender; + try { + ResultSet rs = main.prepareStatement("SELECT * FROM sbr WHERE UUID = '" + p.getUniqueId().toString() + "';").executeQuery(); + rs.next(); + int bal = rs.getInt("Balance"); + int argint; + if (args.length == 0) { + p.sendMessage(color("&bYour balance is: &a" + bal)); + } + if (args.length > 0) { + try { + argint = Integer.parseInt(args[0]); + int nbal = bal + argint; + main.prepareStatement("UPDATE Balance='" + nbal + "' WHERE UUID = '" + p.getUniqueId().toString() + "';").executeUpdate(); + p.sendMessage(color("&dYou added &b" + argint + " &dto your balance.")); + p.sendMessage(color("&aYou now have: &b" + nbal)); + } catch (NumberFormatException x) { + p.sendMessage(color("&c&lArgument must be an number or nothing!")); + } + } + } catch (SQLException x) { + x.printStackTrace(); + } + return false; + } +} diff --git a/src/main/java/sbr/sbr/events/onPlayerJoin.java b/src/main/java/sbr/sbr/events/onPlayerJoin.java new file mode 100644 index 0000000..94c291d --- /dev/null +++ b/src/main/java/sbr/sbr/events/onPlayerJoin.java @@ -0,0 +1,28 @@ +package sbr.sbr.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import sbr.sbr.main; +import sbr.sbr.utils.chatcolors; + +import java.sql.SQLException; + +public class onPlayerJoin extends chatcolors implements Listener { + @EventHandler + public void onJoin(PlayerJoinEvent e) { + Player p = e.getPlayer(); + if (!p.hasPlayedBefore()) { + try { + main.prepareStatement("INSERT INTO Balance(UUID, Balance) VALUES('" + p.getUniqueId().toString() + "', 0);").executeUpdate(); + } catch (SQLException x) { + x.printStackTrace(); + } + p.sendMessage(color("&c&lWelcome to the server!")); + } + else { + p.sendMessage(color("&a&lWelcome back to the server!")); + } + } +} diff --git a/src/main/java/sbr/sbr/main.java b/src/main/java/sbr/sbr/main.java index dd3e935..48890e5 100644 --- a/src/main/java/sbr/sbr/main.java +++ b/src/main/java/sbr/sbr/main.java @@ -1,17 +1,57 @@ package sbr.sbr; +import org.bukkit.Bukkit; +import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; +import sbr.sbr.commands.balance; +import sbr.sbr.events.onPlayerJoin; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; public final class main extends JavaPlugin { + private static Connection connection; + private static String host, database, username, password; + private static int port; @Override public void onEnable() { - // Plugin startup logic - + PluginManager plm = Bukkit.getPluginManager();; + host = "localhost"; + port = 3306; + database = "sbr"; + username = "root"; + password = ""; + try { + openConnection(); + System.out.println("MySQL Database Connected."); + } catch (SQLException x) { + x.printStackTrace(); + } + plm.registerEvents(new onPlayerJoin(), this); + getCommand("balance").setExecutor(new balance()); } @Override public void onDisable() { - // Plugin shutdown logic + try { + connection.close(); + } catch (SQLException x) { + x.printStackTrace(); + } + } + + public static void openConnection() throws SQLException { + connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password); + } + public static PreparedStatement prepareStatement(String query) { + PreparedStatement ps = null; + try { + ps = connection.prepareStatement(query); + } catch (SQLException x) { + x.printStackTrace(); + } + return ps; } } diff --git a/src/main/java/sbr/sbr/utils/chatcolors.java b/src/main/java/sbr/sbr/utils/chatcolors.java new file mode 100644 index 0000000..b0ff08f --- /dev/null +++ b/src/main/java/sbr/sbr/utils/chatcolors.java @@ -0,0 +1,32 @@ +package sbr.sbr.utils; + +import org.bukkit.ChatColor; + +public class chatcolors { + public static String color(String s) { + s = s.replaceAll("", "&0"); + s = s.replaceAll("", "&1"); + s = s.replaceAll("", "&2"); + s = s.replaceAll("", "&3"); + s = s.replaceAll("", "&4"); + s = s.replaceAll("", "&5"); + s = s.replaceAll("", "&6"); + s = s.replaceAll("", "&7"); + s = s.replaceAll("", "&8"); + s = s.replaceAll("", "&9"); + s = s.replaceAll("", "&a"); + s = s.replaceAll("", "&b"); + s = s.replaceAll("", "&c"); + s = s.replaceAll("", "&d"); + s = s.replaceAll("", "&e"); + s = s.replaceAll("", "&f"); + s = s.replaceAll("", "&r"); + s = s.replaceAll("", "&l"); + s = s.replaceAll("", "&k"); + s = s.replaceAll("", "&o"); + s = s.replaceAll("", "&m"); + s = s.replaceAll("", "&n"); + s = ChatColor.translateAlternateColorCodes('&', s); + return s; + } +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 046955d..537743c 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,3 +4,5 @@ main: sbr.sbr.main api-version: 1.16 authors: [ 5vl ] description: Hypxel Skyblock Remake +commands: + balance: