Rename to GalaxyBoxPvP
This commit is contained in:
222
src/main/java/xyz/lncvrt/galaxyboxpvp/GalaxyBoxPvP.java
Normal file
222
src/main/java/xyz/lncvrt/galaxyboxpvp/GalaxyBoxPvP.java
Normal file
@@ -0,0 +1,222 @@
|
||||
package xyz.lncvrt.galaxyboxpvp;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
import xyz.lncvrt.galaxyboxpvp.commands.Autocompress;
|
||||
import xyz.lncvrt.galaxyboxpvp.commands.Sky;
|
||||
import xyz.lncvrt.galaxyboxpvp.events.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public final class GalaxyBoxPvP extends JavaPlugin implements Listener, TabExecutor {
|
||||
public final Map<UUID, Boolean> autoCompressStatus = new HashMap<>();
|
||||
public String serverRules;
|
||||
private Essentials essentials;
|
||||
private final PlaceholderAPIExpansion placeholderAPIExpansion = new PlaceholderAPIExpansion();
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
Plugin essentialsPlugin = Bukkit.getServer().getPluginManager().getPlugin("Essentials");
|
||||
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. Disabling plugin");
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
}
|
||||
|
||||
if (placeholderAPIExpansion.register()) {
|
||||
getLogger().info("Successfully registered PlaceholderAPIExpansion!");
|
||||
} else {
|
||||
getLogger().warning("Failed to register PlaceholderAPIExpansion. Disabling plugin.");
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
|
||||
registerEvents();
|
||||
registerCommands();
|
||||
|
||||
loadAutoCompressStatus();
|
||||
loadServerRules();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
placeholderAPIExpansion.unregister();
|
||||
saveAutoCompressStatus();
|
||||
}
|
||||
|
||||
private void registerEvents() {
|
||||
getServer().getPluginManager().registerEvents(new BlockBreakListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new BlockPlaceListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new CraftItemListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new EntityPickupItemListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new FurnaceBurnListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new FurnaceSmeltListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerDropItemListener(this), this);
|
||||
getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), 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);
|
||||
}
|
||||
|
||||
private void registerCommands() {
|
||||
Objects.requireNonNull(getCommand("autocompress")).setExecutor(new Autocompress(this));
|
||||
Objects.requireNonNull(getCommand("sky")).setExecutor(new Sky());
|
||||
}
|
||||
|
||||
public boolean isRestrictedMaterial(Material material) {
|
||||
return material == Material.IRON_ORE || material == Material.RAW_IRON || material == Material.GOLD_ORE || material == Material.RAW_GOLD || material == Material.ANCIENT_DEBRIS || material == Material.SAND;
|
||||
}
|
||||
|
||||
public void convertInventoryItemsPrep(Player player, UUID playerId) {
|
||||
if (autoCompressStatus.getOrDefault(playerId, false)) {
|
||||
convertInventoryItems(player, Material.DIAMOND, Material.DIAMOND_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.LAPIS_LAZULI, Material.LAPIS_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.REDSTONE, Material.REDSTONE_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.EMERALD, Material.EMERALD_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.RAW_GOLD, Material.RAW_GOLD_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.GOLD_INGOT, Material.GOLD_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.GOLD_NUGGET, Material.GOLD_INGOT, 9, 1);
|
||||
convertInventoryItems(player, Material.IRON_ORE, Material.IRON_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.RAW_IRON, Material.RAW_IRON_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.COAL, Material.COAL_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.RAW_COPPER, Material.COPPER_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.COPPER_INGOT, Material.COPPER_BLOCK, 9, 1);
|
||||
convertInventoryItems(player, Material.QUARTZ, Material.QUARTZ_BLOCK, 4, 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void convertInventoryItems(Player player, Material fromMaterial, Material toMaterial, int fromCount, int toCount) {
|
||||
ItemStack[] inventoryContents = player.getInventory().getContents();
|
||||
|
||||
Bukkit.getScheduler().runTask(this, () -> {
|
||||
for (int i = 0; i < inventoryContents.length; i++) {
|
||||
ItemStack item = inventoryContents[i];
|
||||
|
||||
if (item != null && item.getType() == fromMaterial && item.getAmount() >= fromCount) {
|
||||
int stacksToConvert = item.getAmount() / fromCount;
|
||||
int remainingItems = item.getAmount() % fromCount;
|
||||
|
||||
if (stacksToConvert > 0) {
|
||||
item.setAmount(remainingItems);
|
||||
player.getInventory().setItem(i, item);
|
||||
|
||||
ItemStack toMaterialStack = new ItemStack(toMaterial, stacksToConvert * toCount);
|
||||
HashMap<Integer, ItemStack> remaining = player.getInventory().addItem(toMaterialStack);
|
||||
|
||||
if (!remaining.isEmpty()) {
|
||||
for (ItemStack remainingItem : remaining.values()) {
|
||||
player.getWorld().dropItem(player.getLocation(), remainingItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mergeInventoryStacks(player.getInventory(), fromMaterial);
|
||||
});
|
||||
}
|
||||
|
||||
private void mergeInventoryStacks(Inventory inventory, Material material) {
|
||||
int totalAmount = 0;
|
||||
|
||||
for (ItemStack item : inventory.getContents()) {
|
||||
if (item != null && item.getType() == material) {
|
||||
totalAmount += item.getAmount();
|
||||
item.setAmount(0);
|
||||
}
|
||||
}
|
||||
|
||||
int fullStacks = totalAmount / material.getMaxStackSize();
|
||||
int remainingItems = totalAmount % material.getMaxStackSize();
|
||||
|
||||
for (int i = 0; i < fullStacks; i++) {
|
||||
inventory.addItem(new ItemStack(material, material.getMaxStackSize()));
|
||||
}
|
||||
if (remainingItems > 0) {
|
||||
inventory.addItem(new ItemStack(material, remainingItems));
|
||||
}
|
||||
}
|
||||
|
||||
public void loadServerRules() {
|
||||
File rulesFile = new File(getDataFolder(), "rules.txt");
|
||||
|
||||
if (!rulesFile.exists()) {
|
||||
getLogger().log(Level.WARNING, "rules.txt file not found in plugin folder.");
|
||||
return;
|
||||
}
|
||||
|
||||
StringBuilder rulesContent = new StringBuilder();
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(rulesFile))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
rulesContent.append(line).append("\n");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
getLogger().log(Level.SEVERE, "Error reading rules.txt file.", e);
|
||||
}
|
||||
|
||||
serverRules = rulesContent.toString();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void saveAutoCompressStatus() {
|
||||
File file = new File(getDataFolder(), "autocompress.json");
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
|
||||
for (Map.Entry<UUID, Boolean> entry : autoCompressStatus.entrySet()) {
|
||||
jsonObject.put(entry.getKey().toString(), entry.getValue());
|
||||
}
|
||||
|
||||
try (FileWriter writer = new FileWriter(file)) {
|
||||
writer.write(jsonObject.toJSONString());
|
||||
} catch (IOException e) {
|
||||
getLogger().log(Level.SEVERE, "Error saving statuses to autocompress.json", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadAutoCompressStatus() {
|
||||
File file = new File(getDataFolder(), "autocompress.json");
|
||||
if (!file.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try (FileReader reader = new FileReader(file)) {
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject jsonObject = (JSONObject) parser.parse(reader);
|
||||
|
||||
for (Object key : jsonObject.keySet()) {
|
||||
UUID playerId = UUID.fromString((String) key);
|
||||
Boolean status = (Boolean) jsonObject.get(key);
|
||||
autoCompressStatus.put(playerId, status);
|
||||
}
|
||||
} catch (IOException | ParseException e) {
|
||||
getLogger().log(Level.SEVERE, "Error loading statuses from autocompress.json", e);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isMuted(Player player) {
|
||||
User user = essentials.getUser(player);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.commands;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
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 java.util.UUID;
|
||||
|
||||
import static org.bukkit.ChatColor.GREEN;
|
||||
import static org.bukkit.ChatColor.RED;
|
||||
|
||||
public record Autocompress(GalaxyBoxPvP plugin) implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (!(sender instanceof Player player)) {
|
||||
sender.sendMessage(RED + "This command can only be executed by a player.");
|
||||
return true;
|
||||
}
|
||||
|
||||
UUID playerId = player.getUniqueId();
|
||||
|
||||
boolean currentStatus = plugin.autoCompressStatus.getOrDefault(playerId, false);
|
||||
plugin.autoCompressStatus.put(playerId, !currentStatus);
|
||||
|
||||
if (!currentStatus) {
|
||||
player.sendMessage(GREEN + "Auto-compress enabled.");
|
||||
} else {
|
||||
player.sendMessage(RED + "Auto-compress disabled.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
18
src/main/java/xyz/lncvrt/galaxyboxpvp/commands/Sky.java
Normal file
18
src/main/java/xyz/lncvrt/galaxyboxpvp/commands/Sky.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.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 Sky implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if (sender instanceof Player player) {
|
||||
player.performCommand("warp sky");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
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;
|
||||
|
||||
public class BlockPlaceListener implements Listener {
|
||||
@EventHandler
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
if (event.getBlockPlaced().getType() == Material.POLISHED_BLACKSTONE_BUTTON) {
|
||||
if (event.getItemInHand().hasItemMeta() && event.getItemInHand().getItemMeta().hasDisplayName()) {
|
||||
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) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
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));
|
||||
|
||||
player.sendMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.CraftItemEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class CraftItemListener implements Listener {
|
||||
@EventHandler
|
||||
public void onCraftItem(CraftItemEvent event) {
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() == Material.DIAMOND_PICKAXE) {
|
||||
ItemStack pickaxe = event.getCurrentItem();
|
||||
ItemMeta meta = pickaxe.getItemMeta();
|
||||
|
||||
if (meta != null) {
|
||||
meta.setUnbreakable(true);
|
||||
pickaxe.setItemMeta(meta);
|
||||
event.setCurrentItem(pickaxe);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||
|
||||
public class EntityPickupItemListener implements Listener {
|
||||
private final GalaxyBoxPvP plugin;
|
||||
|
||||
public EntityPickupItemListener(GalaxyBoxPvP plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onItemPickup(EntityPickupItemEvent event) {
|
||||
if (event.getEntity() instanceof Player player) {
|
||||
plugin.convertInventoryItemsPrep(player, player.getUniqueId());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Furnace;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.FurnaceBurnEvent;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class FurnaceBurnListener implements Listener {
|
||||
private final GalaxyBoxPvP plugin;
|
||||
|
||||
public FurnaceBurnListener(GalaxyBoxPvP plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFurnaceBurn(FurnaceBurnEvent event) {
|
||||
Furnace furnace = (Furnace) event.getBlock().getState();
|
||||
Material smelting = Objects.requireNonNull(furnace.getInventory().getSmelting()).getType();
|
||||
|
||||
if (plugin.isRestrictedMaterial(smelting)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.FurnaceSmeltEvent;
|
||||
|
||||
public class FurnaceSmeltListener implements Listener {
|
||||
private final GalaxyBoxPvP plugin;
|
||||
|
||||
public FurnaceSmeltListener(GalaxyBoxPvP plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFurnaceSmelt(FurnaceSmeltEvent event) {
|
||||
Material smelted = event.getSource().getType();
|
||||
|
||||
if (plugin.isRestrictedMaterial(smelted)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
|
||||
public class PlayerDropItemListener implements Listener {
|
||||
private final GalaxyBoxPvP plugin;
|
||||
|
||||
public PlayerDropItemListener(GalaxyBoxPvP plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onItemDrop(PlayerDropItemEvent event) {
|
||||
plugin.convertInventoryItemsPrep(event.getPlayer(), event.getPlayer().getUniqueId());
|
||||
}
|
||||
}
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.PrepareAnvilEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class PrepareAnvilListener implements Listener {
|
||||
@EventHandler
|
||||
public void onPrepareAnvil(PrepareAnvilEvent event) {
|
||||
ItemStack left = event.getInventory().getItem(0);
|
||||
ItemStack right = event.getInventory().getItem(1);
|
||||
|
||||
if (left != null && (left.getType() == Material.DIAMOND_PICKAXE || left.getType() == Material.NETHERITE_PICKAXE)) {
|
||||
event.setResult(null);
|
||||
}
|
||||
if (right != null && (right.getType() == Material.DIAMOND_PICKAXE || right.getType() == Material.NETHERITE_PICKAXE)) {
|
||||
event.setResult(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.enchantment.PrepareItemEnchantEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class PrepareItemEnchantListener implements Listener {
|
||||
@EventHandler
|
||||
public void onPrepareItemEnchant(PrepareItemEnchantEvent event) {
|
||||
ItemStack item = event.getItem();
|
||||
if (item.getType() == Material.DIAMOND_PICKAXE || item.getType() == Material.NETHERITE_PICKAXE) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
public class ProjectileHitListener implements Listener {
|
||||
@EventHandler
|
||||
public void onProjectileHit(ProjectileHitEvent event) {
|
||||
Projectile projectile = event.getEntity();
|
||||
if (projectile.getType() == EntityType.WITHER_SKULL) {
|
||||
ProjectileSource shooter = projectile.getShooter();
|
||||
if (shooter instanceof org.bukkit.entity.Wither) {
|
||||
event.getEntity().remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package xyz.lncvrt.galaxyboxpvp.events;
|
||||
|
||||
import xyz.lncvrt.galaxyboxpvp.GalaxyBoxPvP;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
|
||||
public class SignChangeListener implements Listener {
|
||||
private final GalaxyBoxPvP plugin;
|
||||
|
||||
public SignChangeListener(GalaxyBoxPvP plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onSignPlace(SignChangeEvent event) {
|
||||
if (plugin.isMuted(event.getPlayer())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user