diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..1b34c4d --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/webServers.xml b/.idea/webServers.xml new file mode 100644 index 0000000..f008a06 --- /dev/null +++ b/.idea/webServers.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/io/github/officereso/InventoryItem.java b/src/main/java/io/github/officereso/InventoryItem.java index f1e1c9c..62c79b0 100644 --- a/src/main/java/io/github/officereso/InventoryItem.java +++ b/src/main/java/io/github/officereso/InventoryItem.java @@ -1,6 +1,7 @@ package io.github.officereso; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Nullable; public class InventoryItem { public ItemStack itemStack; @@ -15,6 +16,7 @@ public class InventoryItem { return itemStack; } + @Nullable public Integer getInvPosition() { return invPosition; } diff --git a/src/main/java/io/github/officereso/Kit.java b/src/main/java/io/github/officereso/Kit.java index f2d4b9e..0450ce8 100644 --- a/src/main/java/io/github/officereso/Kit.java +++ b/src/main/java/io/github/officereso/Kit.java @@ -1,5 +1,6 @@ package io.github.officereso; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; @@ -12,11 +13,11 @@ import java.util.List; public class Kit { private final String name; - private List inventoryItemList; + private final List inventoryItemList; private int cost; - private int viewPosition; - private String lore; - private Type type; + private final int viewPosition; + private final List lore; + private final Type type; /** @@ -26,12 +27,20 @@ public class Kit { * @param viewPosition Where the kit will show up in the kit selection inventory. * Must be between 0 and 26. */ - public Kit(String name, List inventoryItemList, int cost, int viewPosition, String lore, Type type) { - this.name = name; + public Kit(String name, List inventoryItemList, int cost, int viewPosition, List lore, Type type) { + this.name = ChatColor.translateAlternateColorCodes('&', name); this.inventoryItemList = inventoryItemList; this.cost = cost; this.viewPosition = viewPosition; - this.lore = lore; + List _lore = new ArrayList<>(); + if (lore == null) { + this.lore = null; + } else { + for (String item : lore) { + _lore.add(ChatColor.translateAlternateColorCodes('&', item)); + } + this.lore = _lore; + } this.type = type; } @@ -61,7 +70,7 @@ public class Kit { return viewPosition; } - public String getLore() { + public List getLore() { return lore; } diff --git a/src/main/java/io/github/officereso/Map.java b/src/main/java/io/github/officereso/Map.java new file mode 100644 index 0000000..cd2b5d5 --- /dev/null +++ b/src/main/java/io/github/officereso/Map.java @@ -0,0 +1,58 @@ +package io.github.officereso; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.util.*; + +public class Map { + public List locations; + public String mapName; + + public Map(List stringLocations, String mapName) { + List locations = new ArrayList<>(); + for (String stringLocation : stringLocations) { + String[] split = stringLocation.split(" "); + World world = Bukkit.getWorld(split[0]); + locations.add(new Location(world, Double.parseDouble(split[1]), Double.parseDouble(split[2]), Double.parseDouble(split[3]))); + } + this.locations = locations; + this.mapName = mapName; + } + + public Location getSpawnLocation() { + TreeMap spawns = new TreeMap<>(); + List players = new ArrayList<>(); + for (Entity entity : Objects.requireNonNull(locations.get(0).getWorld()).getEntities()) { + if (entity instanceof Player) { + players.add((Player) entity); + } + } + for (Location location : locations) { + int distance = Integer.MAX_VALUE; + for (Player player : players) { + if (distance >= player.getLocation().distance(location)) { + distance = (int) player.getLocation().distance(location); + } + } + if (distance > 400) { + distance = Integer.MAX_VALUE; + } + while (spawns.get(distance) != null) { + distance--; + } + spawns.put(distance, location); + } + int amount = (int) (locations.size() * .8); + for (int i = 0; i <= amount; i++) { + spawns.remove(spawns.firstEntry().getKey()); + } + Random generator = new Random(); + Object[] values = spawns.values().toArray(); + Object randomValue = values[generator.nextInt(values.length)]; + return (Location) randomValue; + } +} diff --git a/src/main/java/io/github/officereso/PlayerSelectionWrapper.java b/src/main/java/io/github/officereso/PlayerSelectionWrapper.java index 048fbb9..6b5fe24 100644 --- a/src/main/java/io/github/officereso/PlayerSelectionWrapper.java +++ b/src/main/java/io/github/officereso/PlayerSelectionWrapper.java @@ -47,41 +47,87 @@ public class PlayerSelectionWrapper { return selectedPotions; } - public HashMap getGreenSlots() { + public HashMap getSelectedSlots() { HashMap slots = new HashMap<>(); - if (selectedKit != null) { + if (selectedKit != null) slots.put(selectedKit.getViewPosition(), 1); - } - if (selectedHelmet != null) { + if (selectedHelmet != null) slots.put(selectedHelmet.getViewPosition(), 1); - } - if (selectedChestplate != null) { + if (selectedChestplate != null) slots.put(selectedChestplate.getViewPosition(), 1); - } - if (selectedLeggings != null) { + if (selectedLeggings != null) slots.put(selectedLeggings.getViewPosition(), 1); - } - if (selectedBoots != null) { + if (selectedBoots != null) slots.put(selectedBoots.getViewPosition(), 1); + for (Map.Entry entryKit : selectedPotions.entrySet()) { + if (entryKit.getValue() == null) + continue; + slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue()); } - if (selectedPotions != null) { - for (Map.Entry entryKit : selectedPotions.entrySet()) { - if (entryKit.getValue() == null) - continue; - slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue()); - } - } - if (selectedAdditions != null) { - for (Map.Entry entryKit : selectedAdditions.entrySet()) { - if (entryKit.getValue() == null) - continue; - slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue()); - } + for (Map.Entry entryKit : selectedAdditions.entrySet()) { + if (entryKit.getValue() == null) + continue; + slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue()); } return slots; } + public void fillInventory() { + player.getInventory().clear(); + HashMap allKits = new HashMap<>(); + allKits.put(selectedKit, 1); + allKits.put(selectedHelmet, 1); + allKits.put(selectedChestplate, 1); + allKits.put(selectedLeggings, 1); + allKits.put(selectedBoots, 1); + for (Map.Entry entryKit : selectedPotions.entrySet()) { + allKits.put(entryKit.getKey(), entryKit.getValue()); + } + for (Map.Entry entryKit : selectedAdditions.entrySet()) { + allKits.put(entryKit.getKey(), entryKit.getValue()); + } + + for (Map.Entry entryKit : allKits.entrySet()) { + if (entryKit.getKey() == null) { + continue; + } + for (InventoryItem item : entryKit.getKey().getInventoryItemList()) { + if (entryKit.getKey().getType() == Kit.Type.HELMET) { + player.getInventory().setHelmet(item.getItemStack()); + continue; + } + if (entryKit.getKey().getType() == Kit.Type.CHESTPLATE) { + player.getInventory().setChestplate(item.getItemStack()); + continue; + } + if (entryKit.getKey().getType() == Kit.Type.LEGGINGS) { + player.getInventory().setLeggings(item.getItemStack()); + continue; + } + if (entryKit.getKey().getType() == Kit.Type.BOOTS) { + player.getInventory().setBoots(item.getItemStack()); + continue; + } + if (item.getInvPosition() == null) { + player.getInventory().addItem(item.getItemStack()); + continue; + } + player.getInventory().setItem(item.getInvPosition(), item.getItemStack()); + } + } + } + + public void clean() { + selectedKit = null; + selectedHelmet = null; + selectedChestplate = null; + selectedLeggings = null; + selectedBoots = null; + selectedPotions = new HashMap<>(); + selectedAdditions = new HashMap<>(); + } + public void setSelectedAdditions(HashMap selectedAdditions) { this.selectedAdditions = selectedAdditions; } @@ -89,7 +135,7 @@ public class PlayerSelectionWrapper { public void addAdditions(Kit kit, int amount) { selectedAdditions.putIfAbsent(kit, 0); if (selectedAdditions.get(kit) + amount <= 0) { - selectedAdditions.put(kit, null); + selectedAdditions.remove(kit); return; } selectedAdditions.put(kit, selectedAdditions.get(kit) + amount); @@ -114,7 +160,7 @@ public class PlayerSelectionWrapper { public void addPotions(Kit kit, int amount) { selectedPotions.putIfAbsent(kit, 0); if (selectedPotions.get(kit) + amount <= 0) { - selectedPotions.put(kit, null); + selectedPotions.remove(kit); return; } selectedPotions.put(kit, selectedPotions.get(kit) + amount); @@ -127,4 +173,25 @@ public class PlayerSelectionWrapper { public void setSelectedKit(Kit selectedKit) { this.selectedKit = selectedKit; } + + public int getTotalXpCost() { + int cost = 0; + if (selectedKit != null) + cost += selectedKit.getCost(); + if (selectedHelmet != null) + cost += selectedHelmet.getCost(); + if (selectedChestplate != null) + cost += selectedChestplate.getCost(); + if (selectedLeggings != null) + cost += selectedLeggings.getCost(); + if (selectedBoots != null) + cost += selectedBoots.getCost(); + for (Map.Entry entryKit : selectedPotions.entrySet()) { + cost += entryKit.getKey().getCost() * entryKit.getValue(); + } + for (Map.Entry entryKit : selectedAdditions.entrySet()) { + cost += entryKit.getKey().getCost() * entryKit.getValue(); + } + return cost; + } } diff --git a/src/main/java/io/github/officereso/pvp.java b/src/main/java/io/github/officereso/pvp.java index ad5b824..2d42422 100644 --- a/src/main/java/io/github/officereso/pvp.java +++ b/src/main/java/io/github/officereso/pvp.java @@ -1,15 +1,14 @@ package io.github.officereso; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.World; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; @@ -30,11 +29,14 @@ import java.util.Map; public class pvp extends JavaPlugin implements Listener { private final FileConfiguration config = this.getConfig(); - private HashMap kits = configToKit(); + private HashMap kits; + private HashMap defaultKits = new HashMap<>(); private HashMap signMenus = new HashMap<>(); private HashMap selectedKits = new HashMap<>(); - Block signBlock; - + private List maps; + private io.github.officereso.Map enabledMap; + Location signBlock; + private boolean giveSteak; @Override public void onEnable() { @@ -51,93 +53,182 @@ public class pvp extends JavaPlugin implements Listener { @EventHandler public void onClick(PlayerInteractEvent event) { - - Menu menu; - Player player = event.getPlayer(); - if (signMenus.get(player) == null) { - signMenus.put(player, ChestMenu.builder(6).title("PVP Selection Menu").build()); - menu = signMenus.get(player); - - PlayerSelectionWrapper selectionWrapper; - if (selectedKits.get(player) == null) { // Gets the selectionWrapper - selectionWrapper = new PlayerSelectionWrapper(player); // for the current player. - selectedKits.put(player, selectionWrapper); // Makes one if doesnt exist. - } else { - selectionWrapper = selectedKits.get(player); - } - - for (Map.Entry entryKit : kits.entrySet()) { - Kit kit = entryKit.getValue(); - int slotPos = entryKit.getKey(); - Slot slot = menu.getSlot(slotPos); - slot.setItem(kit.getInventoryItemList().get(0).getItemStack()); - slotFunction(slot, kit, selectionWrapper, menu); - } - } else { - menu = signMenus.get(player); + if (event.getClickedBlock() == null) { + return; + } + if (event.getClickedBlock().getLocation().equals(signBlock)) { + Menu menu; + Player player = event.getPlayer(); + if (signMenus.get(player) == null) { + signMenus.put(player, ChestMenu.builder(6).title("PVP Selection Menu").build()); + menu = signMenus.get(player); + + PlayerSelectionWrapper selectionWrapper; + if (selectedKits.get(player) == null) { // Gets the selectionWrapper + selectionWrapper = new PlayerSelectionWrapper(player); // for the current player. + selectedKits.put(player, selectionWrapper); // Makes one if doesnt exist. + } else { + selectionWrapper = selectedKits.get(player); + } + + for (Map.Entry entryKit : kits.entrySet()) { + Kit kit = entryKit.getValue(); + int slotPos = entryKit.getKey(); + Slot slot = menu.getSlot(slotPos); + ItemStack itemStack = kit.getInventoryItemList().get(0).getItemStack(); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName(kit.getName()); + itemMeta.setLore(kit.getLore()); + itemStack.setItemMeta(itemMeta); + slot.setItem(kit.getInventoryItemList().get(0).getItemStack()); + slotFunction(slot, kit, selectionWrapper, menu); + } + Slot slot = menu.getSlot(53); + ItemStack itemStack = new ItemStack(Material.COMPARATOR); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&2Go!")); + itemStack.setItemMeta(itemMeta); + slot.setItem(itemStack); + slot.setClickHandler((ignore, info) -> { + selectionWrapper.fillInventory(); + if (giveSteak) { + player.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 64)); + } + for (Map.Entry entryKit : defaultKits.entrySet()) { + for (InventoryItem item : entryKit.getValue().getInventoryItemList()) { + switch (entryKit.getValue().getType()) { + case HELMET: + player.getInventory().setHelmet(item.getItemStack()); + continue; + + case CHESTPLATE: + player.getInventory().setChestplate(item.getItemStack()); + continue; + + case LEGGINGS: + player.getInventory().setLeggings(item.getItemStack()); + continue; + + case BOOTS: + player.getInventory().setBoots(item.getItemStack()); + continue; + } + if (item.getInvPosition() == null) { + player.getInventory().addItem(item.itemStack); + continue; + } + player.getInventory().setItem(item.getInvPosition(), item.getItemStack()); + } + } + player.setLevel(player.getLevel() - selectionWrapper.getTotalXpCost()); + selectionWrapper.clean(); + player.teleport(enabledMap.getSpawnLocation()); + }); + } else { + menu = signMenus.get(player); + } + menu.open(player); } - menu.open(player); } public void slotFunction(Slot slot, Kit kit, PlayerSelectionWrapper selectionWrapper, Menu menu) { slot.setClickHandler((player, info) -> { Kit.Type type = kit.getType(); - if (type == Kit.Type.KIT) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.setSelectedKit(kit); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.setSelectedKit(null); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.HELMET) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.setSelectedHelmet(kit); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.setSelectedHelmet(null); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.CHESTPLATE) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.setSelectedChestplate(kit); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.setSelectedChestplate(null); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.LEGGINGS) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.setSelectedLeggings(kit); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.setSelectedLeggings(null); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.BOOTS) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.setSelectedBoots(kit); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.setSelectedBoots(null); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.POTION) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.addPotions(kit, 1); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.addPotions(kit, -1); - updateMenu(selectionWrapper, menu); - } - } else if (type == Kit.Type.ADDITIONAL) { - if (info.getClickType() == ClickType.LEFT) { - selectionWrapper.addAdditions(kit, 1); - updateMenu(selectionWrapper, menu); - } else if (info.getClickType() == ClickType.RIGHT) { - selectionWrapper.addAdditions(kit, -1); - updateMenu(selectionWrapper, menu); - } + int playerLevel = player.getLevel(); + switch (type) { + + case KIT: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.setSelectedKit(kit); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.setSelectedKit(null); + updateMenu(selectionWrapper, menu); + break; + } + case HELMET: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.setSelectedHelmet(kit); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.setSelectedHelmet(null); + updateMenu(selectionWrapper, menu); + break; + } + case CHESTPLATE: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.setSelectedChestplate(kit); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.setSelectedChestplate(null); + updateMenu(selectionWrapper, menu); + break; + } + case LEGGINGS: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.setSelectedLeggings(kit); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.setSelectedLeggings(null); + updateMenu(selectionWrapper, menu); + break; + } + case BOOTS: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.setSelectedBoots(kit); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.setSelectedBoots(null); + updateMenu(selectionWrapper, menu); + break; + } + case POTION: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.addPotions(kit, 1); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.addPotions(kit, -1); + updateMenu(selectionWrapper, menu); + break; + } + case ADDITIONAL: + switch (info.getClickType()) { + case LEFT: + if (playerLevel >= (kit.getCost() + selectionWrapper.getTotalXpCost())) { + selectionWrapper.addAdditions(kit, 1); + updateMenu(selectionWrapper, menu); + } else player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1f, 1f); + break; + case RIGHT: + selectionWrapper.addAdditions(kit, -1); + updateMenu(selectionWrapper, menu); + + break; + } } }); } @@ -147,8 +238,8 @@ public class pvp extends JavaPlugin implements Listener { Kit updateKit = entryKit.getValue(); int slotPos = entryKit.getKey(); Slot updateSlot = menu.getSlot(slotPos); - if (selectionWrapper.getGreenSlots().get(slotPos) != null) { - updateSlot.setItem(new ItemStack(Material.GREEN_WOOL, selectionWrapper.getGreenSlots().get(slotPos))); + if (selectionWrapper.getSelectedSlots().get(slotPos) != null) { + updateSlot.setItem(new ItemStack(Material.GREEN_WOOL, selectionWrapper.getSelectedSlots().get(slotPos))); } else { updateSlot.setItem(updateKit.getInventoryItemList().get(0).getItemStack()); } @@ -156,10 +247,21 @@ public class pvp extends JavaPlugin implements Listener { } public void load() { - World world = Bukkit.getWorld("world"); String[] signPos = config.getString("sign_pos").split(" "); - signBlock = world.getBlockAt(Integer.parseInt(signPos[0]), Integer.parseInt(signPos[1]), Integer.parseInt(signPos[2])); - configToKit(); + World world = Bukkit.getWorld(signPos[0]); + signBlock = new Location(world, Integer.parseInt(signPos[1]), Integer.parseInt(signPos[2]), Integer.parseInt(signPos[3])); + kits = configToKit(); + maps = configToMaps(); + enabledMap = maps.get(0); // TODO: 6/21/2020 + giveSteak = config.getBoolean("giveSteak"); + } + + private List configToMaps() { + List maps = new ArrayList<>(); + for (String map : config.getConfigurationSection("maps").getKeys(false)) { + maps.add(new io.github.officereso.Map((List) config.getList("maps." + map + ".spawns"), config.getString("maps." + map + ".name"))); + } + return maps; } private HashMap configToKit() { @@ -174,7 +276,7 @@ public class pvp extends JavaPlugin implements Listener { String name = config.getString(root + kit + ".name"); Integer cost = (Integer) config.get(root + kit + ".cost"); Integer position = (Integer) config.get(root + kit + ".position"); - String lore = config.getString(root + kit + ".lore"); + List lore = (List) config.getList(root + kit + ".lore"); if (name == null) { getLogger().severe(root + ' ' + kit + " has invalid name"); @@ -268,10 +370,27 @@ public class pvp extends JavaPlugin implements Listener { inventoryItemList.add(new InventoryItem(itemStack, inventoryPos)); } Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.valueOf(type)); + if (kit.equals("default")) { + defaultKits.put(kitClass.getViewPosition(), kitClass); + continue; + } kits.put(kitClass.getViewPosition(), kitClass); } } } return kits; } + + @EventHandler + public void onKill(PlayerDeathEvent event) { + if (event.getEntity().getKiller() != null) { + if (event.getEntity().getWorld() == getServer().getWorld("spawn")) { + int level = event.getEntity().getLevel(); + event.getEntity().getKiller().setLevel(event.getEntity().getKiller().getLevel() + 2); + event.getEntity().getInventory().clear(); + event.getEntity().setLevel(level); + signMenus.remove(event.getEntity()); + } + } + } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 72caaad..7ef975e 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,5 @@ name: pvp version: "1.0" main: io.github.officereso.pvp -api-version: "1.15" \ No newline at end of file +api-version: "1.15" +load: POSTWORLD \ No newline at end of file