diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4788b4b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,113 @@
+# User-specific stuff
+.idea/
+
+*.iml
+*.ipr
+*.iws
+
+# IntelliJ
+out/
+
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+target/
+
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+.flattened-pom.xml
+
+# Common working directory
+run/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..26e782f
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,74 @@
+
+
+ 4.0.0
+
+ de.Softwarerat
+ ModUtils
+ InDev-Alpha
+ jar
+
+ ModUtils
+
+
+ 1.8
+ UTF-8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+ 10
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+ false
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ spigotmc-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+ sonatype
+ https://oss.sonatype.org/content/groups/public/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.18.2-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/main/java/de/softwarerat/modutils/Builder/ItemBuilder.java b/src/main/java/de/softwarerat/modutils/Builder/ItemBuilder.java
new file mode 100644
index 0000000..2049926
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Builder/ItemBuilder.java
@@ -0,0 +1,48 @@
+package de.softwarerat.modutils.Builder;
+import org.bukkit.Material;
+import org.bukkit.inventory.ItemFlag;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import java.util.Arrays;
+
+public class ItemBuilder {
+ private ItemMeta itemMeta;
+ private ItemStack itemStack;
+ public ItemBuilder(Material mat){
+ itemStack = new ItemStack(mat);
+ itemMeta = itemStack.getItemMeta();
+ }
+ public ItemBuilder setDisplayname(String s){
+ itemMeta.setDisplayName(s);
+ return this;
+ }
+ public ItemBuilder setLocalizedName(String s){
+ itemMeta.setLocalizedName(s);
+ return this;
+ }
+ public ItemBuilder setLore(String... s){
+ itemMeta.setLore(Arrays.asList(s));
+ return this;
+ }
+ public ItemBuilder setUnbreakable(boolean s){
+ itemMeta.setUnbreakable(s);
+ return this;
+ }
+ public ItemBuilder addItemFlags(ItemFlag... s){
+ itemMeta.addItemFlags(s);
+ return this;
+ }
+
+
+ @Override
+ public String toString() {
+ return "ItemBuilder{" +
+ "itemMeta=" + itemMeta +
+ ", itemStack=" + itemStack +
+ '}';
+ }
+ public ItemStack build(){
+ itemStack.setItemMeta(itemMeta);
+ return itemStack;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/AdminCommand.java b/src/main/java/de/softwarerat/modutils/Commands/AdminCommand.java
new file mode 100644
index 0000000..28f4f65
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/AdminCommand.java
@@ -0,0 +1,24 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Ranks.AdminRank;
+import de.softwarerat.modutils.Utils.NametagUtil;
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class AdminCommand {
+
+ public static void Command(String admin, PermissionLevel PermmissionLevel , CommandSender cs){
+ if (PermmissionLevel == PermissionLevel.ADMIN || cs.isOp() ) {
+ Player player = Bukkit.getPlayer(admin);
+ new AdminRank().getAdmins().add(player);
+ NametagUtil.ChangeNametag(player, "admin");
+ for (Player onlinePlayers : Bukkit.getOnlinePlayers()) {
+
+ onlinePlayers.sendTitle(player.getName() + "wurde zum Admin Ernannt", "", 1, 10, 5);
+
+ }
+ }else cs.sendMessage("Modutils | unausreichende Rechte!");
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/InvSeeCommand.java b/src/main/java/de/softwarerat/modutils/Commands/InvSeeCommand.java
new file mode 100644
index 0000000..24263f0
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/InvSeeCommand.java
@@ -0,0 +1,68 @@
+package de.softwarerat.modutils.Commands;
+
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.util.io.BukkitObjectInputStream;
+import org.bukkit.util.io.BukkitObjectOutputStream;
+import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+public class InvSeeCommand {
+
+
+
+ public void Command(Player player , Player targetPlayer){
+
+ String CachedInvModerating = itemStackArrayToBase64(player.getInventory().getContents());
+ String CachedInvTarget = itemStackArrayToBase64(targetPlayer.getInventory().getContents());
+
+
+ }
+
+
+
+ public ItemStack[] itemStackArrayFromBase64(String data) throws IOException {
+ try {
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
+ BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
+ ItemStack[] items = new ItemStack[dataInput.readInt()];
+
+ // Read the serialized inventory
+ for (int i = 0; i < items.length; i++) {
+ items[i] = (ItemStack) dataInput.readObject();
+ }
+
+ dataInput.close();
+ return items;
+ } catch (ClassNotFoundException e) {
+ throw new IOException("Unable to decode class type.", e);
+ }
+ }
+
+ public String itemStackArrayToBase64(ItemStack[] items) throws IllegalStateException {
+ try {
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
+
+ // Write the size of the inventory
+ dataOutput.writeInt(items.length);
+
+ // Save every element in the list
+ for (int i = 0; i < items.length; i++) {
+ dataOutput.writeObject(items[i]);
+ }
+
+ // Serialize that array
+ dataOutput.close();
+ return Base64Coder.encodeLines(outputStream.toByteArray());
+ } catch (Exception e) {
+ throw new IllegalStateException("Unable to save item stacks.", e);
+ }
+ }
+
+
+
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/MainCommand.java b/src/main/java/de/softwarerat/modutils/Commands/MainCommand.java
new file mode 100644
index 0000000..446263f
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/MainCommand.java
@@ -0,0 +1,36 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class MainCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+ Player player = Bukkit.getPlayer(sender.getName());
+ PermissionLevel permissionLevel = PermissionLevel.getPermissionLevel(player);
+
+ // switch (args[0]) {
+ // case "SetAdmin":
+ // AdminCommand.Command(args[1 ],permissionLevel, sender);
+ // sender.sendMessage("es wird versucht");
+ // break;
+ // case "SetMod":
+ // ModeratorCommand.Command(args[1],permissionLevel, sender);
+ // sender.sendMessage("es wird versucht");
+ // break;
+ // case "SetStreamer":
+ // StreamerCommand.Command(args[1], permissionLevel,sender ) ;
+ // sender.sendMessage("es wird versucht");
+ // break;
+//
+//
+ // }
+ sender.sendMessage("test");
+
+ return false;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/ModeratorCommand.java b/src/main/java/de/softwarerat/modutils/Commands/ModeratorCommand.java
new file mode 100644
index 0000000..0e30c73
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/ModeratorCommand.java
@@ -0,0 +1,25 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Ranks.ModeratorRank;
+import de.softwarerat.modutils.Utils.NametagUtil;
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class ModeratorCommand {
+
+ public static void Command(String moderator, PermissionLevel PermissionLevel , CommandSender commandSender) {
+ if (PermissionLevel == PermissionLevel.ADMIN) {
+
+ Player player = Bukkit.getPlayer(moderator);
+ new ModeratorRank().getModerators().add(player);
+ NametagUtil.ChangeNametag(player, "moderator");
+ for (Player onlinePlayers : Bukkit.getOnlinePlayers()) {
+
+ onlinePlayers.sendTitle(player.getName() + "wurde zum Moderator Ernannt", "", 1, 10, 5);
+
+ }
+ } else commandSender.sendMessage("Modutils | unasuzureichende rechte!");
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/StreamerCommand.java b/src/main/java/de/softwarerat/modutils/Commands/StreamerCommand.java
new file mode 100644
index 0000000..6fddb4a
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/StreamerCommand.java
@@ -0,0 +1,30 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Ranks.StreamerRank;
+import de.softwarerat.modutils.Utils.NametagUtil;
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+
+public class StreamerCommand {
+
+
+ public static void Command(String streamer, PermissionLevel PermissionLevel , CommandSender commandSender) {
+
+ if (PermissionLevel == de.softwarerat.modutils.Utils.PermissionLevel.ADMIN) {
+ Player player = Bukkit.getPlayer(streamer);
+ new StreamerRank().getStreamer().add(player);
+ NametagUtil.ChangeNametag(player, "streamer");
+ for (Player onlinePlayers : Bukkit.getOnlinePlayers()) {
+
+ onlinePlayers.sendTitle(player.getName() + " wurde zum Streamer ernannt", "", 1, 10, 5);
+
+ }
+ } else commandSender.sendMessage("Modutils | unasuzureichende rechte!");
+
+
+
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/WhitelistCommand.java b/src/main/java/de/softwarerat/modutils/Commands/WhitelistCommand.java
new file mode 100644
index 0000000..344d751
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/WhitelistCommand.java
@@ -0,0 +1,65 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import de.softwarerat.modutils.Utils.WhitelistUtil;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class WhitelistCommand {
+
+
+ public static void Command(String State , PermissionLevel PermissionLevel , CommandSender commandSender) {
+
+ if (PermissionLevel == de.softwarerat.modutils.Utils.PermissionLevel.STREAMER) {
+
+ switch (State) {
+
+ case "all":
+
+
+ WhitelistUtil.setWhitelistLevel(State);
+
+
+ for (Player players : Bukkit.getOnlinePlayers()) {
+
+
+ players.sendTitle("die Whitelist ist nun für jeden zugänglich ", "", 7, 6, 3);
+
+ }
+ break;
+ case "streamer":
+
+
+ WhitelistUtil.setWhitelistLevel(State);
+
+
+ for (Player players : Bukkit.getOnlinePlayers()) {
+
+
+ players.sendTitle("die Whitelist ist nun nur für Streamer / Teammitglieder zugänglich ", "", 7, 6, 3);
+
+ }
+
+ break;
+ case "team":
+
+
+ WhitelistUtil.setWhitelistLevel(State);
+
+
+ for (Player players : Bukkit.getOnlinePlayers()) {
+
+
+ players.sendTitle("die Whitelist ist nun nur für Teammitglieder zugänglich ", "", 7, 6, 3);
+
+ }
+ break;
+
+ }
+
+ }else commandSender.sendMessage("Modutils | unasuzureichende rechte!");
+
+
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Commands/testCommand.java b/src/main/java/de/softwarerat/modutils/Commands/testCommand.java
new file mode 100644
index 0000000..8382d33
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Commands/testCommand.java
@@ -0,0 +1,40 @@
+package de.softwarerat.modutils.Commands;
+
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class testCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+
+ Player player = Bukkit.getPlayer(sender.getName());
+ PermissionLevel permissionLevel = PermissionLevel.getPermissionLevel(player);
+ switch (args[0]) {
+ case "SetAdmin":
+ AdminCommand.Command(args[1 ],permissionLevel, sender);
+ sender.sendMessage("es wird versucht");
+ break;
+ case "SetMod":
+ ModeratorCommand.Command(args[1],permissionLevel, sender);
+ sender.sendMessage("es wird versucht");
+ break;
+ case "SetStreamer":
+ StreamerCommand.Command(args[1], permissionLevel,sender ) ;
+ sender.sendMessage("es wird versucht");
+ break;
+ case"whitelist":
+ WhitelistCommand.Command(args[1], permissionLevel , sender);
+ break;
+ }
+ sender.sendMessage("test");
+
+
+
+
+ return false;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Main.java b/src/main/java/de/softwarerat/modutils/Main.java
new file mode 100644
index 0000000..bf4e486
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Main.java
@@ -0,0 +1,33 @@
+package de.softwarerat.modutils;
+
+import de.softwarerat.modutils.Commands.testCommand;
+import de.softwarerat.modutils.Utils.MySQL;
+import de.softwarerat.modutils.events.Chat;
+import de.softwarerat.modutils.events.Join;
+import de.softwarerat.modutils.events.Quit;
+import org.bukkit.Bukkit;
+import org.bukkit.plugin.PluginManager;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public final class Main extends JavaPlugin {
+
+ @Override
+ public void onEnable() {
+ PluginManager manager = Bukkit.getPluginManager();
+ manager.registerEvents(new Chat(), this);
+ manager.registerEvents(new Join(), this);
+ manager.registerEvents(new Quit(), this);
+ MySQL.connect();
+ getCommand("utils").setExecutor(new testCommand());
+
+ // Plugin startup logic
+
+
+
+ }
+
+ @Override
+ public void onDisable() {
+ // Plugin shutdown logic
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Ranks/AdminRank.java b/src/main/java/de/softwarerat/modutils/Ranks/AdminRank.java
new file mode 100644
index 0000000..6712bf5
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Ranks/AdminRank.java
@@ -0,0 +1,16 @@
+package de.softwarerat.modutils.Ranks;
+
+import org.bukkit.entity.Player;
+
+import java.util.ArrayList;
+
+public class AdminRank {
+
+ public static ArrayList Admins ;
+
+ public static ArrayList getAdmins() {
+
+ return Admins;
+
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Ranks/ModeratorRank.java b/src/main/java/de/softwarerat/modutils/Ranks/ModeratorRank.java
new file mode 100644
index 0000000..a498856
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Ranks/ModeratorRank.java
@@ -0,0 +1,14 @@
+package de.softwarerat.modutils.Ranks;
+
+import org.bukkit.entity.Player;
+
+import java.util.ArrayList;
+
+public class ModeratorRank {
+
+ public static ArrayList Moderators;
+
+ public static ArrayList getModerators() {
+ return Moderators;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Ranks/StreamerRank.java b/src/main/java/de/softwarerat/modutils/Ranks/StreamerRank.java
new file mode 100644
index 0000000..93b09a5
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Ranks/StreamerRank.java
@@ -0,0 +1,16 @@
+package de.softwarerat.modutils.Ranks;
+
+import org.bukkit.entity.Player;
+
+import java.util.ArrayList;
+
+public class StreamerRank {
+
+ public static ArrayList Streamer ;
+
+ public static ArrayList getStreamer() {
+ return Streamer;
+ }
+
+
+}
diff --git a/src/main/java/de/softwarerat/modutils/Utils/MySQL.java b/src/main/java/de/softwarerat/modutils/Utils/MySQL.java
new file mode 100644
index 0000000..cb4389c
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Utils/MySQL.java
@@ -0,0 +1,50 @@
+package de.softwarerat.modutils.Utils;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+public class MySQL {
+
+ private static Connection con;
+ private static String Host;
+ private static int port;
+ private static String database;
+ private static String user;
+ private static String password;
+
+ public MySQL(String Host, int port, String database, String user, String password) {
+ MySQL.Host = Host;
+ MySQL.port = port;
+ MySQL.database = database;
+ MySQL.user = user;
+ MySQL.password = password;
+ connect();
+ }
+
+ public static void connect() {
+ try {
+ con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/ModUitls?autoRecconnect=true", "Bansystem", "GGoders0");
+ } catch (SQLException var1) {
+ System.out.println("SQL Disconeccted");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ System.out.println("SQL Error Connection unreachable");
+ }
+
+ }
+
+ public static Connection getConnection() {
+ return con;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/Utils/NametagUtil.java b/src/main/java/de/softwarerat/modutils/Utils/NametagUtil.java
new file mode 100644
index 0000000..9306702
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Utils/NametagUtil.java
@@ -0,0 +1,35 @@
+package de.softwarerat.modutils.Utils;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
+
+public class NametagUtil {
+
+
+ public static void ChangeNametag(Player player , String rank) {
+
+ switch (rank){
+ case "moderator":
+ player.setDisplayName(ChatColor.DARK_GREEN + "Mod " + ChatColor.GRAY + "| " + player.getName());
+ player.setPlayerListName(ChatColor.DARK_GREEN + "Mod " + ChatColor.GRAY + "| " + player.getName());
+
+ break;
+ case "admin":
+ player.setDisplayName(ChatColor.GOLD + "Admin" + ChatColor.GRAY + "| " + player.getName());
+ player.setPlayerListName(ChatColor.GOLD + "Admin " + ChatColor.GRAY + "| " + player.getName());
+ break;
+ case"streamer":
+ player.setDisplayName(ChatColor.DARK_PURPLE + "Streamer " + ChatColor.GRAY + "| " + player.getName());
+ player.setPlayerListName(ChatColor.DARK_PURPLE + "Streamer " + ChatColor.GRAY + "| " + player.getName());
+ break;
+ case "player":
+ player.setDisplayName(ChatColor.GREEN + "Spieler " + ChatColor.GRAY + "| " + player.getName());
+ player.setPlayerListName(ChatColor.GREEN + "Spieler " + ChatColor.GRAY + "| " + player.getName());
+ break;
+ }
+
+
+
+ }
+
+}
diff --git a/src/main/java/de/softwarerat/modutils/Utils/PermissionLevel.java b/src/main/java/de/softwarerat/modutils/Utils/PermissionLevel.java
new file mode 100644
index 0000000..edbd5f2
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Utils/PermissionLevel.java
@@ -0,0 +1,37 @@
+package de.softwarerat.modutils.Utils;
+
+import org.bukkit.entity.Player;
+
+
+public enum PermissionLevel {
+ ADMIN,
+ MODERATOR,
+ STREAMER,
+ PLAYER;
+
+
+ PermissionLevel() {
+ }
+
+
+ public static PermissionLevel getPermissionLevel(Player player) {
+
+return new PermissionManager().getPermissionLevel(player);
+
+
+
+ }
+
+ public static PermissionLevel toPermissionLevel(String permissionLevel){
+ if (permissionLevel == "admin"){
+ return ADMIN;} else if (permissionLevel == "moderator"){
+ return MODERATOR;
+ } else if (permissionLevel == "streamer"){
+ return STREAMER;
+ }if (permissionLevel == "player"){
+ return PLAYER;
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/de/softwarerat/modutils/Utils/PermissionManager.java b/src/main/java/de/softwarerat/modutils/Utils/PermissionManager.java
new file mode 100644
index 0000000..b12ed9e
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Utils/PermissionManager.java
@@ -0,0 +1,51 @@
+package de.softwarerat.modutils.Utils;
+
+import org.bukkit.entity.Player;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Locale;
+import java.util.UUID;
+
+public class PermissionManager {
+
+
+ public PermissionLevel getPermissionLevel(Player player) {
+
+ UUID playerUUID = player.getUniqueId();
+ try {
+ PreparedStatement preparedStatement = MySQL.getConnection().prepareStatement("SELECT PermissionLevel FROM permissionlevel WHERE UUID = ?");
+ preparedStatement.setString(1, playerUUID.toString());
+
+ ResultSet rs = preparedStatement.executeQuery();
+ if (rs.next()) {
+
+
+ return PermissionLevel.toPermissionLevel( rs.getString("PermissionLevel"));
+
+
+ }
+
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+
+ return null;
+ }
+
+ public void setPermissionLevel(PermissionLevel permissionLevel , Player player){
+
+
+ try {
+ PreparedStatement preparedStatement = MySQL.getConnection().prepareStatement("INSERT INTO permissionlevel(UUID,PermissionLevel) Values ?,? ");
+ preparedStatement.setString(1,player.getUniqueId().toString());
+ preparedStatement.setString(2,permissionLevel.toString().toLowerCase(Locale.ROOT));
+
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+}
diff --git a/src/main/java/de/softwarerat/modutils/Utils/WhitelistUtil.java b/src/main/java/de/softwarerat/modutils/Utils/WhitelistUtil.java
new file mode 100644
index 0000000..913c2ed
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/Utils/WhitelistUtil.java
@@ -0,0 +1,14 @@
+package de.softwarerat.modutils.Utils;
+
+public class WhitelistUtil {
+
+ public static String WhitelistLevel;
+
+ public static String getWhitelistLevel() {
+ return WhitelistLevel;
+ }
+
+ public static void setWhitelistLevel(String whitelistLevel) {
+ WhitelistLevel = whitelistLevel;
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/events/Chat.java b/src/main/java/de/softwarerat/modutils/events/Chat.java
new file mode 100644
index 0000000..a5ef551
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/events/Chat.java
@@ -0,0 +1,31 @@
+package de.softwarerat.modutils.events;
+
+import de.softwarerat.modutils.Ranks.AdminRank;
+import de.softwarerat.modutils.Ranks.ModeratorRank;
+import de.softwarerat.modutils.Ranks.StreamerRank;
+import org.bukkit.ChatColor;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
+
+public class Chat implements Listener {
+
+
+
+ @EventHandler
+ public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
+ var AdminRank = new AdminRank().getAdmins();
+ var ModRank = new ModeratorRank().getModerators();
+ var StreamerRank = new StreamerRank().getStreamer();
+ if (AdminRank.contains(event.getPlayer())){
+ event.setFormat(ChatColor.RED + "Admin " + ChatColor.GRAY + "| " + event.getPlayer() + " >> " + event.getMessage() );
+ } else if (ModRank.contains(event.getPlayer())){
+ event.setFormat(ChatColor.GREEN + "Mod " + ChatColor.GRAY + "| " + event.getPlayer() + " >> " + event.getMessage() );
+ } else if (StreamerRank.contains(event.getPlayer())){
+ event.setFormat(ChatColor.DARK_PURPLE + "Streamer " + ChatColor.GRAY + "| " + event.getPlayer() + " >> " + event.getMessage() );
+ }
+
+
+
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/events/Join.java b/src/main/java/de/softwarerat/modutils/events/Join.java
new file mode 100644
index 0000000..b963384
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/events/Join.java
@@ -0,0 +1,48 @@
+package de.softwarerat.modutils.events;
+
+import de.softwarerat.modutils.Ranks.AdminRank;
+import de.softwarerat.modutils.Utils.NametagUtil;
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import de.softwarerat.modutils.Utils.WhitelistUtil;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
+
+
+public class Join implements Listener {
+
+ @EventHandler
+ public void onPlayerJoin(PlayerJoinEvent event) {
+ PermissionLevel permissionLevel = PermissionLevel.getPermissionLevel(event.getPlayer());
+
+
+
+ if (permissionLevel == PermissionLevel.ADMIN){
+
+ event.setJoinMessage(ChatColor.RED + "Admin | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel betreten");
+ NametagUtil.ChangeNametag(event.getPlayer() , "admin");
+ } else if (permissionLevel == PermissionLevel.MODERATOR){
+
+
+ event.setJoinMessage(ChatColor.GREEN + "Moderator | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel betreten");
+ NametagUtil.ChangeNametag(event.getPlayer(), "moderator");
+ } else if (permissionLevel == PermissionLevel.STREAMER) {
+ if (WhitelistUtil.getWhitelistLevel() == "team" ) {
+
+ event.getPlayer().kickPlayer("Mod Utils | Du hast für diesen Server aktuell nicht ausreichende Rechte");
+
+ }
+ event.setJoinMessage(ChatColor.DARK_PURPLE + "Streamer | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel betreten");
+ NametagUtil.ChangeNametag(event.getPlayer() , "streamer");
+ } else {
+ if (WhitelistUtil.getWhitelistLevel() == "streamer" || WhitelistUtil.getWhitelistLevel() == "team" ) {
+ event.getPlayer().kickPlayer("Mod Utils | Du hast für diesen Server aktuell nicht ausreichende Rechte");
+ }
+ event.setJoinMessage("Spieler | " + event.getPlayer().getName() + " hat das Spiel betreten");
+ }
+
+ }
+}
diff --git a/src/main/java/de/softwarerat/modutils/events/Quit.java b/src/main/java/de/softwarerat/modutils/events/Quit.java
new file mode 100644
index 0000000..9d7d45e
--- /dev/null
+++ b/src/main/java/de/softwarerat/modutils/events/Quit.java
@@ -0,0 +1,33 @@
+package de.softwarerat.modutils.events;
+
+import de.softwarerat.modutils.Utils.PermissionLevel;
+import org.bukkit.ChatColor;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerQuitEvent;
+
+public class Quit implements Listener {
+
+ @EventHandler
+ public void onPlayerQuit(PlayerQuitEvent event) {
+ PermissionLevel permissionLevel = PermissionLevel.getPermissionLevel(event.getPlayer());
+
+
+ if (permissionLevel == PermissionLevel.ADMIN){
+
+ event.setQuitMessage(ChatColor.RED + "Admin | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel verlassen");
+ }else
+ if (permissionLevel == PermissionLevel.MODERATOR){
+event.setQuitMessage(ChatColor.GREEN + "Moderator | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel verlassen");
+ } else if (permissionLevel == PermissionLevel.STREAMER){
+ event.setQuitMessage(ChatColor.DARK_PURPLE + "Streamer | " + ChatColor.GRAY + event.getPlayer().getName() + " hat das Spiel verlassen");
+ }else event.setQuitMessage("Spieler | " + event.getPlayer().getName() + " hat das Spiel betreten") ;
+
+
+
+
+
+
+
+ }
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000..8591703
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,7 @@
+name: ModUtils
+version: '${project.version}'
+main: de.softwarerat.modutils.Main
+api-version: 1.18
+commands:
+ MUitls:
+ Utils:
\ No newline at end of file