From bece2529bb2f2f46847f5edbed0942917819e74a Mon Sep 17 00:00:00 2001
From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com>
Date: Wed, 19 Feb 2025 18:54:28 +0100
Subject: [PATCH 01/32] Added Claim restrictions for spawn
---
.../plugins/papermc/blazesmp/command/ClaimCommand.java | 5 +++++
src/main/resources/storage/messages.json | 1 +
2 files changed, 6 insertions(+)
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClaimCommand.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClaimCommand.java
index 7efdf05..2a138b8 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClaimCommand.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClaimCommand.java
@@ -55,6 +55,11 @@ public class ClaimCommand extends SimpleCommand {
if (clans.isChunkClaimed(playerChunk)) {
player.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.chunk_already_claimed")));
} else {
+ // claim too close to spawn 8 chunks
+ if (playerChunk.getX() < 8 && playerChunk.getZ() < 8) {
+ player.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("error.chunk_too_close_to_spawn")));
+ return true;
+ }
playerClaims.add(playerChunk);
player.sendMessage(MiniMessage.miniMessage().deserialize(L4M4.get("success.chunk_claimed")));
existingClaims.put(playerUUID, playerClaims);
diff --git a/src/main/resources/storage/messages.json b/src/main/resources/storage/messages.json
index 722e79a..975cbf9 100644
--- a/src/main/resources/storage/messages.json
+++ b/src/main/resources/storage/messages.json
@@ -28,6 +28,7 @@
"error.not_in_clan": "To claim you need to be in a clan!",
"error.chunk_already_claimed": "Chunk is already claimed!",
"error.max_claims_reached": "You cannot claim more than 50 chunks!",
+ "error.chunk_too_close_to_spawn": "Chunk is too close to spawn!",
"usage.clan_create": "Usage: /clan create ",
"usage.clan_chat": "Usage: /clan chat ",
From 286919ce6cb21be4f78f922b1a477c2a28f7e320 Mon Sep 17 00:00:00 2001
From: EmrageGHC
Date: Wed, 19 Feb 2025 22:16:43 +0100
Subject: [PATCH 02/32] add PlayerVsPlayerListener
---
.../plugins/papermc/blazesmp/BlazeSMP.java | 2 ++
.../listener/PlayerVsPlayerListener.java | 32 +++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.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 f8d189b..b5fdf41 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
@@ -6,6 +6,7 @@ import me.freezy.plugins.papermc.blazesmp.command.ClanCommand;
import me.freezy.plugins.papermc.blazesmp.command.HomeCommand;
import me.freezy.plugins.papermc.blazesmp.command.ReportCommand;
import me.freezy.plugins.papermc.blazesmp.listener.*;
+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.Homes;
import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4;
@@ -81,6 +82,7 @@ public final class BlazeSMP extends JavaPlugin {
pm.registerEvents(new PlayerClaimListener(), this);
pm.registerEvents(new ChunkInventoryManager(), this);
pm.registerEvents(new PressurePlateListener(), this);
+ pm.registerEvents(new PlayerVsPlayerListener(clans), this);
this.log.info("Registered EventListeners!");
this.log.info("Starting Timer tasks...");
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java
new file mode 100644
index 0000000..a67a4b6
--- /dev/null
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java
@@ -0,0 +1,32 @@
+package me.freezy.plugins.papermc.blazesmp.listener;
+
+import me.freezy.plugins.papermc.blazesmp.module.manager.Clans;
+import me.freezy.plugins.papermc.blazesmp.module.Clan;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+
+public class PlayerVsPlayerListener implements Listener {
+
+ private final Clans clanManager;
+
+ public PlayerVsPlayerListener(Clans clanManager) {
+ this.clanManager = clanManager;
+ }
+
+ @EventHandler
+ public void onPVP(EntityDamageByEntityEvent event) {
+ if (event.getDamager() instanceof Player && event.getEntity() instanceof Player) {
+ Player damager = (Player) event.getDamager();
+ Player victim = (Player) event.getEntity();
+
+ Clan damagerClan = clanManager.getClanByMember(damager.getUniqueId());
+ Clan victimClan = clanManager.getClanByMember(victim.getUniqueId());
+
+ if (damagerClan != null && damagerClan.equals(victimClan)) {
+ event.setCancelled(true);
+ }
+ }
+ }
+}
\ No newline at end of file
From 595e3005d7b2812fb991ffae3e7574fdabfc25ce Mon Sep 17 00:00:00 2001
From: DaTTV
Date: Thu, 20 Feb 2025 07:41:58 +0100
Subject: [PATCH 03/32] Use of Pattern Variable
---
.../papermc/blazesmp/listener/PlayerVsPlayerListener.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java
index a67a4b6..b29ef0d 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerVsPlayerListener.java
@@ -17,9 +17,7 @@ public class PlayerVsPlayerListener implements Listener {
@EventHandler
public void onPVP(EntityDamageByEntityEvent event) {
- if (event.getDamager() instanceof Player && event.getEntity() instanceof Player) {
- Player damager = (Player) event.getDamager();
- Player victim = (Player) event.getEntity();
+ if (event.getDamager() instanceof Player damager && event.getEntity() instanceof Player victim) {
Clan damagerClan = clanManager.getClanByMember(damager.getUniqueId());
Clan victimClan = clanManager.getClanByMember(victim.getUniqueId());
From 989079757ee1b20c40ea0293ba6f2cfddb16aefb Mon Sep 17 00:00:00 2001
From: DaTTV
Date: Thu, 20 Feb 2025 07:56:07 +0100
Subject: [PATCH 04/32] Added updator for TabList
---
.../plugins/papermc/blazesmp/BlazeSMP.java | 3 +
.../papermc/blazesmp/module/manager/L4M4.java | 69 ++++++++++++++++---
.../papermc/blazesmp/tasks/TabListTimer.java | 58 ++++++++++++++++
src/main/resources/storage/messages.json | 10 ++-
4 files changed, 130 insertions(+), 10 deletions(-)
create mode 100644 src/main/java/me/freezy/plugins/papermc/blazesmp/tasks/TabListTimer.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 b5fdf41..3d29a3d 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java
@@ -12,6 +12,7 @@ import me.freezy.plugins.papermc.blazesmp.module.manager.Homes;
import me.freezy.plugins.papermc.blazesmp.module.manager.L4M4;
import me.freezy.plugins.papermc.blazesmp.module.manager.ProtectedBlocks;
import me.freezy.plugins.papermc.blazesmp.tasks.PlayerNameUpdate;
+import me.freezy.plugins.papermc.blazesmp.tasks.TabListTimer;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
@@ -26,6 +27,7 @@ public final class BlazeSMP extends JavaPlugin {
@Getter private FileConfiguration configuration;
@Getter private Logger log;
@Getter private BukkitTask nameUpdateTask;
+ @Getter private BukkitTask tabListUpdateTask;
@Override
public void onLoad() {
@@ -87,6 +89,7 @@ public final class BlazeSMP extends JavaPlugin {
this.log.info("Starting Timer tasks...");
this.nameUpdateTask = new PlayerNameUpdate().runTaskTimer(this, 0L, 20L);
+ this.tabListUpdateTask = new TabListTimer().runTaskTimer(this, 0L, 20L);
this.log.info("Started Timer tasks!");
this.log.info("Enabled BlazeSMP!");
diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/module/manager/L4M4.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/module/manager/L4M4.java
index ece8289..7dce624 100644
--- a/src/main/java/me/freezy/plugins/papermc/blazesmp/module/manager/L4M4.java
+++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/module/manager/L4M4.java
@@ -10,15 +10,15 @@ import java.io.InputStream;
import java.io.Reader;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
-import java.util.Map;
+import java.util.*;
import java.util.logging.Logger;
public class L4M4 {
private static final Logger LOGGER = Logger.getLogger("L4M4");
private static final String MESSAGES_STORAGE_PATH = "plugins/BlazeSMP/storage/messages.json";
- // Map zum Speichern der geladenen Nachrichten
- private static Map messages;
+ // Map zum Speichern der geladenen Nachrichten (jetzt mit Object als Wert)
+ private static Map messages;
/**
* Initialisiert die messages.json und lädt anschließend die Nachrichten.
@@ -36,7 +36,6 @@ public class L4M4 {
private static void initializeMessages() {
File messagesFile = new File(MESSAGES_STORAGE_PATH);
if (!messagesFile.exists()) {
- // Erstelle die notwendigen Verzeichnisse
if (messagesFile.getParentFile() != null && !messagesFile.getParentFile().exists()) {
if (messagesFile.getParentFile().mkdirs()) {
LOGGER.info("Verzeichnis für messages.json erstellt: " + messagesFile.getParentFile().getAbsolutePath());
@@ -45,13 +44,11 @@ public class L4M4 {
return;
}
}
- // Lade die Ressource als Stream
try (InputStream in = L4M4.class.getClassLoader().getResourceAsStream("storage/messages.json")) {
if (in == null) {
LOGGER.severe("Resource 'storage/messages.json' nicht gefunden!");
return;
}
- // Kopiere den Inhalt der Ressource in die Zieldatei
Files.copy(in, messagesFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
LOGGER.info("Default messages.json wurde kopiert nach: " + MESSAGES_STORAGE_PATH);
} catch (IOException e) {
@@ -73,7 +70,7 @@ public class L4M4 {
}
try (Reader reader = new FileReader(messagesFile)) {
Gson gson = new Gson();
- messages = gson.fromJson(reader, new TypeToken