diff --git a/src/main/java/lnmpro/Commands/AcceptDuelCommand.java b/src/main/java/lnmpro/Commands/AcceptDuelCommand.java index 25230c4..9caba24 100644 --- a/src/main/java/lnmpro/Commands/AcceptDuelCommand.java +++ b/src/main/java/lnmpro/Commands/AcceptDuelCommand.java @@ -16,14 +16,16 @@ import org.bukkit.entity.Player; import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.scheduler.BukkitRunnable; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.title.Title; +import java.time.Duration; -import java.util.Collections; import java.util.List; import java.util.UUID; -import static java.util.Collections.emptyList; import static java.util.Collections.min; public class AcceptDuelCommand implements CommandExecutor, TabCompleter { @@ -50,10 +52,12 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter { int x = 0; String arena = ""; + boolean survival = false; if (gamemode.equals("uhc")) { x = 1000; arena = "football"; + survival = true; player.getInventory().setContents(kitManager.getUhcKit(player).getContents()); enemy.getInventory().setContents(kitManager.getUhcKit(player).getContents()); } else if (gamemode.equals("pot")) { @@ -86,15 +90,18 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter { } else if (gamemode.equals("cart")) { x = 0; arena = ""; + survival = true; } else if (gamemode.equals("diasmp")) { x = 1800; arena = "football"; + survival = true; player.getInventory().setContents(kitManager.getDiaSMPKit(player).getContents()); enemy.getInventory().setContents(kitManager.getDiaSMPKit(player).getContents()); } else if (gamemode.equals("shieldlessuhc")) { x = 0; arena = ""; + survival = true; } World world = Bukkit.getWorld("world"); @@ -129,8 +136,8 @@ public class AcceptDuelCommand implements CommandExecutor, TabCompleter { enemy.setFoodLevel(20); player.setSaturation(5); enemy.setSaturation(5); - player.setGameMode(GameMode.ADVENTURE); - enemy.setGameMode(GameMode.ADVENTURE); + player.setGameMode(survival ? GameMode.SURVIVAL : GameMode.ADVENTURE); + enemy.setGameMode(survival ? GameMode.SURVIVAL : GameMode.ADVENTURE); player.setMetadata("DuelingWith", new FixedMetadataValue(plugin, enemy.getUniqueId())); enemy.setMetadata("DuelingWith", new FixedMetadataValue(plugin, player.getUniqueId())); diff --git a/src/main/java/lnmpro/Commands/EditKitCommand.java b/src/main/java/lnmpro/Commands/EditKitCommand.java new file mode 100644 index 0000000..816cf76 --- /dev/null +++ b/src/main/java/lnmpro/Commands/EditKitCommand.java @@ -0,0 +1,206 @@ +package lnmpro.Commands; + +import lnmpro.Main; +import lnmpro.Utils.Kits; +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.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; + +public class EditKitCommand implements CommandExecutor, TabCompleter { + private final Main plugin; + + public EditKitCommand(Main plugin) { + this.plugin = plugin; + } + + private int getItemSlot(String key, String kit, Player player) { + String path = "kits." + kit + "." + player.getUniqueId() + "." + key; + + if (plugin.getConfig().contains(path)) { + try { + return plugin.getConfig().getInt(path); + } catch (NumberFormatException e) { + plugin.getLogger().warning("Invalid slot number in config for " + path); + } + } + + return -1; + } + + private @NotNull List getItemSlotArray(String key, String kit, Player player) { + String path = "kits." + kit + "." + player.getUniqueId() + "." + key; + + if (plugin.getConfig().contains(path)) { + List slots = plugin.getConfig().getIntegerList(path); + + if (!slots.isEmpty()) { + return slots; + } else { + plugin.getLogger().warning("Invalid or empty slot numbers in config for " + path); + } + } + + return Collections.singletonList(-1); + } + + @Override + public boolean onCommand(@NotNull CommandSender cmds, @NotNull Command command, @NotNull String s, @NotNull String[] args) { + if (cmds.hasPermission("wolfffa.command.editkit")) { + if (cmds instanceof Player player) { + if (args.length > 0) { + Kits kitManager = new Kits(plugin); + Inventory gui = Bukkit.createInventory(null, 27, "Kit Editor"); + + ItemStack saveKit = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); + ItemMeta saveMeta = saveKit.getItemMeta(); + + ItemStack infoItem = new ItemStack(Material.WHITE_STAINED_GLASS_PANE); + ItemMeta infoMeta = infoItem.getItemMeta(); + + ItemStack undoKit = new ItemStack(Material.RED_STAINED_GLASS_PANE); + ItemMeta undoMeta = undoKit.getItemMeta(); + saveMeta.setDisplayName("§aSave Kit"); + saveKit.setItemMeta(saveMeta); + undoMeta.setDisplayName("§cUndo Changes"); + undoKit.setItemMeta(undoMeta); + + gui.setItem(0, saveKit); + gui.setItem(1, saveKit); + gui.setItem(2, saveKit); + gui.setItem(6, undoKit); + gui.setItem(7, undoKit); + gui.setItem(8, undoKit); + gui.setItem(9, saveKit); + gui.setItem(10, saveKit); + gui.setItem(11, saveKit); + gui.setItem(15, undoKit); + gui.setItem(16, undoKit); + gui.setItem(17, undoKit); + gui.setItem(18, saveKit); + gui.setItem(19, saveKit); + gui.setItem(20, saveKit); + gui.setItem(24, undoKit); + gui.setItem(25, undoKit); + gui.setItem(26, undoKit); + Inventory inv = player.getInventory(); + switch (args[0]) { + case "sword": + inv.clear(); + inv.setContents(kitManager.getSwordKit(player).getContents()); + + infoMeta.setDisplayName("§fSword Kit"); + infoItem.setItemMeta(infoMeta); + gui.setItem(3, infoItem); + gui.setItem(4, infoItem); + gui.setItem(5, infoItem); + gui.setItem(12, infoItem); + gui.setItem(13, infoItem); + gui.setItem(14, infoItem); + gui.setItem(21, infoItem); + gui.setItem(22, infoItem); + gui.setItem(23, infoItem); + + player.openInventory(gui); + break; + case "uhc": + inv.clear(); + inv.setContents(kitManager.getUhcKit(player).getContents()); + + infoMeta.setDisplayName("§fUHC Kit"); + infoItem.setItemMeta(infoMeta); + gui.setItem(3, infoItem); + gui.setItem(4, infoItem); + gui.setItem(5, infoItem); + gui.setItem(12, infoItem); + gui.setItem(13, infoItem); + gui.setItem(14, infoItem); + gui.setItem(21, infoItem); + gui.setItem(22, infoItem); + gui.setItem(23, infoItem); + + player.openInventory(gui); + break; + case "mace": + inv.clear(); + inv.setContents(kitManager.getMaceKit(player).getContents()); + + infoMeta.setDisplayName("§fMace Kit"); + infoItem.setItemMeta(infoMeta); + gui.setItem(3, infoItem); + gui.setItem(4, infoItem); + gui.setItem(5, infoItem); + gui.setItem(12, infoItem); + gui.setItem(13, infoItem); + gui.setItem(14, infoItem); + gui.setItem(21, infoItem); + gui.setItem(22, infoItem); + gui.setItem(23, infoItem); + + player.openInventory(gui); + break; + case "axe": + inv.clear(); + inv.setContents(kitManager.getAxeKit(player).getContents()); + + infoMeta.setDisplayName("§fAxe Kit"); + infoItem.setItemMeta(infoMeta); + gui.setItem(3, infoItem); + gui.setItem(4, infoItem); + gui.setItem(5, infoItem); + gui.setItem(12, infoItem); + gui.setItem(13, infoItem); + gui.setItem(14, infoItem); + gui.setItem(21, infoItem); + gui.setItem(22, infoItem); + gui.setItem(23, infoItem); + + player.openInventory(gui); + break; + case "diasmp": + inv.clear(); + inv.setContents(kitManager.getAxeKit(player).getContents()); + + infoMeta.setDisplayName("§fDiamondSmp Kit"); + infoItem.setItemMeta(infoMeta); + gui.setItem(3, infoItem); + gui.setItem(4, infoItem); + gui.setItem(5, infoItem); + gui.setItem(12, infoItem); + gui.setItem(13, infoItem); + gui.setItem(14, infoItem); + gui.setItem(21, infoItem); + gui.setItem(22, infoItem); + gui.setItem(23, infoItem); + + player.openInventory(gui); + break; + default: + player.sendMessage("§cNincs ilyen FFA típus!"); + break; + } + } + } + } + return true; + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender cmds, @NotNull Command command, @NotNull String s, @NotNull String[] args) { + if (args.length == 1) { + return List.of("sword", "uhc", "mace", "axe", "diasmp"); + } + return List.of(); + } +} \ No newline at end of file diff --git a/src/main/java/lnmpro/Listeners/DuelEndListener.java b/src/main/java/lnmpro/Listeners/DuelEndListener.java index c2b3806..1a6730f 100644 --- a/src/main/java/lnmpro/Listeners/DuelEndListener.java +++ b/src/main/java/lnmpro/Listeners/DuelEndListener.java @@ -89,6 +89,12 @@ public class DuelEndListener implements Listener { } }, 60L); + player.removeMetadata("DuelingWith", plugin); + enemy.removeMetadata("DuelingWith", plugin); + player.removeMetadata("ArenaLoc", plugin); + enemy.removeMetadata("ArenaLoc", plugin); + player.removeMetadata("DueledWithGamemode", plugin); + enemy.removeMetadata("DueledWithGamemode", plugin); } } } diff --git a/src/main/java/lnmpro/Listeners/DuelRequestListener.java b/src/main/java/lnmpro/Listeners/DuelRequestListener.java index 6761bee..e9e3433 100644 --- a/src/main/java/lnmpro/Listeners/DuelRequestListener.java +++ b/src/main/java/lnmpro/Listeners/DuelRequestListener.java @@ -75,7 +75,13 @@ public class DuelRequestListener implements Listener { TextComponent info = new TextComponent("§7ℹ"); info.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, - new ComponentBuilder("§fJátékmód: " + ChatColor.stripColor(clickedItem.getItemMeta().getDisplayName().toLowerCase())).create())); + new ComponentBuilder("§7Játékmód: §a" + ChatColor.stripColor(clickedItem.getItemMeta().getDisplayName()) + "\n") + .append("§7Aréna: §aFootball\n") + .append("§7Ellenfél: §e" + player.getName() + "\n") + .append("§7Opciók:\n") + .append("§8- §7Kör: §e1\n") + .append("§8- §7Megfigyelők: §aBEKAPCSOLVA\n") + .create())); TextComponent fullMessage = new TextComponent(); fullMessage.addExtra(accept); diff --git a/src/main/java/lnmpro/Listeners/FreezeListener.java b/src/main/java/lnmpro/Listeners/FreezeListener.java new file mode 100644 index 0000000..a257662 --- /dev/null +++ b/src/main/java/lnmpro/Listeners/FreezeListener.java @@ -0,0 +1,18 @@ +package lnmpro.Listeners; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; + +public class FreezeListener implements Listener { + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + if (player.hasMetadata("Frozen")) { + if (!event.getFrom().toVector().equals(event.getTo().toVector())) { + event.setTo(event.getFrom()); + } + } + } +} diff --git a/src/main/java/lnmpro/Listeners/KitListener.java b/src/main/java/lnmpro/Listeners/KitListener.java index 7c80560..c8be857 100644 --- a/src/main/java/lnmpro/Listeners/KitListener.java +++ b/src/main/java/lnmpro/Listeners/KitListener.java @@ -1,12 +1,21 @@ package lnmpro.Listeners; import lnmpro.Main; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class KitListener implements Listener { @@ -113,4 +122,221 @@ public class KitListener implements Listener { plugin.reloadConfig(); } } + + @EventHandler + public void onInventoryClick(InventoryClickEvent event) { + if (!(event.getWhoClicked() instanceof Player player)) return; + Inventory gui = event.getInventory(); + ItemStack[] inv = player.getInventory().getContents(); + + if (event.getClickedInventory() == event.getView().getTopInventory() && event.getView().title().equals(Component.text("Kit Editor"))) { + event.setCancelled(true); + if ((0 <= event.getSlot() && event.getSlot() <= 2) || (9 <= event.getSlot() && event.getSlot() <= 11) || (18 <= event.getSlot() && event.getSlot() <= 20)) { + List uhclavaSlots = null; + List uhcwaterSlots = null; + List uhcshieldSlots = null; + List boxcartstrenghtSlots = null; + List boxcartspeedSlots = null; + List boxcartfireresistanceSlots = null; + List boxcartcartSlots = null; + List boxcartenderpearlSlots = null; + List macetotemSlots = null; + List maceenderpearlSlots = null; + List macestrengthSlots = null; + List macespeedSlots = null; + List macegoldenappleSlots = null; + List macewindchargeSlots = null; + List diasmpwaterSlots = null; + List diasmpxpSlots = null; + List diasmpstrengthSlots = null; + List diasmpspeedSlots = null; + List diasmpfireresistanceSlots = null; + List diasmpgoldenappleSlots = null; + if (gui.getItem(13).getItemMeta().getDisplayName().equals("§fSword Kit")) { + for (int i = 0; i < inv.length; i++) { + ItemStack item = inv[i]; + + if (item != null) { + if (item.getType() == Material.DIAMOND_SWORD) { + plugin.getConfig().set("kits.sword." + player.getUniqueId() + ".sword", i); + } + } + } + } else if (gui.getItem(13).getItemMeta().getDisplayName().equals("§fUHC Kit")) { + + uhclavaSlots = new ArrayList<>(); + uhcwaterSlots = new ArrayList<>(); + uhcshieldSlots = new ArrayList<>(); + for (int i = 0; i < inv.length; i++) { + ItemStack item = inv[i]; + + if (item != null) { + if (item.getType() == Material.DIAMOND_AXE) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".axe", i); + } else if (item.getType() == Material.DIAMOND_SWORD) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".sword", i); + } else if (item.getType() == Material.LAVA_BUCKET) { + uhclavaSlots.add(i); + } else if (item.getType() == Material.COBWEB) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".cobweb", i); + } else if (item.getType() == Material.COBBLESTONE) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".cobblestone", i); + } else if (item.getType() == Material.GOLDEN_APPLE) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".goldenapple", i); + } else if (item.getType() == Material.WATER_BUCKET) { + uhcwaterSlots.add(i); + } else if (item.getType() == Material.CROSSBOW) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".crossbow", i); + } else if (item.getType() == Material.BOW) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".bow", i); + } else if (item.getType() == Material.ARROW) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".arrow", i); + } else if (item.getType() == Material.OAK_PLANKS) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".planks", i); + } else if (item.getType() == Material.DIAMOND_PICKAXE) { + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".pickaxe", i); + } else if (item.getType() == Material.SHIELD) { + uhcshieldSlots.add(i); + } + } + } + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".lava", uhclavaSlots); + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".water", uhcwaterSlots); + plugin.getConfig().set("kits.uhc." + player.getUniqueId() + ".shield", uhcshieldSlots); + } else if (gui.getItem(13).getItemMeta().getDisplayName().equals("§fMace Kit")) { + macetotemSlots = new ArrayList<>(); + maceenderpearlSlots = new ArrayList<>(); + macestrengthSlots = new ArrayList<>(); + macespeedSlots = new ArrayList<>(); + macegoldenappleSlots = new ArrayList<>(); + macewindchargeSlots = new ArrayList<>(); + + for (int i = 0; i < inv.length; i++) { + ItemStack item = inv[i]; + + if (item != null) { + if (item.getType() == Material.NETHERITE_AXE) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".axe", i); + } else if (item.getType() == Material.NETHERITE_SWORD) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".sword", i); + } else if (item.getType() == Material.ENDER_PEARL) { + maceenderpearlSlots.add(i); + } else if (item.getType() == Material.SPLASH_POTION) { + if (item.getItemMeta().getDisplayName().equals("§rSplash Potion of Strength")) { + macestrengthSlots.add(i); + } else if (item.getItemMeta().getDisplayName().equals("§rSplash Potion of Swiftness")) { + macespeedSlots.add(i); + } + } else if (item.getType() == Material.SHIELD) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".shield", i); + } else if (item.getType() == Material.MACE) { + if (item.getItemMeta().getEnchants().containsKey(Enchantment.DENSITY)) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".density", i); + } else if (item.getItemMeta().getEnchants().containsKey(Enchantment.BREACH)) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".breach", i); + } + } else if (item.getType() == Material.GOLDEN_APPLE) { + macegoldenappleSlots.add(i); + } else if (item.getType() == Material.WIND_CHARGE) { + macewindchargeSlots.add(i); + } else if (item.getType() == Material.POTION) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".jumpboost", i); + } else if (item.getType() == Material.ELYTRA) { + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".elytra", i); + } else if (item.getType() == Material.TOTEM_OF_UNDYING) { + macetotemSlots.add(i); + } + } + } + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".totem", macetotemSlots); + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".enderpearl", maceenderpearlSlots); + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".strength", macestrengthSlots); + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".speed", macespeedSlots); + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".goldenapple", macegoldenappleSlots); + plugin.getConfig().set("kits.mace." + player.getUniqueId() + ".windcharge", macewindchargeSlots); + } else if (gui.getItem(13).getItemMeta().getDisplayName().equals("§fAxe Kit")) { + for (int i = 0; i < inv.length; i++) { + ItemStack item = inv[i]; + + if (item != null) { + if (item.getType() == Material.DIAMOND_AXE) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + "axe.", i); + } else if (item.getType() == Material.DIAMOND_SWORD) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + ".sword", i); + } else if (item.getType() == Material.CROSSBOW) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + ".crossbow", i); + } else if (item.getType() == Material.BOW) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + ".bow", i); + } else if (item.getType() == Material.ARROW) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + ".arrow", i); + } else if (item.getType() == Material.SHIELD) { + plugin.getConfig().set("kits.axe." + player.getUniqueId() + ".shield", i); + } + } + } + } else if (gui.getItem(13).getItemMeta().getDisplayName().equals("§fDiamondSmp Kit")) { + diasmpwaterSlots = new ArrayList<>(); + diasmpxpSlots = new ArrayList<>(); + diasmpstrengthSlots = new ArrayList<>(); + diasmpspeedSlots = new ArrayList<>(); + diasmpfireresistanceSlots = new ArrayList<>(); + diasmpgoldenappleSlots = new ArrayList<>(); + + for (int i = 0; i < inv.length; i++) { + ItemStack item = inv[i]; + + if (item != null) { + if (item.getType() == Material.DIAMOND_AXE) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".axe", i); + } else if (item.getType() == Material.DIAMOND_SWORD) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".sword", i); + } else if (item.getType() == Material.ENDER_PEARL) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".enderpearl", i); + } else if (item.getType() == Material.OAK_LOG) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".log", i); + } else if (item.getType() == Material.WATER_BUCKET) { + diasmpwaterSlots.add(i); + } else if (item.getType() == Material.GOLDEN_APPLE) { + diasmpgoldenappleSlots.add(i); + } else if (item.getType() == Material.COBWEB) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".cobweb", i); + } else if (item.getType() == Material.SPLASH_POTION) { + if (item.getItemMeta().getDisplayName().equals("§rSplash Potion of Strength")) { + diasmpstrengthSlots.add(i); + } else if (item.getItemMeta().getDisplayName().equals("§rSplash Potion of Swiftness")) { + diasmpspeedSlots.add(i); + } else if (item.getItemMeta().getDisplayName().equals("§rSplash Potion of Fire Resistance")) { + diasmpfireresistanceSlots.add(i); + } + } else if (item.getType() == Material.TOTEM_OF_UNDYING) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".totem", i); + } else if (item.getType() == Material.NETHERITE_PICKAXE) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".pickaxe", i); + } else if (item.getType() == Material.EXPERIENCE_BOTTLE) { + diasmpxpSlots.add(i); + } else if (item.getType() == Material.CHORUS_FRUIT) { + plugin.getConfig().set("kits.diasmp." + player.getUniqueId() + ".chorusfruit", i); + } + } + } + } + plugin.saveConfig(); + plugin.reloadConfig(); + player.sendMessage("§aSikeresen elmentetted a kitedet!"); + player.closeInventory(); + + } else if ((6 <= event.getSlot() && event.getSlot() <= 8) || (15 <= event.getSlot() && event.getSlot() <= 17) || (24 <= event.getSlot() && event.getSlot() <= 26)) { + player.closeInventory(); + player.sendMessage("§cA kited nem került mentésre."); + } + } + } + + @EventHandler + public void onInventoryClose(InventoryCloseEvent event) { + if (!(event.getPlayer() instanceof Player player)) return; + if (event.getInventory() == event.getView().getTopInventory() && event.getView().title().equals(Component.text("Kit Editor"))) { + player.getInventory().clear(); + } + } } \ No newline at end of file diff --git a/src/main/java/lnmpro/Main.java b/src/main/java/lnmpro/Main.java index e647a29..b52104f 100644 --- a/src/main/java/lnmpro/Main.java +++ b/src/main/java/lnmpro/Main.java @@ -1,5 +1,6 @@ package lnmpro; +import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import lnmpro.Commands.*; import lnmpro.Listeners.*; @@ -20,6 +21,7 @@ public final class Main extends JavaPlugin { getCommand("duel").setExecutor(new DuelCommand(this)); getCommand("acceptduel").setExecutor(new AcceptDuelCommand(this)); getCommand("denyduel").setExecutor(new DenyDuelCommand(this)); + getCommand("editkit").setExecutor(new EditKitCommand(this)); getServer().getPluginManager().registerEvents(new DuelRequestListener(this), this); getServer().getPluginManager().registerEvents(new KitListener(this), this); diff --git a/src/main/java/lnmpro/Utils/Kits.java b/src/main/java/lnmpro/Utils/Kits.java index 6b5e03c..d45b9be 100644 --- a/src/main/java/lnmpro/Utils/Kits.java +++ b/src/main/java/lnmpro/Utils/Kits.java @@ -175,10 +175,12 @@ public class Kits { PotionMeta strengthmeta = (PotionMeta) strength.getItemMeta(); strengthmeta.addCustomEffect(new PotionEffect(PotionEffectType.STRENGTH, 1800, 1), true); + strengthmeta.setDisplayName("§rSplash Potion of Strength"); strengthmeta.setMainEffect(PotionEffectType.STRENGTH); strength.setItemMeta(strengthmeta); PotionMeta speedmeta = (PotionMeta) speed.getItemMeta(); speedmeta.addCustomEffect(new PotionEffect(PotionEffectType.SPEED, 1800, 1), true); + speedmeta.setDisplayName("§rSplash Potion of Speed"); speedmeta.setMainEffect(PotionEffectType.SPEED); speed.setItemMeta(speedmeta); @@ -304,13 +306,16 @@ public class Kits { PotionMeta fireresistancemeta = (PotionMeta) fireresistance.getItemMeta(); fireresistancemeta.addCustomEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 9600, 0), true); fireresistancemeta.setMainEffect(PotionEffectType.FIRE_RESISTANCE); + fireresistancemeta.setDisplayName("§rSplash Potion of Fire Resistance"); fireresistance.setItemMeta(fireresistancemeta); PotionMeta strengthmeta = (PotionMeta) strength.getItemMeta(); strengthmeta.addCustomEffect(new PotionEffect(PotionEffectType.STRENGTH, 1800, 1), true); + strengthmeta.setDisplayName("§rSplash Potion of Strength"); strengthmeta.setMainEffect(PotionEffectType.STRENGTH); strength.setItemMeta(strengthmeta); PotionMeta speedmeta = (PotionMeta) speed.getItemMeta(); speedmeta.addCustomEffect(new PotionEffect(PotionEffectType.SPEED, 9600, 0), true); + speedmeta.setDisplayName("§rSplash Potion of Speed"); speedmeta.setMainEffect(PotionEffectType.SPEED); speed.setItemMeta(speedmeta); diff --git a/src/main/java/lnmpro/Utils/SchematicManager.java b/src/main/java/lnmpro/Utils/SchematicManager.java index 648a490..492745a 100644 --- a/src/main/java/lnmpro/Utils/SchematicManager.java +++ b/src/main/java/lnmpro/Utils/SchematicManager.java @@ -15,12 +15,18 @@ import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.session.ClipboardHolder; import com.sk89q.worldedit.world.block.BlockTypes; import lnmpro.Main; +import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.scheduler.BukkitRunnable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; public class SchematicManager { private final Main plugin; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ee0c49e..eeaac16 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -6,4 +6,5 @@ authors: [ LnmPro, JGJ52 ] commands: duel: acceptduel: - denyduel: \ No newline at end of file + denyduel: + editkit: \ No newline at end of file diff --git a/target/InsaneDuels-1.0-SNAPSHOT.jar b/target/InsaneDuels-1.0-SNAPSHOT.jar index e954216..a47774a 100644 Binary files a/target/InsaneDuels-1.0-SNAPSHOT.jar and b/target/InsaneDuels-1.0-SNAPSHOT.jar differ diff --git a/target/classes/lnmpro/Commands/AcceptDuelCommand$1.class b/target/classes/lnmpro/Commands/AcceptDuelCommand$1.class new file mode 100644 index 0000000..93a6bb5 Binary files /dev/null and b/target/classes/lnmpro/Commands/AcceptDuelCommand$1.class differ diff --git a/target/classes/lnmpro/Commands/AcceptDuelCommand.class b/target/classes/lnmpro/Commands/AcceptDuelCommand.class index 20375fa..49da4b4 100644 Binary files a/target/classes/lnmpro/Commands/AcceptDuelCommand.class and b/target/classes/lnmpro/Commands/AcceptDuelCommand.class differ diff --git a/target/classes/lnmpro/Commands/DuelCommand.class b/target/classes/lnmpro/Commands/DuelCommand.class new file mode 100644 index 0000000..2f1f78e Binary files /dev/null and b/target/classes/lnmpro/Commands/DuelCommand.class differ diff --git a/target/classes/lnmpro/Listeners/DuelEndListener.class b/target/classes/lnmpro/Listeners/DuelEndListener.class new file mode 100644 index 0000000..d82841f Binary files /dev/null and b/target/classes/lnmpro/Listeners/DuelEndListener.class differ diff --git a/target/classes/lnmpro/Listeners/FreezeListener.class b/target/classes/lnmpro/Listeners/FreezeListener.class new file mode 100644 index 0000000..2b87814 Binary files /dev/null and b/target/classes/lnmpro/Listeners/FreezeListener.class differ diff --git a/target/classes/lnmpro/Main.class b/target/classes/lnmpro/Main.class index 59a2a0e..fe2d6b6 100644 Binary files a/target/classes/lnmpro/Main.class and b/target/classes/lnmpro/Main.class differ diff --git a/target/classes/lnmpro/Utils/Kits.class b/target/classes/lnmpro/Utils/Kits.class index 2d3c7e2..b519406 100644 Binary files a/target/classes/lnmpro/Utils/Kits.class and b/target/classes/lnmpro/Utils/Kits.class differ diff --git a/target/classes/lnmpro/Utils/SchematicManager.class b/target/classes/lnmpro/Utils/SchematicManager.class new file mode 100644 index 0000000..f318b59 Binary files /dev/null and b/target/classes/lnmpro/Utils/SchematicManager.class differ diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index ee0c49e..eeaac16 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -6,4 +6,5 @@ authors: [ LnmPro, JGJ52 ] commands: duel: acceptduel: - denyduel: \ No newline at end of file + denyduel: + editkit: \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 920cb13..e288228 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -3,3 +3,4 @@ lnmpro/Commands/AcceptDuelCommand$1.class lnmpro/Commands/DuelCommand.class lnmpro/Listeners/DuelEndListener.class lnmpro/Utils/SchematicManager.class +lnmpro/Commands/EditKitCommand.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index afb9a05..071410e 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,6 +1,7 @@ /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/AcceptDuelCommand.java /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DenyDuelCommand.java /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/DuelCommand.java +/home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Commands/EditKitCommand.java /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelEndListener.java /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/DuelRequestListener.java /home/jgj52/IdeaProjects/InsaneDuels/src/main/java/lnmpro/Listeners/FreezeListener.java diff --git a/target/original-InsaneDuels-1.0-SNAPSHOT.jar b/target/original-InsaneDuels-1.0-SNAPSHOT.jar index e954216..a47774a 100644 Binary files a/target/original-InsaneDuels-1.0-SNAPSHOT.jar and b/target/original-InsaneDuels-1.0-SNAPSHOT.jar differ