mirror of
https://github.com/Freezy-Studios/BlazeSMP.git
synced 2025-04-21 15:34:04 +02:00
commit
d6b44a250a
6 changed files with 95 additions and 13 deletions
|
@ -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...");
|
||||
|
|
|
@ -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("<gold>Inv Chunks Bust</gold>");
|
||||
Component expectedTitle = MiniMessage.miniMessage().deserialize("<gold>Clan Chunks</gold>");
|
||||
// Vergleiche die reinen Texte der Components
|
||||
if (!PlainTextComponentSerializer.plainText().serialize(invTitle)
|
||||
.equals(PlainTextComponentSerializer.plainText().serialize(expectedTitle))) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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("<gold>Clan Chunks</gold>");
|
||||
@EventHandler
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
Location location = event.getBlock().getLocation();
|
||||
|
@ -119,5 +125,8 @@ public class PlayerClaimListener implements Listener {
|
|||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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())));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue