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/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/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/PlayerClaimListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerClaimListener.java
index f9cf88a..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
@@ -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,8 @@ public class PlayerClaimListener implements Listener {
)
);
}
+
+
+
}
}
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
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())));
}