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..e44a4e3 --- /dev/null +++ b/pom.xml @@ -0,0 +1,74 @@ + + + 4.0.0 + + xyz.inlineyt + stamper + 1.0-SNAPSHOT + jar + + Alle gegen Stamer + + + 18 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 17 + 17 + + + + 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/xyz/inlineyt/stamper/Main.java b/src/main/java/xyz/inlineyt/stamper/Main.java new file mode 100644 index 0000000..db98387 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/Main.java @@ -0,0 +1,40 @@ +package xyz.inlineyt.stamper; + +import org.bukkit.Bukkit; + +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; +import xyz.inlineyt.stamper.commands.*; +import xyz.inlineyt.stamper.gameState.StateManager; +import xyz.inlineyt.stamper.listener.*; + +public final class Main extends JavaPlugin { + + @Override + public void onEnable() { + // Plugin startup logic + // StateManager.setState("Lobby"); + PluginManager manager = Bukkit.getPluginManager(); + manager.registerEvents(new ChatListener(), this); + manager.registerEvents(new JoinListener(), this); + manager.registerEvents(new QuitListener(), this); + manager.registerEvents(new EntityHitListener(), this); + manager.registerEvents(new DeathListener(), this); + manager.registerEvents(new InvClickListener(), this); + getCommand("StartGame").setExecutor(new StartGame()); + getCommand("Compass").setExecutor(new Compass()); + getCommand("Rank").setExecutor(new rank()); + //getCommand("Compass").setExecutor(new Compass()); + getCommand("Kits").setExecutor(new Kits()); + getCommand("Teleport").setExecutor(new Teleport()); + getCommand("giveKit").setExecutor(new GiveKit()); + xyz.inlineyt.stamper.kits.Kits.getKits().add("Tank-Test"); + xyz.inlineyt.stamper.kits.Kits.getKits().add("Test-OP"); + xyz.inlineyt.stamper.kits.Kits.getKits().add("Test-Normal"); + } + + @Override + public void onDisable() { + // Plugin shutdown logic + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/builder/ItemBuilder.java b/src/main/java/xyz/inlineyt/stamper/builder/ItemBuilder.java new file mode 100644 index 0000000..5290179 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/builder/ItemBuilder.java @@ -0,0 +1,67 @@ +package xyz.inlineyt.stamper.builder; + +import org.bukkit.Material; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + +public class ItemBuilder { + + + + + private Map> clickActions; + private ItemMeta itemMeta; + private ItemStack itemStack; + public ItemBuilder(Material mat){ + itemStack = new ItemStack(mat); + itemMeta = itemStack.getItemMeta(); + this.clickActions = new HashMap<>(); + } + 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/xyz/inlineyt/stamper/commands/Compass.java b/src/main/java/xyz/inlineyt/stamper/commands/Compass.java new file mode 100644 index 0000000..8a4b029 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/Compass.java @@ -0,0 +1,38 @@ +package xyz.inlineyt.stamper.commands; + + +import xyz.inlineyt.stamper.builder.ItemBuilder; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; +import xyz.inlineyt.stamper.player.OP; + +public class Compass implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + Player player = (Player) sender; + + PlayerInventory inventory = player.getInventory(); +if (player.hasPermission("event.rank.op")) { + inventory.addItem(new ItemBuilder(Material.COMPASS).setDisplayname("Target: Spieler").build()); + + for (Player targetPlayer : Bukkit.getOnlinePlayers()) { + + player.setCompassTarget(targetPlayer.getLocation()); + + } + player.setCompassTarget(OP.getOPPlayers().get(1).getLocation()); + + inventory.addItem(new ItemBuilder(Material.COMPASS).setDisplayname("Target: " + OP.getOPPlayers().get(1).getName()).build()); + +} + + + return false; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/commands/GiveKit.java b/src/main/java/xyz/inlineyt/stamper/commands/GiveKit.java new file mode 100644 index 0000000..684452e --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/GiveKit.java @@ -0,0 +1,38 @@ +package xyz.inlineyt.stamper.commands; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import xyz.inlineyt.stamper.kits.Kits; +import xyz.inlineyt.stamper.kits.TestKit; +import xyz.inlineyt.stamper.kits.TestKitOP; +import xyz.inlineyt.stamper.kits.TestKitOPTank; + +public class GiveKit implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player player = Bukkit.getPlayer(args[0]); + + + switch (args[1]){ + + case "testkit": + TestKit.Kit(player); + break; + case "tank": + TestKitOPTank.kit(player); + break; + case "op": + TestKitOP.kit(player); + break; + } + + + + + + return false; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/commands/Kits.java b/src/main/java/xyz/inlineyt/stamper/commands/Kits.java new file mode 100644 index 0000000..fc645ea --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/Kits.java @@ -0,0 +1,37 @@ +package xyz.inlineyt.stamper.commands; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import xyz.inlineyt.stamper.builder.ItemBuilder; + +public class Kits implements CommandExecutor { + int slot ; + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player player = (Player) sender; + Inventory inventory = Bukkit.createInventory(null , 3*9 , "Kit Art Auswählen" ); + +//rework KitGUI + xyz.inlineyt.stamper.kits.Kits.getKits().forEach( (n) -> inventory.setItem( slot++ , new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname(n).setLocalizedName(n).build()) ); + + + // inventory.setItem( 11, new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname("OP Kits").setLocalizedName("KitKat_OP").build()); + // inventory.setItem( 13, new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname("OP Kits").setLocalizedName("KitKat_Player").build()); + + + player.openInventory(inventory); + return false; + } + + + + + + +} diff --git a/src/main/java/xyz/inlineyt/stamper/commands/StartGame.java b/src/main/java/xyz/inlineyt/stamper/commands/StartGame.java new file mode 100644 index 0000000..c0be965 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/StartGame.java @@ -0,0 +1,19 @@ +package xyz.inlineyt.stamper.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.Inventory; +import xyz.inlineyt.stamper.gameState.StateManager; + +public class StartGame implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + + StateManager.setState("inGame"); + + + return false; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/commands/Teleport.java b/src/main/java/xyz/inlineyt/stamper/commands/Teleport.java new file mode 100644 index 0000000..082c91e --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/Teleport.java @@ -0,0 +1,56 @@ +package xyz.inlineyt.stamper.commands; + +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 Teleport implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + Player playerSender = (Player) sender; + + Player player = Bukkit.getPlayer(args[1]); + switch (args[0]){ + + case "here": + player.sendTitle("㸋" , "",7 , 10, 7); + player.teleport( playerSender); + + break; + + case "to" : + if (args[2] == null) { + player.sendTitle("㸋" , "",7 , 10, 7); + sender.sendMessage("bitte Spieler angeben"); + + } + player.sendTitle("㸋" , "",7 , 10, 7); + Player target = Bukkit.getPlayer(args[2]); + player.teleport(target); + + + + break; + + case "all": + + for (Player allPlayers : Bukkit.getOnlinePlayers()){ + allPlayers.sendTitle("㸋" , "",7 , 10, 7); + allPlayers.teleport(playerSender); + + } + + break; + + } + + + + + + return false; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/commands/rank.java b/src/main/java/xyz/inlineyt/stamper/commands/rank.java new file mode 100644 index 0000000..ecb8f72 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/commands/rank.java @@ -0,0 +1,74 @@ +package xyz.inlineyt.stamper.commands; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import xyz.inlineyt.stamper.player.Helpers; +import xyz.inlineyt.stamper.player.OP; + +public class rank implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player target = Bukkit.getPlayer(args[0]) ; + + if (args[1].equalsIgnoreCase("OP")) { + + if (Helpers.getHelpers().contains(target)){ + Helpers.getHelpers().remove(target); + } + + OP.getOPPlayers().add(target); + + for (Player Onlineplayers : Bukkit.getOnlinePlayers()) { + + Onlineplayers.sendTitle(target.getName() + " wurde nun zum 眨" , "" ,0 , 10 ,0 ); + + } + target.setPlayerListName( "眨 " + ChatColor.GRAY + target.getName()); + } else if (args[1].equalsIgnoreCase("Helper")) { + + if (OP.getOPPlayers().contains(target)){ + OP.getOPPlayers().remove(target); + } + + for (Player Onlineplayers : Bukkit.getOnlinePlayers()) { + + Onlineplayers.sendTitle(target.getName() + " wurde nun zum 眩" , "" ,0 , 10 ,0 ); + } + + target.setPlayerListName( "眩 " + target.getName()); + Helpers.getHelpers().add(target); + + + + + + } else if (args[1].equalsIgnoreCase("Player")) { + + if (OP.getOPPlayers().contains(target)) { + OP.getOPPlayers().remove(target); + } + + for (Player Onlineplayers : Bukkit.getOnlinePlayers()) { + + Onlineplayers.sendTitle(target.getName() + " wurde nun zum 眪" , "" ,0 , 10 ,0 ); + target.setPlayerListName( "眪 "+ ChatColor.GRAY + target.getName()); + + } + + Helpers.getHelpers().add(target); + + + + + + } + + + + return false; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/gameState/State.java b/src/main/java/xyz/inlineyt/stamper/gameState/State.java new file mode 100644 index 0000000..0b286b3 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/gameState/State.java @@ -0,0 +1,13 @@ +package xyz.inlineyt.stamper.gameState; + +public class State { + public static String State; + + public static String getState() { + return State; + } + + public static void setState(String state) { + State = state; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/gameState/StateManager.java b/src/main/java/xyz/inlineyt/stamper/gameState/StateManager.java new file mode 100644 index 0000000..7540aef --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/gameState/StateManager.java @@ -0,0 +1,80 @@ +package xyz.inlineyt.stamper.gameState; + + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import xyz.inlineyt.stamper.kits.SelectedOPKit; +import xyz.inlineyt.stamper.kits.TestKit; +import xyz.inlineyt.stamper.kits.TestKitOP; +import xyz.inlineyt.stamper.kits.TestKitOPTank; +import xyz.inlineyt.stamper.player.Helpers; +import xyz.inlineyt.stamper.player.OP; + +public class StateManager { + + public static void setState(String GameState) { + + switch (GameState){ + case "Lobby": + State.setState("Lobby"); + + break; + case "inGame": + + + + State.setState("Inagme"); + + for (Player players : Bukkit.getOnlinePlayers()) { + String kitName = SelectedOPKit.getKit(); + if (OP.getOPPlayers().contains(players)) { + + switch (kitName) { + + case "TestOP": + TestKitOP.kit(players); + break; + case "TestTank": + TestKitOPTank.kit(players); + break; + } + if (Helpers.getHelpers().contains(players)) { + + switch (kitName) { + + case "TestOP": + TestKitOP.kit(players); + break; + case "TestTank": + TestKitOPTank.kit(players); + break; + } + } + + + + + } else TestKit.kit(players); + } + + + + + break; + case "stop": + + State.setState("Stop"); + Bukkit.getServer().shutdown(); + break; + + + + } + } + + + + + + +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/Kit.java b/src/main/java/xyz/inlineyt/stamper/kits/Kit.java new file mode 100644 index 0000000..6e1de7b --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/Kit.java @@ -0,0 +1,22 @@ +package xyz.inlineyt.stamper.kits; + +import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; + +public interface Kit { + + public static PlayerInventory kit(Player player) { + PlayerInventory inventory = player.getInventory(); + + + return inventory; + }; + + public static String Kit(){ + String KitName = "KitName"; + return KitName; + }; + + + +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/Kits.java b/src/main/java/xyz/inlineyt/stamper/kits/Kits.java new file mode 100644 index 0000000..223f4b8 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/Kits.java @@ -0,0 +1,13 @@ +package xyz.inlineyt.stamper.kits; + +import java.util.ArrayList; + +public class Kits { + + + public static ArrayList Kits = new ArrayList(); + + public static ArrayList getKits() { + return Kits; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/SelectedKit.java b/src/main/java/xyz/inlineyt/stamper/kits/SelectedKit.java new file mode 100644 index 0000000..e9364a1 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/SelectedKit.java @@ -0,0 +1,14 @@ +package xyz.inlineyt.stamper.kits; + +public class SelectedKit { + + public static String Kit; + + public static String getKit() { + return Kit; + } + + public static void setKit(String kit) { + Kit = kit; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/SelectedOPKit.java b/src/main/java/xyz/inlineyt/stamper/kits/SelectedOPKit.java new file mode 100644 index 0000000..9618cf0 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/SelectedOPKit.java @@ -0,0 +1,14 @@ +package xyz.inlineyt.stamper.kits; + +public class SelectedOPKit { + + public static String Kit; + + public static String getKit() { + return Kit; + } + + public static void setKit(String kit) { + Kit = kit; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/TestKit.java b/src/main/java/xyz/inlineyt/stamper/kits/TestKit.java new file mode 100644 index 0000000..487279d --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/TestKit.java @@ -0,0 +1,29 @@ +package xyz.inlineyt.stamper.kits; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; +import xyz.inlineyt.stamper.builder.ItemBuilder; + + +public class TestKit implements Kit{ + + + public static PlayerInventory kit(Player player) { + PlayerInventory inventory = player.getInventory(); + + inventory.setItem(0, new ItemBuilder(Material.DIAMOND_SWORD).setDisplayname("Dia Schwert zum Test Kit").build()); + + + inventory.setItem(1, new ItemBuilder(Material.DIAMOND_AXE).setDisplayname("Dia Axt zum Test Kit").build()); + inventory.setItem(2, new ItemBuilder(Material.DIAMOND_PICKAXE).setDisplayname("Dia PickAxt zum Test Kit").build()); + + return inventory; + } + + + public static String Kit(Player player){ + String KitName = "Test-Kit"; + return KitName; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/TestKitOP.java b/src/main/java/xyz/inlineyt/stamper/kits/TestKitOP.java new file mode 100644 index 0000000..081fe89 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/TestKitOP.java @@ -0,0 +1,25 @@ +package xyz.inlineyt.stamper.kits; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; +import xyz.inlineyt.stamper.builder.ItemBuilder; + + +public class TestKitOP implements Kit{ + + public static PlayerInventory kit(Player player) { + PlayerInventory inventory = player.getInventory(); + + inventory.setItem(0, new ItemBuilder(Material.DIAMOND_SWORD).setDisplayname("Dia Schwert zum Test Kit des OP").build()); + + + inventory.setItem(1, new ItemBuilder(Material.DIAMOND_AXE).setDisplayname("Dia Axt zum Test Kit des OP").build()); + inventory.setItem(2, new ItemBuilder(Material.DIAMOND_PICKAXE).setDisplayname("Dia PickAxt zum Test Kit des OP").build()); + + return inventory; + } + + + +} diff --git a/src/main/java/xyz/inlineyt/stamper/kits/TestKitOPTank.java b/src/main/java/xyz/inlineyt/stamper/kits/TestKitOPTank.java new file mode 100644 index 0000000..76dba75 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/kits/TestKitOPTank.java @@ -0,0 +1,21 @@ +package xyz.inlineyt.stamper.kits; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; +import xyz.inlineyt.stamper.builder.ItemBuilder; + + +public class TestKitOPTank implements Kit{ + + public static PlayerInventory kit(Player player) { + PlayerInventory inventory = player.getInventory(); + + inventory.setItem(0, new ItemBuilder(Material.DIAMOND_SWORD).setDisplayname("Dia Schwert zum Test Kit des OP").build()); + + + inventory.setItem(1, new ItemBuilder(Material.DIAMOND_AXE).setDisplayname("Dia Axt zum Test Kit des OP").build()); + inventory.setItem(2, new ItemBuilder(Material.DIAMOND_PICKAXE).setDisplayname("Dia PickAxt zum Test Kit des OP").build()); + inventory.setItem(3, new ItemBuilder(Material.SHIELD).setDisplayname("Tank Shield").build()); + return inventory; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/listener/ChatListener.java b/src/main/java/xyz/inlineyt/stamper/listener/ChatListener.java new file mode 100644 index 0000000..7fc65dd --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/ChatListener.java @@ -0,0 +1,23 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.ChatColor; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; + +public class ChatListener implements Listener { + + + @EventHandler(ignoreCancelled = true) + public void onAsyncPlayerChat(AsyncPlayerChatEvent event) { + + if (event.getPlayer().hasPermission("event.rank.op")){ + event.setFormat(ChatColor.RED + "OP " + event.getPlayer().getName() + " > " + event.getMessage()); + } else event.setFormat(ChatColor.GREEN + "Spieler "+ event.getPlayer().getName( ) + " > " + event.getMessage()); + + + + + + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/listener/DeathListener.java b/src/main/java/xyz/inlineyt/stamper/listener/DeathListener.java new file mode 100644 index 0000000..645996b --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/DeathListener.java @@ -0,0 +1,26 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; + +public class DeathListener implements Listener { + + @EventHandler(ignoreCancelled = true) + public void onPlayerDeath(PlayerDeathEvent event) { + if (event.getEntity().getKiller() == null) { + event.getEntity().kickPlayer("du bist Gestorben"); + + event.setDeathMessage(event.getEntity().getName() + "ist Gestorben." ); + } else { + + event.setDeathMessage(event.getEntity().getName() + "wurde von " + event.getEntity().getKiller().getName() + "getötet"); + event.getEntity().kickPlayer("du bist Gestorben"); + + + + event.getEntity().getKiller().sendMessage("Du hast " + event.getEntity().getName() + " getötet"); + } + } + } + diff --git a/src/main/java/xyz/inlineyt/stamper/listener/EntityHitListener.java b/src/main/java/xyz/inlineyt/stamper/listener/EntityHitListener.java new file mode 100644 index 0000000..800f8ac --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/EntityHitListener.java @@ -0,0 +1,33 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import xyz.inlineyt.stamper.gameState.State; +import xyz.inlineyt.stamper.player.OP; +import xyz.inlineyt.stamper.player.Players; + +public class EntityHitListener implements Listener { + + + public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { + + if (event.getDamager() instanceof Player) { + if(OP.getOPPlayers().contains(((Player) event.getDamager()).getPlayer())) {return;} + if (State.getState() == "Ingame") { + if (Players.getPlayers().contains(event.getEntity())){ + if (Players.getPlayers().contains(event.getEntity())){ + event.setCancelled(true); + } else if (OP.getOPPlayers().contains(((Player) event.getDamager()).getPlayer())){ + return; + } + } else return; + } + else event.setCancelled(true); + + } + + + + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/listener/InvClickListener.java b/src/main/java/xyz/inlineyt/stamper/listener/InvClickListener.java new file mode 100644 index 0000000..0ac1d02 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/InvClickListener.java @@ -0,0 +1,76 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; +import xyz.inlineyt.stamper.builder.ItemBuilder; +import xyz.inlineyt.stamper.kits.SelectedOPKit; + +public class InvClickListener implements Listener { + + @EventHandler(ignoreCancelled = true) + public void onInventoryClick(InventoryClickEvent event) { + + if (event.getView().getTitle() == "Kit Art Auswählen") { + if (event.getCurrentItem().getItemMeta().hasLocalizedName()) { + Player player = (Player) event.getWhoClicked(); + event.setCancelled(true); + + + switch (event.getCurrentItem().getItemMeta().getLocalizedName()) { + case "KitKat_OP": + Inventory inventoryOP = Bukkit.createInventory(null, 5 * 9, "Kit Auswählen"); + + inventoryOP.setItem(11, new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname("Test Kit OP").setLocalizedName("Kit_OP_Test").build()); + + inventoryOP.setItem(13, new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname("Tank Kit OP").setLocalizedName("Kit_OP_Test_Tank").build()); + + player.openInventory(inventoryOP); + + break; + + case "KitKat_Player": + Inventory inventoryPlayer = Bukkit.createInventory(null, 5 * 9, "Kit Auswählen für Spieler"); + + inventoryPlayer.setItem(11, new ItemBuilder(Material.NETHERITE_CHESTPLATE).setDisplayname("Test Kit OP").setLocalizedName("Kit_Test").build()); + + + player.openInventory(inventoryPlayer); + break; + + + } + + + } + } else if (event.getView().getTitle() == "Kit Auswählen") { + if (event.getCurrentItem().getItemMeta().hasLocalizedName()) { + Player player = (Player) event.getWhoClicked(); + event.setCancelled(true); + switch (event.getCurrentItem().getItemMeta().getLocalizedName()) { + case "Kit_OP_Test": + + SelectedOPKit.setKit("TestOP"); + + + break; + case "Kit_OP_Test_Tank": + + SelectedOPKit.setKit("TestTank"); + + + break; + } + } + + + } + + + } +} + diff --git a/src/main/java/xyz/inlineyt/stamper/listener/JoinListener.java b/src/main/java/xyz/inlineyt/stamper/listener/JoinListener.java new file mode 100644 index 0000000..de8f72c --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/JoinListener.java @@ -0,0 +1,33 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.ChatColor; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import xyz.inlineyt.stamper.player.OP; +import xyz.inlineyt.stamper.player.Players; +import xyz.inlineyt.stamper.tablist.Tablist; + +public class JoinListener implements Listener { + + public void onPlayerJoin(PlayerJoinEvent event) { + + if (event.getPlayer().hasPermission("event.rank.op")){ + + Tablist.updatePlayerDisplay( event.getPlayer() ,"眨 " + ChatColor.GRAY + event.getPlayer().getName() ); + event.setJoinMessage("眨 " + ChatColor.GRAY + event.getPlayer().getName() + " hat den Server betreten"); + + + OP.getOPPlayers().add(event.getPlayer()); + + + + }else { + + event.setJoinMessage("眪 " + ChatColor.GRAY + event.getPlayer().getName() + " hat den Server betreten"); + Tablist.updatePlayerDisplay(event.getPlayer(), "眪 " + ChatColor.GRAY + event.getPlayer().getName()); + Players.getPlayers().add(event.getPlayer()); + } + + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/listener/QuitListener.java b/src/main/java/xyz/inlineyt/stamper/listener/QuitListener.java new file mode 100644 index 0000000..95a2e0f --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/listener/QuitListener.java @@ -0,0 +1,20 @@ +package xyz.inlineyt.stamper.listener; + +import org.bukkit.ChatColor; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; + +public class QuitListener implements Listener { + + + @EventHandler(ignoreCancelled = true) + public void onPlayerQuit(PlayerQuitEvent event) { + + + if (event.getPlayer().hasPermission("event.rank.op")){ + event.setQuitMessage(ChatColor.RED + "OP " + ChatColor.DARK_GRAY + "| " + ChatColor.GRAY + event.getPlayer().getName() + " hat den Server verlassen"); + + } else event.setQuitMessage(ChatColor.GREEN + "Spieler " + ChatColor.DARK_GRAY + "| " + ChatColor.GRAY + event.getPlayer().getName() + " hat den Server verlassen"); + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/player/Helpers.java b/src/main/java/xyz/inlineyt/stamper/player/Helpers.java new file mode 100644 index 0000000..d68889e --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/player/Helpers.java @@ -0,0 +1,16 @@ +package xyz.inlineyt.stamper.player; + +import org.bukkit.entity.Player; + +import java.util.ArrayList; + +public class Helpers { + + public static ArrayList Helpers = new ArrayList() ; + + public static ArrayList getHelpers() { + return Helpers; + } + + +} diff --git a/src/main/java/xyz/inlineyt/stamper/player/OP.java b/src/main/java/xyz/inlineyt/stamper/player/OP.java new file mode 100644 index 0000000..0039da5 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/player/OP.java @@ -0,0 +1,16 @@ +package xyz.inlineyt.stamper.player; + +import org.bukkit.entity.Player; + +import java.util.ArrayList; + +public class OP { + + + public static ArrayList OPPlayers = new ArrayList(); + + + public static ArrayList getOPPlayers() { + return OPPlayers; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/player/Players.java b/src/main/java/xyz/inlineyt/stamper/player/Players.java new file mode 100644 index 0000000..ce1b504 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/player/Players.java @@ -0,0 +1,14 @@ +package xyz.inlineyt.stamper.player; + +import org.bukkit.entity.Player; + +import java.util.ArrayList; + +public class Players { + +public static ArrayList Players = new ArrayList(); + + public static ArrayList getPlayers() { + return Players; + } +} diff --git a/src/main/java/xyz/inlineyt/stamper/tablist/Tablist.java b/src/main/java/xyz/inlineyt/stamper/tablist/Tablist.java new file mode 100644 index 0000000..cb26702 --- /dev/null +++ b/src/main/java/xyz/inlineyt/stamper/tablist/Tablist.java @@ -0,0 +1,29 @@ +package xyz.inlineyt.stamper.tablist; + +import org.bukkit.entity.Player; + +public class Tablist { + + public static void updatePlayerDisplay(Player player , String Display) { + + + player.setPlayerListName(Display); + player.setDisplayName(Display); + + + + } + public static void updatePlayerTabHeaderFooter(Player player ,String DisplayHeader , String DisplayFooter) { + + + player.setPlayerListHeaderFooter(DisplayHeader , DisplayFooter); + + + + } + + + + + +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..2ec8819 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,17 @@ +name: Alle-gegen-Stamer +version: '${project.version}' +main: xyz.inlineyt.stamper.Main +api-version: 1.18 +commands: + StartGame: + permission: event.rank.op + Compass: + permission: event.compass + Kits: + permission: event.kit + Rank: + permission: event.rank + GiveKit: + permission: event.kit + Teleport: + permission: event.kit \ No newline at end of file