From acc826bdd6b02dbd38ef6366647ba60c23c60fcb Mon Sep 17 00:00:00 2001 From: EmrageGHC Date: Tue, 18 Feb 2025 20:31:41 +0100 Subject: [PATCH 1/4] fixxed take items out of inventory --- .../listener/PlayerClaimListener.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java index f9cf88a..1a47af7 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java @@ -3,6 +3,7 @@ package me.freezy.plugins.papermc.blazesmp.listener; import me.freezy.plugins.papermc.blazesmp.BlazeSMP; import me.freezy.plugins.papermc.blazesmp.module.Clan; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; +import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Bukkit; import org.bukkit.Chunk; @@ -12,12 +13,17 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerInteractAtEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.inventory.Inventory; public class PlayerClaimListener implements Listener { + + Component title = MiniMessage.miniMessage().deserialize("Clan Chunks"); @EventHandler public void onBlockBreak(BlockBreakEvent event) { Location location = event.getBlock().getLocation(); @@ -119,5 +125,18 @@ public class PlayerClaimListener implements Listener { ) ); } + + + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent event) { + // Check if the clicked inventory is the one you want to protect + if (event.getView().getTitle().equals(title)) { + // Cancel the event to prevent item removal + event.setCancelled(true); + } + } + } From b8fb25382ed00cf84d6307c8466a18c8c0103433 Mon Sep 17 00:00:00 2001 From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com> Date: Tue, 18 Feb 2025 20:37:04 +0100 Subject: [PATCH 2/4] Fixed typo --- .../blazesmp/listener/ChunkInventoryManager.java | 2 +- .../papermc/blazesmp/listener/PlayerClaimListener.java | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/ChunkInventoryManager.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/ChunkInventoryManager.java index 3a441bd..de30f9b 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/ChunkInventoryManager.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/ChunkInventoryManager.java @@ -124,7 +124,7 @@ public class ChunkInventoryManager implements Listener { if (!(event.getWhoClicked() instanceof Player player)) return; // Verwende Paper's getView() um den Titel als Component zu erhalten Component invTitle = event.getView().title(); - Component expectedTitle = MiniMessage.miniMessage().deserialize("Inv Chunks Bust"); + Component expectedTitle = MiniMessage.miniMessage().deserialize("Clan Chunks"); // Vergleiche die reinen Texte der Components if (!PlainTextComponentSerializer.plainText().serialize(invTitle) .equals(PlainTextComponentSerializer.plainText().serialize(expectedTitle))) { diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java index 1a47af7..a49a571 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java @@ -129,14 +129,4 @@ public class PlayerClaimListener implements Listener { } - - @EventHandler - public void onInventoryClick(InventoryClickEvent event) { - // Check if the clicked inventory is the one you want to protect - if (event.getView().getTitle().equals(title)) { - // Cancel the event to prevent item removal - event.setCancelled(true); - } - } - } From e511a3aea91feaf2b471827e9bd6949ded3e51ac Mon Sep 17 00:00:00 2001 From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com> Date: Tue, 18 Feb 2025 22:02:11 +0100 Subject: [PATCH 3/4] Fixed PlayerList --- .../papermc/blazesmp/manager/PlayerManager.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java index 0dadac2..74a35f3 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java @@ -5,7 +5,6 @@ import me.freezy.plugins.papermc.blazesmp.module.Clan; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; -import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; @@ -31,7 +30,7 @@ public class PlayerManager { public void setPlayerTeam(Player player) { Clans clans = BlazeSMP.getInstance().getClans(); UUID playerUUID = player.getUniqueId(); - player.setScoreboard(player.getServer().getScoreboardManager().getNewScoreboard()); + player.setScoreboard(player.getServer().getScoreboardManager().getMainScoreboard()); Scoreboard scoreboard = player.getScoreboard(); String teamName; if (clans.isInClan(playerUUID)) { @@ -46,8 +45,8 @@ public class PlayerManager { } else { teamName="zzzm"; } - teamName+=generateRandomString(12); - if (!scoreboard.getTeams().isEmpty()) scoreboard.getTeams().clear(); + teamName+=generateRandomString(); + scoreboard.getTeams().forEach(Team::unregister); Team team = scoreboard.getTeam(teamName); if (team == null) { team = scoreboard.registerNewTeam(teamName); @@ -88,12 +87,12 @@ public class PlayerManager { player.displayName(displayName); } - private String generateRandomString(int length) { + private String generateRandomString() { String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; SecureRandom RANDOM = new SecureRandom(); - StringBuilder sb = new StringBuilder(length); + StringBuilder sb = new StringBuilder(12); - for (int i = 0; i < length; i++) { + for (int i = 0; i < 12; i++) { sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length()))); } From fcb2ca8496febe99f0eea31042f7ae73809902e5 Mon Sep 17 00:00:00 2001 From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com> Date: Tue, 18 Feb 2025 22:08:25 +0100 Subject: [PATCH 4/4] Added spawn preassureplatelistener --- .../plugins/papermc/blazesmp/BlazeSMP.java | 1 + .../blazesmp/listener/PlayerChatListener.java | 8 +- .../listener/PressurePlateListener.java | 75 +++++++++++++++++++ 3 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java index 6fbfc51..464b798 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java @@ -73,6 +73,7 @@ public final class BlazeSMP extends JavaPlugin { pm.registerEvents(new PlayerCommandBlockerListener(), this); pm.registerEvents(new PlayerClaimListener(), this); pm.registerEvents(new ChunkInventoryManager(), this); + pm.registerEvents(new PressurePlateListener(), this); this.log.info("Registered EventListeners!"); this.log.info("Starting Timer tasks..."); diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerChatListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerChatListener.java index e626b39..07e5993 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerChatListener.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerChatListener.java @@ -17,18 +17,16 @@ public class PlayerChatListener implements Listener { Component suffix = Component.empty(); if (team != null) { - team.prefix(); prefix = team.prefix(); - team.suffix(); suffix = team.suffix(); } Component messageComponent = event.message(); Component chatComponent = Component.empty() - .append(prefix) - .append(Component.text(player.getName())) - .append(suffix) + //.append(prefix) + .append(player.teamDisplayName()) + //.append(suffix) .append(Component.text(": ")) .append(messageComponent); diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java new file mode 100644 index 0000000..a45a752 --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PressurePlateListener.java @@ -0,0 +1,75 @@ +package me.freezy.plugins.papermc.blazesmp.listener; + +import me.freezy.plugins.papermc.blazesmp.BlazeSMP; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class PressurePlateListener implements Listener { + private static final Plugin plugin = JavaPlugin.getPlugin(BlazeSMP.class); + private final Location pressurePlateLocation; + private final Location spawnLocation; + private final Map playerTasks = new HashMap<>(); + private final String teleportMessage; + private final long teleportDelay; + + public PressurePlateListener() { + FileConfiguration config = plugin.getConfig(); + pressurePlateLocation = new Location( + Bukkit.getWorld(config.getString("pressure-plate.world", "world")), + config.getDouble("pressure-plate.x", 1), + config.getDouble("pressure-plate.y", 68), + config.getDouble("pressure-plate.z", 0) + ); + spawnLocation = new Location( + Bukkit.getWorld(config.getString("spawn-location.world", "world")), + config.getDouble("spawn-location.x", 0), + config.getDouble("spawn-location.y", 200), + config.getDouble("spawn-location.z", 0) + ); + teleportMessage = config.getString("teleport-message", "§cYou need to wait 5 seconds to be teleported."); + teleportDelay = config.getLong("teleport-delay", 100L); // Default to 5 seconds (100 ticks) + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + if (event.getTo().getBlock().getLocation().equals(pressurePlateLocation)) { + if (!playerTasks.containsKey(event.getPlayer().getUniqueId())) { + event.getPlayer().sendMessage(teleportMessage); + BukkitRunnable task = new BukkitRunnable() { + @Override + public void run() { + event.getPlayer().teleport(spawnLocation); + playerTasks.remove(event.getPlayer().getUniqueId()); + } + }; + task.runTaskLater(plugin, teleportDelay); + playerTasks.put(event.getPlayer().getUniqueId(), task); + } + } else { + if (playerTasks.containsKey(event.getPlayer().getUniqueId())) { + playerTasks.get(event.getPlayer().getUniqueId()).cancel(); + playerTasks.remove(event.getPlayer().getUniqueId()); + } + } + } + + @EventHandler + public void onBlockBreak(BlockBreakEvent event) { + if (event.getBlock().getLocation().equals(pressurePlateLocation) && event.getBlock().getType() == Material.POLISHED_BLACKSTONE_PRESSURE_PLATE) { + event.setCancelled(true); + } + } +} \ No newline at end of file