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 + 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