diff --git a/pom.xml b/pom.xml
index d2ece79..7e72806 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,10 @@
bstats-repo
https://repo.codemc.io/repository/maven-public/
+
+ opencollab-snapshot
+ https://repo.opencollab.dev/main/
+
@@ -96,6 +100,24 @@
7.1.0-SNAPSHOT
provided
+
+ net.kyori
+ adventure-api
+ 4.17.0
+ provided
+
+
+ org.geysermc.geyser
+ api
+ 2.2.0-SNAPSHOT
+ provided
+
+
+ org.geysermc.floodgate
+ api
+ 2.2.2-SNAPSHOT
+ provided
+
21
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java b/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java
index 9364f7f..2cae70c 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java
@@ -10,6 +10,8 @@ import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
+import org.geysermc.floodgate.api.FloodgateApi;
+import org.geysermc.geyser.api.GeyserApi;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
@@ -22,45 +24,27 @@ import java.util.*;
import java.util.logging.Level;
public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor {
-
public final Map autoCompressStatus = new HashMap<>();
public String serverRules;
public boolean chatLocked = false;
private Essentials essentials;
public boolean fixRanTooOften = false;
+ public GeyserApi geyserApi;
+ public FloodgateApi floodgateApi;
@Override
public void onEnable() {
- if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
- getLogger().warning("PlaceholderAPI not found. Disabling plugin.");
- getServer().getPluginManager().disablePlugin(this);
- return;
- }
- if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
- getLogger().warning("PlaceholderAPI not found. Disabling plugin.");
- getServer().getPluginManager().disablePlugin(this);
- return;
- }
- if (Bukkit.getPluginManager().getPlugin("Essentials") == null) {
- getLogger().warning("Essentials not found. Disabling plugin.");
- getServer().getPluginManager().disablePlugin(this);
- return;
- }
+ geyserApi = GeyserApi.api();
+ floodgateApi = FloodgateApi.getInstance();
Plugin essentialsPlugin = Bukkit.getServer().getPluginManager().getPlugin("Essentials");
- if (essentialsPlugin == null) {
- getLogger().warning("Essentials not found. Disabling plugin.");
- getServer().getPluginManager().disablePlugin(this);
- return;
+ getLogger().info("Essentials detected. Attempting to hook...");
+ if (essentialsPlugin instanceof Essentials) {
+ essentials = (Essentials) essentialsPlugin;
+ getLogger().info("Essentials hooked successfully.");
} else {
- getLogger().info("Essentials detected. Attempting to hook...");
- if (essentialsPlugin instanceof Essentials) {
- essentials = (Essentials) essentialsPlugin;
- getLogger().info("Essentials hooked successfully.");
- }
- else {
- getLogger().info("Essentials failed to hook.");
- }
+ getLogger().info("Essentials failed to hook. Disabling plugin");
+ getServer().getPluginManager().disablePlugin(this);
}
if (new PlaceholderAPIExpansion().register()) {
@@ -71,7 +55,20 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
return;
}
- getServer().getPluginManager().registerEvents(new BlockPlaceListener(), this);
+ registerEvents();
+ registerCommands();
+
+ loadAutoCompressStatus();
+ loadServerRules();
+ }
+
+ @Override
+ public void onDisable() {
+ saveAutoCompressStatus();
+ }
+
+ private void registerEvents() {
+ getServer().getPluginManager().registerEvents(new BlockPlaceListener(this), this);
getServer().getPluginManager().registerEvents(new BlockBreakListener(this), this);
getServer().getPluginManager().registerEvents(new CraftItemListener(), this);
getServer().getPluginManager().registerEvents(new EntityDamageListener(this), this);
@@ -82,33 +79,26 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
getServer().getPluginManager().registerEvents(new PlayerChatListener(this), this);
getServer().getPluginManager().registerEvents(new PlayerDeathListener(), this);
getServer().getPluginManager().registerEvents(new PlayerDropItemListener(this), this);
- getServer().getPluginManager().registerEvents(new PlayerElytraBoostListener(), this);
getServer().getPluginManager().registerEvents(new PlayerItemConsumeListener(), this);
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
- getServer().getPluginManager().registerEvents(new PlayerMoveListener(), this);
getServer().getPluginManager().registerEvents(new PortalCreateListener(), this);
getServer().getPluginManager().registerEvents(new PrepareAnvilListener(), this);
getServer().getPluginManager().registerEvents(new PrepareItemEnchantListener(), this);
getServer().getPluginManager().registerEvents(new ProjectileHitListener(), this);
getServer().getPluginManager().registerEvents(new SignChangeListener(this), this);
-
getServer().getPluginManager().registerEvents(this, this);
+ }
- loadAutoCompressStatus();
- loadServerRules();
+ private void registerCommands() {
Objects.requireNonNull(getCommand("autocompress")).setExecutor(new Autocompress(this));
Objects.requireNonNull(getCommand("clearchat")).setExecutor(new Clearchat());
Objects.requireNonNull(getCommand("fix")).setExecutor(new Fix(this));
Objects.requireNonNull(getCommand("link")).setExecutor(new Link());
Objects.requireNonNull(getCommand("lockchat")).setExecutor(new Lockchat(this));
+ Objects.requireNonNull(getCommand("ping")).setExecutor(new Ping(this));
Objects.requireNonNull(getCommand("rules")).setExecutor(new Rules(this));
Objects.requireNonNull(getCommand("sky")).setExecutor(new Sky());
- Objects.requireNonNull(getCommand("Unlink")).setExecutor(new Unlink());
- }
-
- @Override
- public void onDisable() {
- saveAutoCompressStatus();
+ Objects.requireNonNull(getCommand("unlink")).setExecutor(new Unlink());
}
public boolean isRestrictedMaterial(Material material) {
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/PlaceholderAPIExpansion.java b/src/main/java/io/github/lncvrt/lncvrtbox/PlaceholderAPIExpansion.java
index 9fdb2e2..47673ed 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/PlaceholderAPIExpansion.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/PlaceholderAPIExpansion.java
@@ -84,7 +84,7 @@ public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
case "afk_staff" -> {
int staffAfkCount = 0;
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
- if (p.hasPermission("lncvrtutils.staff") && isAfk(p)) {
+ if (p.hasPermission("lncvrtbox.staff") && isAfk(p)) {
staffAfkCount++;
}
}
@@ -115,24 +115,18 @@ public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
case "total_joins_formatted" -> {
return formatCompact(Bukkit.getOfflinePlayers().length);
}
- case "seasontwocountdown" -> {
- long targetTime = 1719804600L;
- long currentTime = System.currentTimeMillis() / 1000;
-
- if (currentTime >= targetTime) {
- return "Starting Soon!";
- } else {
- long remainingSeconds = targetTime - currentTime;
- return formatTime(remainingSeconds);
- }
- }
case "kdr" -> {
- int kills = Integer.parseInt(PlaceholderAPI.setPlaceholders(player, "%statistic_player_kills%"));
- int deaths = Integer.parseInt(PlaceholderAPI.setPlaceholders(player, "%statistic_deaths%"));
+ int kills = getPlayerKills(player);
+ int deaths = getPlayerDeaths(player);
double kdr = (deaths == 0) ? kills : (double) kills / deaths;
String format = decimalPlaces > 0 ? "0." + repeat("0", decimalPlaces) : "0";
return new DecimalFormat(format).format(kdr);
}
+ case "playtime" -> {
+ long playtimeTicks = player.getStatistic(org.bukkit.Statistic.PLAY_ONE_MINUTE);
+ long playtimeSeconds = playtimeTicks / 20;
+ return formatTime(playtimeSeconds);
+ }
}
return null;
@@ -150,7 +144,7 @@ public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
private String formatCompact(int number) {
DecimalFormat decimalFormat = new DecimalFormat("#.#");
if (number >= 1_000_000) {
- return decimalFormat.format(number / 1_000_000.0) + "M";
+ return decimalFormat.format(number / 1_000_000.0) + "M";
} else if (number >= 1_000) {
return decimalFormat.format(number / 1_000.0) + "k";
} else {
@@ -159,8 +153,6 @@ public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
}
private String formatTime(long seconds) {
- if (seconds <= 0) return "Starting Soon!";
-
long days = seconds / 86400;
seconds %= 86400;
long hours = seconds / 3600;
@@ -169,11 +161,19 @@ public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
seconds %= 60;
StringBuilder formattedTime = new StringBuilder();
- if (days > 0) formattedTime.append(days).append("d ");
- if (hours > 0 || days > 0) formattedTime.append(hours).append("h ");
- if (minutes > 0 || hours > 0 || days > 0) formattedTime.append(minutes).append("m ");
- if (seconds > 0 || minutes > 0 || hours > 0 || days > 0) formattedTime.append(seconds).append("s");
+ if (days > 0) formattedTime.append(days).append(" days, ");
+ if (hours > 0 || days > 0) formattedTime.append(hours).append(" hours, ");
+ if (minutes > 0 || hours > 0 || days > 0) formattedTime.append(minutes).append(" minutes, ");
+ formattedTime.append(seconds).append(" seconds");
return formattedTime.toString().trim();
}
+
+ public int getPlayerKills(Player player) {
+ return player.getStatistic(org.bukkit.Statistic.PLAYER_KILLS);
+ }
+
+ public int getPlayerDeaths(Player player) {
+ return player.getStatistic(org.bukkit.Statistic.DEATHS);
+ }
}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/commands/Ping.java b/src/main/java/io/github/lncvrt/lncvrtbox/commands/Ping.java
new file mode 100644
index 0000000..efd449e
--- /dev/null
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/commands/Ping.java
@@ -0,0 +1,50 @@
+package io.github.lncvrt.lncvrtbox.commands;
+
+import io.github.lncvrt.lncvrtbox.LncvrtBox;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.jetbrains.annotations.NotNull;
+
+import static org.bukkit.ChatColor.*;
+
+public class Ping implements CommandExecutor {
+ private final LncvrtBox plugin;
+
+ public Ping(LncvrtBox plugin) {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+ if (sender instanceof Player player) {
+ String targetName = (args.length > 0 && args[0] != null && !args[0].isEmpty() && !args[0].equals("!")) ? args[0].replaceAll("\\.[^a-zA-Z0-9_]", "").substring(0, Math.min(args[0].replaceAll("[^a-zA-Z0-9_]", "").length(), 16)) : player.getName();
+ Player target = player;
+
+ if (!targetName.equalsIgnoreCase(player.getName())) {
+ target = plugin.getServer().getPlayer(targetName);
+ if (target == null) {
+ player.sendMessage(String.format("%s%s%s is not online!", RED, targetName, GRAY));
+ return true;
+ }
+ }
+
+ targetName = target.getName();
+ int ping = target.getPing();
+ ChatColor color;
+
+ if (ping < 79) {
+ color = GREEN;
+ } else if (ping < 150) {
+ color = YELLOW;
+ } else {
+ color = RED;
+ }
+
+ player.sendMessage(String.format("%s%s%s's ping is: %s%s%sms", RED, targetName, GRAY, color, ping, GRAY));
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockPlaceListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockPlaceListener.java
index 5d534e4..cd87881 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockPlaceListener.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/BlockPlaceListener.java
@@ -1,47 +1,62 @@
package io.github.lncvrt.lncvrtbox.events;
-import net.md_5.bungee.api.chat.ClickEvent;
-import net.md_5.bungee.api.chat.TextComponent;
-import org.bukkit.ChatColor;
+import io.github.lncvrt.lncvrtbox.LncvrtBox;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.event.ClickEvent;
+import net.kyori.adventure.text.format.NamedTextColor;
+import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
-
-import static org.bukkit.ChatColor.*;
+import org.geysermc.cumulus.form.CustomForm;
+import org.geysermc.floodgate.api.player.FloodgatePlayer;
public class BlockPlaceListener implements Listener {
+ private final LncvrtBox plugin;
+
+ public BlockPlaceListener(LncvrtBox plugin) {
+ this.plugin = plugin;
+ }
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) {
if (event.getBlockPlaced().getType() == Material.POLISHED_BLACKSTONE_BUTTON) {
if (event.getItemInHand().hasItemMeta() && event.getItemInHand().getItemMeta().hasDisplayName()) {
- String displayName = ChatColor.stripColor(event.getItemInHand().getItemMeta().getDisplayName());
+ String displayName = event.getItemInHand().getItemMeta().getDisplayName();
if (displayName.equalsIgnoreCase("Coal Fragment")) {
event.setCancelled(true);
}
}
- } else if (event.getBlockPlaced().getType() == Material.FURNACE || event.getBlockPlaced().getType() == Material.FURNACE_MINECART || event.getBlockPlaced().getType() == Material.BLAST_FURNACE) {
+ } else if (event.getBlockPlaced().getType() == Material.FURNACE ||
+ event.getBlockPlaced().getType() == Material.FURNACE_MINECART ||
+ event.getBlockPlaced().getType() == Material.BLAST_FURNACE) {
Player player = event.getPlayer();
- String message = String.format("%s%s[TIP]%s%s If you are trying to smelt iron, gold, etc you can use the Smelter Shop. Click %s[HERE]%s to teleport to the smelter shop! (if you are on bedrock, instead of clicking there run %s/warp smelter%s.", GREEN, BOLD, RESET, GREEN, UNDERLINE, GREEN, UNDERLINE, GREEN);
- TextComponent fullMessage;
- int hereIndex = message.indexOf("[HERE]");
+ if (plugin.geyserApi.isBedrockPlayer(player.getUniqueId())) {
+ FloodgatePlayer floodgatePlayer = plugin.floodgateApi.getPlayer(player.getUniqueId());
+ floodgatePlayer.sendForm(CustomForm.builder()
+ .title("Smelter Shop")
+ .label("If you are trying to smelt iron, gold, etc, you can use the Smelter Shop.")
+ .toggle("Warp to smelter?")
+ .validResultHandler(response -> {
+ if (Boolean.TRUE.equals(response.next())) {
+ player.performCommand("warp smelter");
+ }
+ })
+ .build());
+ } else {
+ Component message = Component.text("[TIP] ", NamedTextColor.GREEN)
+ .decorate(TextDecoration.BOLD)
+ .append(Component.text("If you are trying to smelt iron, gold, etc you can use the Smelter Shop. Click ", NamedTextColor.GREEN))
+ .append(Component.text("[HERE]", NamedTextColor.GREEN)
+ .decorate(TextDecoration.UNDERLINED)
+ .clickEvent(ClickEvent.runCommand("/warp smelter")))
+ .append(Component.text(" to teleport to the smelter shop!", NamedTextColor.GREEN));
- TextComponent clickableHere = new TextComponent("[HERE]");
- clickableHere.setColor(net.md_5.bungee.api.ChatColor.GREEN);
- clickableHere.setUnderlined(true);
- clickableHere.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/warp smelter"));
-
- TextComponent[] components = new TextComponent[] {
- new TextComponent(message.substring(0, hereIndex)),
- clickableHere,
- new TextComponent(message.substring(hereIndex + "[HERE]".length()))
- };
- fullMessage = new TextComponent(components);
-
- player.spigot().sendMessage(fullMessage);
+ player.sendMessage(message);
+ }
}
}
}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java
index ad844c1..aa3e0eb 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java
@@ -1,14 +1,13 @@
package io.github.lncvrt.lncvrtbox.events;
import io.github.lncvrt.lncvrtbox.LncvrtBox;
+import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityResurrectEvent;
-import static org.bukkit.ChatColor.*;
-
public class EntityResurrectListener implements Listener {
private final LncvrtBox plugin;
@@ -25,7 +24,7 @@ public class EntityResurrectListener implements Listener {
return;
}
player.setCooldown(Material.TOTEM_OF_UNDYING, 20 * 5);
- plugin.getServer().broadcastMessage("%s%sLncvrtBox %s%s» %s%s has popped their totem".formatted(GOLD, BOLD, GRAY, BOLD, RESET, player.getName()));
+ plugin.getServer().broadcast(MiniMessage.miniMessage().deserialize("LncvrtBox » " + player.getName() + " has popped their totem"));
}
}
}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerChatListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerChatListener.java
index 23b75f6..9fe0672 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerChatListener.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerChatListener.java
@@ -6,7 +6,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
-import org.bukkit.event.player.PlayerChatEvent;
import java.util.Base64;
@@ -21,40 +20,37 @@ public class PlayerChatListener implements Listener {
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event) {
- event.setMessage(event.getMessage().replace("wlc", "welcome").replace("linqverted", "Lncvrt").replace("linqvert", "Lncvrt"));
-
- if (plugin.chatLocked && !event.getPlayer().hasPermission("chatlock.bypass")) {
- event.setCancelled(true);
- event.getPlayer().sendMessage("Chat is currently locked. Admins can still view your message.");
- for (Player admin : Bukkit.getServer().getOnlinePlayers()) {
- if (admin.hasPermission("chatlock.admin")) {
- admin.sendMessage("%s%s%s tried to say: %s".formatted(GRAY, ITALIC, event.getPlayer().getName(), event.getMessage()));
- }
- }
- }
- }
-
- @EventHandler
- public void onPlayerChat(PlayerChatEvent event) {
- String message = event.getMessage().toLowerCase();
+ String message = event.getMessage().replaceAll("[^a-zA-Z0-9\\p{Punct}\\s]", "").replaceAll("\\s+", " ").trim();
Player player = event.getPlayer();
String[] slurs = {"bmlnZ2Vy", "bmlnZ2E="};
+ event.setMessage(message);
+
+ if (plugin.chatLocked && !player.hasPermission("chatlock.bypass")) {
+ event.setCancelled(true);
+ player.sendMessage("Chat is currently locked. Admins can still view your message.");
+ for (Player admin : Bukkit.getServer().getOnlinePlayers()) {
+ if (admin.hasPermission("chatlock.admin")) {
+ admin.sendMessage("%s%s%s tried to say: %s".formatted(GRAY, ITALIC, player.getName(), event.getMessage()));
+ }
+ }
+ }
+
for (String slur : slurs) {
- if (message.contains(new String(Base64.getDecoder().decode(slur)))) {
+ if (message.toLowerCase().contains(new String(Base64.getDecoder().decode(slur)))) {
player.chat("Oops! I'm now banned because I said a slur.");
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempbanip %s 1w Slurs".formatted(player.getName()));
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempban %s 1w Slurs".formatted(player.getName()));
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "mute %s 1mo Slurs".formatted(player.getName()));
+ plugin.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tempbanip %s 1w Slurs".formatted(player.getName()));
+ plugin.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tempban %s 1w Slurs".formatted(player.getName()));
+ plugin.getServer().dispatchCommand(Bukkit.getConsoleSender(), "mute %s 1mo Slurs".formatted(player.getName()));
event.setCancelled(true);
break;
}
}
- if (message.contains("chillindabox") || (message.contains("minehut.gg") && !(message.contains("lncvrtboxffa.minehut.gg") || message.contains("lncvrtboxes.minehut.gg")))) {
+ if (message.toLowerCase().contains("minehut.gg")) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempbanip %s 1m Advertising".formatted(player.getName()));
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tempban %s 1m Advertising".formatted(player.getName()));
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "mute %s 3m Advertising".formatted(player.getName()));
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerDeathListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerDeathListener.java
index 7656c49..bd4ef80 100644
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerDeathListener.java
+++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerDeathListener.java
@@ -1,17 +1,13 @@
package io.github.lncvrt.lncvrtbox.events;
+import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
-import static org.bukkit.ChatColor.*;
-
public class PlayerDeathListener implements Listener {
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
- String suicideMsg = "";
- if (event.getEntity() == event.getEntity().getKiller()) suicideMsg = "%s (suicide)".formatted(RESET);
-
- event.setDeathMessage("%s%sLncvrtBox %s%s» %s%s%s".formatted(GOLD, BOLD, GRAY, BOLD, RESET, event.getDeathMessage(), suicideMsg));
+ event.deathMessage(MiniMessage.miniMessage().deserialize("LncvrtBox » " + event.getDeathMessage()));
}
}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerElytraBoostListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerElytraBoostListener.java
deleted file mode 100644
index 5c43a76..0000000
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerElytraBoostListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package io.github.lncvrt.lncvrtbox.events;
-
-import com.destroystokyo.paper.event.player.PlayerElytraBoostEvent;
-import com.sk89q.worldedit.bukkit.BukkitAdapter;
-import com.sk89q.worldedit.math.BlockVector3;
-import com.sk89q.worldguard.WorldGuard;
-import com.sk89q.worldguard.protection.ApplicableRegionSet;
-import com.sk89q.worldguard.protection.managers.RegionManager;
-import com.sk89q.worldguard.protection.regions.ProtectedRegion;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-
-import static org.bukkit.ChatColor.RED;
-
-public class PlayerElytraBoostListener implements Listener {
- @EventHandler
- public void onElytraRocketBoost(PlayerElytraBoostEvent event) {
- RegionManager regionManager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(event.getPlayer().getWorld()));
- if (regionManager != null) {
- BlockVector3 location = BlockVector3.at(event.getPlayer().getLocation().getX(), event.getPlayer().getLocation().getY(), event.getPlayer().getLocation().getZ());
- ApplicableRegionSet applicableRegions = regionManager.getApplicableRegions(location);
- for (ProtectedRegion region : applicableRegions) {
- if (region.getId().equalsIgnoreCase("event")) {
- event.setCancelled(true);
- event.getPlayer().setGliding(false);
- event.getPlayer().sendMessage(RED + "Elytras are disabled in events.");
- break;
- }
- }
- }
- }
-}
diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerMoveListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerMoveListener.java
deleted file mode 100644
index 19ebde8..0000000
--- a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerMoveListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.lncvrt.lncvrtbox.events;
-
-import com.sk89q.worldedit.bukkit.BukkitAdapter;
-import com.sk89q.worldedit.math.BlockVector3;
-import com.sk89q.worldguard.WorldGuard;
-import com.sk89q.worldguard.protection.ApplicableRegionSet;
-import com.sk89q.worldguard.protection.managers.RegionManager;
-import com.sk89q.worldguard.protection.regions.ProtectedRegion;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerMoveEvent;
-
-import static org.bukkit.ChatColor.RED;
-
-public class PlayerMoveListener implements Listener {
- @EventHandler
- public void onPlayerMove(PlayerMoveEvent event) {
- if (event.getPlayer().isGliding()) {
- RegionManager regionManager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(event.getPlayer().getWorld()));
- if (regionManager != null) {
- BlockVector3 location = BlockVector3.at(event.getPlayer().getLocation().getX(), event.getPlayer().getLocation().getY(), event.getPlayer().getLocation().getZ());
- ApplicableRegionSet applicableRegions = regionManager.getApplicableRegions(location);
- for (ProtectedRegion region : applicableRegions) {
- if (region.getId().equalsIgnoreCase("event")) {
- event.setCancelled(true);
- event.getPlayer().setGliding(false);
- event.getPlayer().sendMessage(RED + "Elytras are disabled in events.");
- break;
- }
- }
- }
- }
- }
-}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 5e9dbdb..7cd96db 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -7,6 +7,8 @@ depend:
- Essentials
- WorldEdit
- WorldGuard
+ - Geyser-Spigot
+ - floodgate
commands:
autocompress:
description: Auto compressor
@@ -27,6 +29,9 @@ commands:
lockchat:
description: Lockchat
usage: /lockchat
+ ping:
+ description: Shows your ping
+ usage: /ping [player]
rules:
description: Rules
usage: /rules