Rename to GalaxyBoxPvP
This commit is contained in:
12
pom.xml
12
pom.xml
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>io.github.lncvrt</groupId>
|
<groupId>xyz.lncvrt</groupId>
|
||||||
<artifactId>LncvrtBox</artifactId>
|
<artifactId>GalaxyBoxPvP</artifactId>
|
||||||
<name>LncvrtBox</name>
|
<name>GalaxyBoxPvP</name>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
<resources>
|
||||||
@@ -73,13 +73,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.papermc.paper</groupId>
|
<groupId>io.papermc.paper</groupId>
|
||||||
<artifactId>paper-api</artifactId>
|
<artifactId>paper-api</artifactId>
|
||||||
<version>1.20.6-R0.1-SNAPSHOT</version>
|
<version>1.21.4-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.essentialsx</groupId>
|
<groupId>net.essentialsx</groupId>
|
||||||
<artifactId>EssentialsX</artifactId>
|
<artifactId>EssentialsX</artifactId>
|
||||||
<version>2.20.1</version>
|
<version>2.21.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sk89q.worldguard</groupId>
|
<groupId>com.sk89q.worldguard</groupId>
|
||||||
<artifactId>worldguard-bukkit</artifactId>
|
<artifactId>worldguard-bukkit</artifactId>
|
||||||
<version>7.1.0-SNAPSHOT</version>
|
<version>7.0.13</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -1,179 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox;
|
|
||||||
|
|
||||||
import com.earth2me.essentials.Essentials;
|
|
||||||
import com.earth2me.essentials.User;
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.text.NumberFormat;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import static org.bukkit.ChatColor.*;
|
|
||||||
|
|
||||||
public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
|
|
||||||
|
|
||||||
private Essentials essentials;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull String getIdentifier() {
|
|
||||||
return "lncvrtbox";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull String getAuthor() {
|
|
||||||
return "Lncvrt";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull String getVersion() {
|
|
||||||
return "1.0.0";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean persist() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canRegister() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean register() {
|
|
||||||
Plugin essentialsPlugin = Bukkit.getServer().getPluginManager().getPlugin("Essentials");
|
|
||||||
if (essentialsPlugin instanceof Essentials) {
|
|
||||||
this.essentials = (Essentials) essentialsPlugin;
|
|
||||||
return super.register();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @Nullable String onPlaceholderRequest(Player player, @NotNull String identifier) {
|
|
||||||
if (essentials == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int decimalPlaces = 1;
|
|
||||||
if (identifier.matches("(health|hearts)_\\d+")) {
|
|
||||||
try {
|
|
||||||
decimalPlaces = Integer.parseInt(identifier.split("_")[1]);
|
|
||||||
} catch (NumberFormatException | ArrayIndexOutOfBoundsException ignored) {
|
|
||||||
}
|
|
||||||
identifier = identifier.split("_")[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (identifier) {
|
|
||||||
case "afk" -> {
|
|
||||||
int afkCount = 0;
|
|
||||||
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
|
|
||||||
User user = essentials.getUser(p);
|
|
||||||
if (user != null && user.isAfk()) {
|
|
||||||
afkCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return String.valueOf(afkCount);
|
|
||||||
}
|
|
||||||
case "afk_staff" -> {
|
|
||||||
int staffAfkCount = 0;
|
|
||||||
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
|
|
||||||
if (p.hasPermission("lncvrtbox.staff") && isAfk(p)) {
|
|
||||||
staffAfkCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return String.valueOf(staffAfkCount);
|
|
||||||
}
|
|
||||||
case "team" -> {
|
|
||||||
String team = PlaceholderAPI.setPlaceholders(player, "%betterteams_displayname%");
|
|
||||||
if (team.isEmpty()) {
|
|
||||||
return "";
|
|
||||||
} else {
|
|
||||||
return "%s[%s%s%s%s]%s ".formatted(GRAY, RESET, team, RESET, GRAY, RESET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case "health" -> {
|
|
||||||
double health = player.getHealth();
|
|
||||||
String format = decimalPlaces > 0 ? "#." + repeat("0", decimalPlaces) : "#";
|
|
||||||
return new DecimalFormat(format).format(health);
|
|
||||||
}
|
|
||||||
case "hearts" -> {
|
|
||||||
double hearts = player.getHealth() / 2.0;
|
|
||||||
String format = decimalPlaces > 0 ? "#." + repeat("0", decimalPlaces) : "#";
|
|
||||||
return new DecimalFormat(format).format(hearts);
|
|
||||||
}
|
|
||||||
case "total_joins" -> {
|
|
||||||
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
|
|
||||||
return numberFormat.format(Bukkit.getOfflinePlayers().length);
|
|
||||||
}
|
|
||||||
case "total_joins_formatted" -> {
|
|
||||||
return formatCompact(Bukkit.getOfflinePlayers().length);
|
|
||||||
}
|
|
||||||
case "kdr" -> {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String repeat(String str, int count) {
|
|
||||||
return String.valueOf(str).repeat(Math.max(0, count));
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isAfk(Player player) {
|
|
||||||
User user = essentials.getUser(player);
|
|
||||||
return user != null && user.isAfk();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String formatCompact(int number) {
|
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
|
||||||
if (number >= 1_000_000) {
|
|
||||||
return decimalFormat.format(number / 1_000_000.0) + "M";
|
|
||||||
} else if (number >= 1_000) {
|
|
||||||
return decimalFormat.format(number / 1_000.0) + "k";
|
|
||||||
} else {
|
|
||||||
return String.valueOf(number);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String formatTime(long seconds) {
|
|
||||||
long days = seconds / 86400;
|
|
||||||
seconds %= 86400;
|
|
||||||
long hours = seconds / 3600;
|
|
||||||
seconds %= 3600;
|
|
||||||
long minutes = seconds / 60;
|
|
||||||
seconds %= 60;
|
|
||||||
|
|
||||||
StringBuilder formattedTime = new StringBuilder();
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
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.RED;
|
|
||||||
|
|
||||||
public class Clearchat implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
if (sender instanceof Player player) {
|
|
||||||
if (!player.hasPermission("lncvrtbox.clearchat")) {
|
|
||||||
player.sendMessage("%sYou do not have permission to use this command.".formatted(RED));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < 1000; i++) {
|
|
||||||
Bukkit.broadcastMessage("");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
|
||||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
|
||||||
import com.sk89q.worldedit.function.pattern.RandomPattern;
|
|
||||||
import com.sk89q.worldedit.math.BlockVector3;
|
|
||||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Fix implements CommandExecutor {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
|
|
||||||
public Fix(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
//TODO: make selectionwall4 (front wall)
|
|
||||||
if (plugin.fixRanTooOften) {
|
|
||||||
sender.sendMessage("/fix was ran within the past 5 seconds!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
plugin.fixRanTooOften = true;
|
|
||||||
plugin.getServer().getScheduler().runTaskLater(plugin, () -> plugin.fixRanTooOften = false, 20 * 5);
|
|
||||||
|
|
||||||
com.sk89q.worldedit.world.World world = BukkitAdapter.adapt(Objects.requireNonNull(Bukkit.getWorld("world")));
|
|
||||||
CuboidRegion selectionground1 = new CuboidRegion(world, BlockVector3.at(131, 100, 105), BlockVector3.at(-67, 100, -123));
|
|
||||||
CuboidRegion selectionwall1 = new CuboidRegion(world, BlockVector3.at(-66, 139, 105), BlockVector3.at(130, 101, 105));
|
|
||||||
CuboidRegion selectionwall2 = new CuboidRegion(world, BlockVector3.at(-67, 139, 104), BlockVector3.at(-67, 101, -122));
|
|
||||||
CuboidRegion selectionwall3 = new CuboidRegion(world, BlockVector3.at(-67, 139, -123), BlockVector3.at(130, 101, -123));
|
|
||||||
|
|
||||||
try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1)) {
|
|
||||||
RandomPattern pat = new RandomPattern();
|
|
||||||
BlockState deepslate_tiles = BukkitAdapter.adapt(Material.DEEPSLATE_TILES.createBlockData());
|
|
||||||
BlockState deepslate_bricks = BukkitAdapter.adapt(Material.DEEPSLATE_BRICKS.createBlockData());
|
|
||||||
pat.add(deepslate_tiles, 0.5);
|
|
||||||
pat.add(deepslate_bricks, 0.5);
|
|
||||||
|
|
||||||
editSession.setBlocks(selectionground1, pat);
|
|
||||||
} catch (MaxChangedBlocksException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1)) {
|
|
||||||
RandomPattern pat = new RandomPattern();
|
|
||||||
BlockState gold_block = BukkitAdapter.adapt(Material.GOLD_BLOCK.createBlockData());
|
|
||||||
BlockState raw_gold_block = BukkitAdapter.adapt(Material.RAW_GOLD_BLOCK.createBlockData());
|
|
||||||
BlockState yellow_concrete = BukkitAdapter.adapt(Material.YELLOW_CONCRETE.createBlockData());
|
|
||||||
pat.add(gold_block, 0.33333333333);
|
|
||||||
pat.add(raw_gold_block, 0.33333333333);
|
|
||||||
pat.add(yellow_concrete, 0.33333333333);
|
|
||||||
|
|
||||||
editSession.setBlocks(selectionwall1, pat);
|
|
||||||
} catch (MaxChangedBlocksException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1)) {
|
|
||||||
RandomPattern pat = new RandomPattern();
|
|
||||||
BlockState lapis_block = BukkitAdapter.adapt(Material.LAPIS_BLOCK.createBlockData());
|
|
||||||
BlockState blue_concrete_powder = BukkitAdapter.adapt(Material.BLUE_CONCRETE_POWDER.createBlockData());
|
|
||||||
BlockState blue_concrete = BukkitAdapter.adapt(Material.BLUE_CONCRETE.createBlockData());
|
|
||||||
pat.add(lapis_block, 0.33333333333);
|
|
||||||
pat.add(blue_concrete_powder, 0.33333333333);
|
|
||||||
pat.add(blue_concrete, 0.33333333333);
|
|
||||||
|
|
||||||
editSession.setBlocks(selectionwall2, pat);
|
|
||||||
} catch (MaxChangedBlocksException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
try (EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1)) {
|
|
||||||
RandomPattern pat = new RandomPattern();
|
|
||||||
BlockState lime_concrete = BukkitAdapter.adapt(Material.LIME_CONCRETE.createBlockData());
|
|
||||||
BlockState melon = BukkitAdapter.adapt(Material.MELON.createBlockData());
|
|
||||||
BlockState green_glazed_terracotta = BukkitAdapter.adapt(Material.GREEN_GLAZED_TERRACOTTA.createBlockData());
|
|
||||||
pat.add(lime_concrete, 0.33333333333);
|
|
||||||
pat.add(melon, 0.33333333333);
|
|
||||||
pat.add(green_glazed_terracotta, 0.33333333333);
|
|
||||||
|
|
||||||
editSession.setBlocks(selectionwall3, pat);
|
|
||||||
} catch (MaxChangedBlocksException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
sender.sendMessage("fixed!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
public class Link implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
if (sender instanceof Player player) {
|
|
||||||
player.performCommand("discord link");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public record Lockchat(LncvrtBox plugin) implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
if (sender.hasPermission("chatlock.lock")) {
|
|
||||||
plugin.chatLocked = !plugin.chatLocked;
|
|
||||||
sender.sendMessage("Chat " + (plugin.chatLocked ? "locked." : "unlocked."));
|
|
||||||
} else {
|
|
||||||
sender.sendMessage("You do not have permission to use this command.");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import static org.bukkit.ChatColor.RED;
|
|
||||||
import static org.bukkit.ChatColor.translateAlternateColorCodes;
|
|
||||||
|
|
||||||
public record Rules(LncvrtBox plugin) implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
if (plugin.serverRules != null && !plugin.serverRules.isEmpty()) {
|
|
||||||
sender.sendMessage(translateAlternateColorCodes('&', plugin.serverRules));
|
|
||||||
} else {
|
|
||||||
sender.sendMessage("%sServer rules are currently unavailable.".formatted(RED));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
public class Unlink implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
|
||||||
if (sender instanceof Player player) {
|
|
||||||
player.performCommand("discord link");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.ExperienceOrb;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class BlockBreakListener implements Listener {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
private final Random random = new Random();
|
|
||||||
|
|
||||||
public BlockBreakListener(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
plugin.convertInventoryItemsPrep(player, player.getUniqueId());
|
|
||||||
if (event.getBlock().getType() == Material.SPAWNER) {
|
|
||||||
int exp = random.nextInt(29) + 15;
|
|
||||||
|
|
||||||
Location blockLocation = event.getBlock().getLocation();
|
|
||||||
ExperienceOrb orb = blockLocation.getWorld().spawn(blockLocation, ExperienceOrb.class);
|
|
||||||
orb.setExperience(exp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
|
||||||
|
|
||||||
import static org.bukkit.ChatColor.*;
|
|
||||||
|
|
||||||
public class EntityDamageListener implements Listener {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
|
|
||||||
public EntityDamageListener(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
private void onPlayerDamage(EntityDamageEvent event) {
|
|
||||||
if (event.getEntity() instanceof Player player) {
|
|
||||||
if (plugin.isAfk(player)) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
if (event instanceof EntityDamageByEntityEvent damageEvent) {
|
|
||||||
if (damageEvent.getDamager() instanceof Player attacker) {
|
|
||||||
attacker.sendMessage("%s%sLncvrtBox %s%s» %sYou can't attack AFK players!".formatted(GOLD, BOLD, GRAY, BOLD, RESET));
|
|
||||||
player.sendMessage("%s%sLncvrtBox %s%s» %s%s tried to attack you while you were AFK!".formatted(GOLD, BOLD, GRAY, BOLD, RESET, attacker.getName()));
|
|
||||||
if (attacker.getNoDamageTicks() <= 10) {
|
|
||||||
attacker.damage(0.0001);
|
|
||||||
attacker.setVelocity(attacker.getLocation().toVector().subtract(player.getLocation().toVector()).normalize().setY(0.5).multiply(0.5));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
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;
|
|
||||||
|
|
||||||
public class EntityResurrectListener implements Listener {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
|
|
||||||
public EntityResurrectListener(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onEntityResurrect(EntityResurrectEvent event) {
|
|
||||||
if (event.getEntity() instanceof Player player && !event.isCancelled()) {
|
|
||||||
if (player.getInventory().getItemInMainHand().getType() == Material.TOTEM_OF_UNDYING || player.getInventory().getItemInOffHand().getType() == Material.TOTEM_OF_UNDYING) {
|
|
||||||
if (player.getCooldown(Material.TOTEM_OF_UNDYING) != 0) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
player.setCooldown(Material.TOTEM_OF_UNDYING, 20 * 5);
|
|
||||||
plugin.getServer().broadcast(MiniMessage.miniMessage().deserialize("<b><gradient:#FFAA00:#FFFF55>LncvrtBox</gradient></b> <gray>»</gray> " + player.getName() + " has popped their totem"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
import static org.bukkit.ChatColor.*;
|
|
||||||
|
|
||||||
public class PlayerChatListener implements Listener {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
|
|
||||||
public PlayerChatListener(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerChat(AsyncPlayerChatEvent event) {
|
|
||||||
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.toLowerCase().contains(new String(Base64.getDecoder().decode(slur)))) {
|
|
||||||
player.chat("Oops! I'm now banned because I said a slur.");
|
|
||||||
|
|
||||||
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.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()));
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
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;
|
|
||||||
|
|
||||||
public class PlayerDeathListener implements Listener {
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerDeath(PlayerDeathEvent event) {
|
|
||||||
event.deathMessage(MiniMessage.miniMessage().deserialize("<b><gradient:#FFAA00:#FFFF55>LncvrtBox</gradient></b> <gray>»</gray> " + event.getDeathMessage()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
public class PlayerItemConsumeListener implements Listener {
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerItemConsume(PlayerItemConsumeEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
ItemStack item = event.getItem();
|
|
||||||
|
|
||||||
if (item.getType() == Material.GOLDEN_APPLE || item.getType() == Material.ENCHANTED_GOLDEN_APPLE) {
|
|
||||||
player.setCooldown(Material.GOLDEN_APPLE, 20 * 8);
|
|
||||||
player.setCooldown(Material.ENCHANTED_GOLDEN_APPLE, 20 * 16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.bukkit.ChatColor.*;
|
|
||||||
|
|
||||||
public class PlayerJoinListener implements Listener {
|
|
||||||
private final LncvrtBox plugin;
|
|
||||||
|
|
||||||
public PlayerJoinListener(LncvrtBox plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
UUID playerId = player.getUniqueId();
|
|
||||||
|
|
||||||
if (!plugin.autoCompressStatus.containsKey(playerId)) {
|
|
||||||
plugin.autoCompressStatus.put(playerId, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
player.getInventory().remove(Material.WITHER_SKELETON_SKULL);
|
|
||||||
|
|
||||||
player.sendMessage("%s%sWe added %s%s%s/autocompress%s%s%s! Use that to compress diamonds into diamond blocks and more!".formatted(AQUA, BOLD, RESET, AQUA, UNDERLINE, RESET, AQUA, BOLD));
|
|
||||||
player.sendMessage("%s%sYou can also do %s%s%s/settag%s%s%s to customize your suffix/tag (issues related to that have been fixed)".formatted(GREEN, BOLD, RESET, GREEN, UNDERLINE, RESET, GREEN, BOLD));
|
|
||||||
player.sendMessage("%s%sAlso make sure to join the Discord by doing %s%s%s/discord%s%s%s!".formatted(BLUE, BOLD, RESET, BLUE, UNDERLINE, RESET, BLUE, BOLD));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.world.PortalCreateEvent;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class PortalCreateListener implements Listener {
|
|
||||||
@EventHandler
|
|
||||||
public void onPortalCreate(PortalCreateEvent event) {
|
|
||||||
World.Environment env = event.getWorld().getEnvironment();
|
|
||||||
if (env == World.Environment.NORMAL && event.getReason() != PortalCreateEvent.CreateReason.FIRE) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
||||||
if (Objects.equals(event.getEntity(), player)) {
|
|
||||||
Location spawnLocation = Objects.requireNonNull(Bukkit.getServer().getWorld("world")).getSpawnLocation();
|
|
||||||
player.teleport(spawnLocation);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +1,35 @@
|
|||||||
package io.github.lncvrt.lncvrtbox;
|
package xyz.lncvrt.galaxyboxpvp;
|
||||||
|
|
||||||
import com.earth2me.essentials.Essentials;
|
import com.earth2me.essentials.Essentials;
|
||||||
import io.github.lncvrt.lncvrtbox.commands.*;
|
import com.earth2me.essentials.User;
|
||||||
import io.github.lncvrt.lncvrtbox.events.*;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.*;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
import org.json.simple.parser.JSONParser;
|
import org.json.simple.parser.JSONParser;
|
||||||
import org.json.simple.parser.ParseException;
|
import org.json.simple.parser.ParseException;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import xyz.lncvrt.galaxyboxpvp.commands.Autocompress;
|
||||||
|
import xyz.lncvrt.galaxyboxpvp.commands.Sky;
|
||||||
import org.bukkit.Bukkit;
|
import xyz.lncvrt.galaxyboxpvp.events.*;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor {
|
public final class GalaxyBoxPvP extends JavaPlugin implements Listener, TabExecutor {
|
||||||
public final Map<UUID, Boolean> autoCompressStatus = new HashMap<>();
|
public final Map<UUID, Boolean> autoCompressStatus = new HashMap<>();
|
||||||
public String serverRules;
|
public String serverRules;
|
||||||
public boolean chatLocked = false;
|
|
||||||
private Essentials essentials;
|
private Essentials essentials;
|
||||||
public boolean fixRanTooOften = false;
|
private final PlaceholderAPIExpansion placeholderAPIExpansion = new PlaceholderAPIExpansion();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -40,7 +43,7 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
|
|||||||
getServer().getPluginManager().disablePlugin(this);
|
getServer().getPluginManager().disablePlugin(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new PlaceholderAPIExpansion().register()) {
|
if (placeholderAPIExpansion.register()) {
|
||||||
getLogger().info("Successfully registered PlaceholderAPIExpansion!");
|
getLogger().info("Successfully registered PlaceholderAPIExpansion!");
|
||||||
} else {
|
} else {
|
||||||
getLogger().warning("Failed to register PlaceholderAPIExpansion. Disabling plugin.");
|
getLogger().warning("Failed to register PlaceholderAPIExpansion. Disabling plugin.");
|
||||||
@@ -57,24 +60,19 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
|
placeholderAPIExpansion.unregister();
|
||||||
saveAutoCompressStatus();
|
saveAutoCompressStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerEvents() {
|
private void registerEvents() {
|
||||||
getServer().getPluginManager().registerEvents(new BlockPlaceListener(), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new BlockBreakListener(this), this);
|
getServer().getPluginManager().registerEvents(new BlockBreakListener(this), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new BlockPlaceListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new CraftItemListener(), this);
|
getServer().getPluginManager().registerEvents(new CraftItemListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new EntityDamageListener(this), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new EntityPickupItemListener(this), this);
|
getServer().getPluginManager().registerEvents(new EntityPickupItemListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new EntityResurrectListener(this), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new FurnaceBurnListener(this), this);
|
getServer().getPluginManager().registerEvents(new FurnaceBurnListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new FurnaceSmeltListener(this), this);
|
getServer().getPluginManager().registerEvents(new FurnaceSmeltListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new PlayerChatListener(this), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new PlayerDeathListener(), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new PlayerDropItemListener(this), this);
|
getServer().getPluginManager().registerEvents(new PlayerDropItemListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new PlayerItemConsumeListener(), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
|
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new PortalCreateListener(), this);
|
|
||||||
getServer().getPluginManager().registerEvents(new PrepareAnvilListener(), this);
|
getServer().getPluginManager().registerEvents(new PrepareAnvilListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new PrepareItemEnchantListener(), this);
|
getServer().getPluginManager().registerEvents(new PrepareItemEnchantListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new ProjectileHitListener(), this);
|
getServer().getPluginManager().registerEvents(new ProjectileHitListener(), this);
|
||||||
@@ -84,14 +82,7 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
|
|||||||
|
|
||||||
private void registerCommands() {
|
private void registerCommands() {
|
||||||
Objects.requireNonNull(getCommand("autocompress")).setExecutor(new Autocompress(this));
|
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("sky")).setExecutor(new Sky());
|
||||||
Objects.requireNonNull(getCommand("unlink")).setExecutor(new Unlink());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRestrictedMaterial(Material material) {
|
public boolean isRestrictedMaterial(Material material) {
|
||||||
@@ -224,13 +215,8 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAfk(Player player) {
|
|
||||||
com.earth2me.essentials.User user = essentials.getUser(player);
|
|
||||||
return user.isAfk();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isMuted(Player player) {
|
public boolean isMuted(Player player) {
|
||||||
com.earth2me.essentials.User user = essentials.getUser(player);
|
User user = essentials.getUser(player);
|
||||||
return user.isMuted();
|
return user.isMuted();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package xyz.lncvrt.galaxyboxpvp;
|
||||||
|
|
||||||
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
import org.bukkit.Statistic;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public final class PlaceholderAPIExpansion extends PlaceholderExpansion {
|
||||||
|
@Override
|
||||||
|
public @NotNull String getIdentifier() {
|
||||||
|
return "galaxyboxpvp";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getAuthor() {
|
||||||
|
return "Lncvrt";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getVersion() {
|
||||||
|
return "1.0.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean persist() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canRegister() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String onPlaceholderRequest(Player player, @NotNull String identifier) {
|
||||||
|
switch (identifier) {
|
||||||
|
case "kills":
|
||||||
|
return String.valueOf(player.getStatistic(Statistic.PLAYER_KILLS));
|
||||||
|
case "deaths":
|
||||||
|
return String.valueOf(player.getStatistic(Statistic.DEATHS));
|
||||||
|
case "kdr":
|
||||||
|
int kills = player.getStatistic(Statistic.PLAYER_KILLS);
|
||||||
|
int deaths = player.getStatistic(Statistic.DEATHS);
|
||||||
|
return deaths == 0 ? String.valueOf(kills) : String.format("%.1f", (double) kills / deaths);
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
package xyz.lncvrt.galaxyboxpvp.commands;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -12,7 +12,7 @@ import java.util.UUID;
|
|||||||
import static org.bukkit.ChatColor.GREEN;
|
import static org.bukkit.ChatColor.GREEN;
|
||||||
import static org.bukkit.ChatColor.RED;
|
import static org.bukkit.ChatColor.RED;
|
||||||
|
|
||||||
public record Autocompress(LncvrtBox plugin) implements CommandExecutor {
|
public record Autocompress(GalaxyBoxPvP plugin) implements CommandExecutor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.commands;
|
package xyz.lncvrt.galaxyboxpvp.commands;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
|
||||||
|
public class BlockBreakListener implements Listener {
|
||||||
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
|
public BlockBreakListener(GalaxyBoxPvP plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
plugin.convertInventoryItemsPrep(player, player.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.event.ClickEvent;
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@@ -8,9 +8,9 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.EntityPickupItemEvent;
|
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||||
|
|
||||||
public class EntityPickupItemListener implements Listener {
|
public class EntityPickupItemListener implements Listener {
|
||||||
private final LncvrtBox plugin;
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
public EntityPickupItemListener(LncvrtBox plugin) {
|
public EntityPickupItemListener(GalaxyBoxPvP plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Furnace;
|
import org.bukkit.block.Furnace;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -10,9 +10,9 @@ import org.bukkit.event.inventory.FurnaceBurnEvent;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class FurnaceBurnListener implements Listener {
|
public class FurnaceBurnListener implements Listener {
|
||||||
private final LncvrtBox plugin;
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
public FurnaceBurnListener(LncvrtBox plugin) {
|
public FurnaceBurnListener(GalaxyBoxPvP plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
||||||
|
|
||||||
public class FurnaceSmeltListener implements Listener {
|
public class FurnaceSmeltListener implements Listener {
|
||||||
private final LncvrtBox plugin;
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
public FurnaceSmeltListener(LncvrtBox plugin) {
|
public FurnaceSmeltListener(GalaxyBoxPvP plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
|
|
||||||
public class PlayerDropItemListener implements Listener {
|
public class PlayerDropItemListener implements Listener {
|
||||||
private final LncvrtBox plugin;
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
public PlayerDropItemListener(LncvrtBox plugin) {
|
public PlayerDropItemListener(GalaxyBoxPvP plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.bukkit.ChatColor.GREEN;
|
||||||
|
|
||||||
|
public class PlayerJoinListener implements Listener {
|
||||||
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
|
public PlayerJoinListener(GalaxyBoxPvP plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
UUID playerId = player.getUniqueId();
|
||||||
|
|
||||||
|
if (!plugin.autoCompressStatus.containsKey(playerId)) {
|
||||||
|
plugin.autoCompressStatus.put(playerId, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.sendMessage("%sWelcome to LncvrtBox, %s! This is a PvP arena gamemode that was originally called LncvrtBox, and is almost a year old! We reset the server for GalaxyNetwork and a fresh start".formatted(GREEN, player.getName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package io.github.lncvrt.lncvrtbox.events;
|
package xyz.lncvrt.galaxyboxpvp.events;
|
||||||
|
|
||||||
import io.github.lncvrt.lncvrtbox.LncvrtBox;
|
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.SignChangeEvent;
|
import org.bukkit.event.block.SignChangeEvent;
|
||||||
|
|
||||||
public class SignChangeListener implements Listener {
|
public class SignChangeListener implements Listener {
|
||||||
private final LncvrtBox plugin;
|
private final GalaxyBoxPvP plugin;
|
||||||
|
|
||||||
public SignChangeListener(LncvrtBox plugin) {
|
public SignChangeListener(GalaxyBoxPvP plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
name: LncvrtBox
|
name: GalaxyBoxPvP
|
||||||
version: '${version}'
|
version: '${version}'
|
||||||
main: io.github.lncvrt.lncvrtbox.LncvrtBox
|
main: xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP
|
||||||
api-version: '1.20'
|
api-version: '1.21'
|
||||||
depend:
|
depend:
|
||||||
- PlaceholderAPI
|
- PlaceholderAPI
|
||||||
- Essentials
|
- Essentials
|
||||||
@@ -11,31 +11,6 @@ commands:
|
|||||||
autocompress:
|
autocompress:
|
||||||
description: Auto compressor
|
description: Auto compressor
|
||||||
usage: /autocompress
|
usage: /autocompress
|
||||||
clearchat:
|
|
||||||
description: Clears chat
|
|
||||||
usage: /clearchat
|
|
||||||
aliases:
|
|
||||||
- cc
|
|
||||||
permission: lncvrtbox.clearchat
|
|
||||||
fix:
|
|
||||||
description: fix
|
|
||||||
permission: lncvrtbox.admin
|
|
||||||
usage: /fix
|
|
||||||
link:
|
|
||||||
description: Links your discord
|
|
||||||
usage: /link
|
|
||||||
lockchat:
|
|
||||||
description: Lockchat
|
|
||||||
usage: /lockchat
|
|
||||||
ping:
|
|
||||||
description: Shows your ping
|
|
||||||
usage: /ping [player]
|
|
||||||
rules:
|
|
||||||
description: Rules
|
|
||||||
usage: /rules
|
|
||||||
sky:
|
sky:
|
||||||
description: Teleports you to sky world
|
description: Teleports you to sky world
|
||||||
usage: /sky
|
usage: /sky
|
||||||
unlink:
|
|
||||||
description: Unlinks your discord
|
|
||||||
usage: /unlink
|
|
||||||
Reference in New Issue
Block a user