Merge pull request #12 from Freezy-Studios/dev

Dev
This commit is contained in:
DaTTV 2025-02-18 22:09:31 +01:00 committed by GitHub
commit d6b44a250a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 95 additions and 13 deletions

View file

@ -73,6 +73,7 @@ public final class BlazeSMP extends JavaPlugin {
pm.registerEvents(new PlayerCommandBlockerListener(), this); pm.registerEvents(new PlayerCommandBlockerListener(), this);
pm.registerEvents(new PlayerClaimListener(), this); pm.registerEvents(new PlayerClaimListener(), this);
pm.registerEvents(new ChunkInventoryManager(), this); pm.registerEvents(new ChunkInventoryManager(), this);
pm.registerEvents(new PressurePlateListener(), this);
this.log.info("Registered EventListeners!"); this.log.info("Registered EventListeners!");
this.log.info("Starting Timer tasks..."); this.log.info("Starting Timer tasks...");

View file

@ -124,7 +124,7 @@ public class ChunkInventoryManager implements Listener {
if (!(event.getWhoClicked() instanceof Player player)) return; if (!(event.getWhoClicked() instanceof Player player)) return;
// Verwende Paper's getView() um den Titel als Component zu erhalten // Verwende Paper's getView() um den Titel als Component zu erhalten
Component invTitle = event.getView().title(); Component invTitle = event.getView().title();
Component expectedTitle = MiniMessage.miniMessage().deserialize("<gold>Inv Chunks Bust</gold>"); Component expectedTitle = MiniMessage.miniMessage().deserialize("<gold>Clan Chunks</gold>");
// Vergleiche die reinen Texte der Components // Vergleiche die reinen Texte der Components
if (!PlainTextComponentSerializer.plainText().serialize(invTitle) if (!PlainTextComponentSerializer.plainText().serialize(invTitle)
.equals(PlainTextComponentSerializer.plainText().serialize(expectedTitle))) { .equals(PlainTextComponentSerializer.plainText().serialize(expectedTitle))) {

View file

@ -17,18 +17,16 @@ public class PlayerChatListener implements Listener {
Component suffix = Component.empty(); Component suffix = Component.empty();
if (team != null) { if (team != null) {
team.prefix();
prefix = team.prefix(); prefix = team.prefix();
team.suffix();
suffix = team.suffix(); suffix = team.suffix();
} }
Component messageComponent = event.message(); Component messageComponent = event.message();
Component chatComponent = Component.empty() Component chatComponent = Component.empty()
.append(prefix) //.append(prefix)
.append(Component.text(player.getName())) .append(player.teamDisplayName())
.append(suffix) //.append(suffix)
.append(Component.text(": ")) .append(Component.text(": "))
.append(messageComponent); .append(messageComponent);

View file

@ -3,6 +3,7 @@ package me.freezy.plugins.papermc.blazesmp.listener;
import me.freezy.plugins.papermc.blazesmp.BlazeSMP; import me.freezy.plugins.papermc.blazesmp.BlazeSMP;
import me.freezy.plugins.papermc.blazesmp.module.Clan; import me.freezy.plugins.papermc.blazesmp.module.Clan;
import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Chunk; import org.bukkit.Chunk;
@ -12,12 +13,17 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent; 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.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.inventory.Inventory;
public class PlayerClaimListener implements Listener { public class PlayerClaimListener implements Listener {
Component title = MiniMessage.miniMessage().deserialize("<gold>Clan Chunks</gold>");
@EventHandler @EventHandler
public void onBlockBreak(BlockBreakEvent event) { public void onBlockBreak(BlockBreakEvent event) {
Location location = event.getBlock().getLocation(); Location location = event.getBlock().getLocation();
@ -119,5 +125,8 @@ public class PlayerClaimListener implements Listener {
) )
); );
} }
} }
} }

View file

@ -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<UUID, BukkitRunnable> 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);
}
}
}

View file

@ -5,7 +5,6 @@ import me.freezy.plugins.papermc.blazesmp.module.Clan;
import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
@ -31,7 +30,7 @@ public class PlayerManager {
public void setPlayerTeam(Player player) { public void setPlayerTeam(Player player) {
Clans clans = BlazeSMP.getInstance().getClans(); Clans clans = BlazeSMP.getInstance().getClans();
UUID playerUUID = player.getUniqueId(); UUID playerUUID = player.getUniqueId();
player.setScoreboard(player.getServer().getScoreboardManager().getNewScoreboard()); player.setScoreboard(player.getServer().getScoreboardManager().getMainScoreboard());
Scoreboard scoreboard = player.getScoreboard(); Scoreboard scoreboard = player.getScoreboard();
String teamName; String teamName;
if (clans.isInClan(playerUUID)) { if (clans.isInClan(playerUUID)) {
@ -46,8 +45,8 @@ public class PlayerManager {
} else { } else {
teamName="zzzm"; teamName="zzzm";
} }
teamName+=generateRandomString(12); teamName+=generateRandomString();
if (!scoreboard.getTeams().isEmpty()) scoreboard.getTeams().clear(); scoreboard.getTeams().forEach(Team::unregister);
Team team = scoreboard.getTeam(teamName); Team team = scoreboard.getTeam(teamName);
if (team == null) { if (team == null) {
team = scoreboard.registerNewTeam(teamName); team = scoreboard.registerNewTeam(teamName);
@ -88,12 +87,12 @@ public class PlayerManager {
player.displayName(displayName); player.displayName(displayName);
} }
private String generateRandomString(int length) { private String generateRandomString() {
String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
SecureRandom RANDOM = new SecureRandom(); 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()))); sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
} }