mirror of
https://github.com/Freezy-Studios/BlazeSMP.git
synced 2025-04-22 04:44: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 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...");
|
||||||
|
|
|
@ -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))) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 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())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue