diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index acad699..8feeb57 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -6,9 +6,11 @@
-
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f95d6a2..3ccb27b 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,7 +8,6 @@
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index f9cf607..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6b3c441..67f13d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,36 @@
8
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.1.1
+
+ true
+
+
+ log4j:log4j
+
+ **
+
+
+
+ org.ipvp:canvas:1.5.0-SNAPSHOT
+
+ **
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
diff --git a/src/main/java/io/github/officereso/Kit.java b/src/main/java/io/github/officereso/Kit.java
index 8e0a39d..f2d4b9e 100644
--- a/src/main/java/io/github/officereso/Kit.java
+++ b/src/main/java/io/github/officereso/Kit.java
@@ -41,7 +41,8 @@ public class Kit {
HELMET,
CHESTPLATE,
LEGGINGS,
- BOOTS
+ BOOTS,
+ ADDITIONAL
}
public String getName() {
diff --git a/src/main/java/io/github/officereso/pvp.java b/src/main/java/io/github/officereso/pvp.java
index 8dde828..31ea8d5 100644
--- a/src/main/java/io/github/officereso/pvp.java
+++ b/src/main/java/io/github/officereso/pvp.java
@@ -3,10 +3,13 @@ package io.github.officereso;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
+import org.bukkit.World;
+import org.bukkit.block.Block;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.enchantments.Enchantment;
+import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
-import org.bukkit.inventory.Inventory;
+import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.PotionMeta;
@@ -15,7 +18,6 @@ import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionType;
import org.ipvp.canvas.Menu;
import org.ipvp.canvas.MenuFunctionListener;
-import org.ipvp.canvas.slot.ClickOptions;
import org.ipvp.canvas.slot.Slot;
import org.ipvp.canvas.type.ChestMenu;
@@ -26,26 +28,41 @@ import java.util.Map;
public class pvp extends JavaPlugin implements Listener {
private final FileConfiguration config = this.getConfig();
- private HashMap kits = configToKit("kits.");
- private HashMap potions = configToKit("potions.");
- private HashMap armor = configToKit("armor.");
- private HashMap additional = configToKit("additional.");
+ private HashMap kits = configToKit();
+ private Menu signMenu = ChestMenu.builder(6).title("PVP Selection Menu").build();
+ Block signBlock;
+
@Override
public void onEnable() {
- Menu signMenu = ChestMenu.builder(6).title("PVP Selection Menu").build();
+ Bukkit.getPluginManager().registerEvents(new MenuFunctionListener(), this);
for (Map.Entry entryKit : kits.entrySet()) {
Kit kit = entryKit.getValue();
- Slot slot = signMenu.getSlot(kit.getViewPosition());
+ int value = entryKit.getKey();
+ Slot slot = signMenu.getSlot(value);
+ slot.setItem(kit.getInventoryItemList().get(0).getItemStack());
+
slot.setClickHandler((player, info) -> {
});
}
+ World world = Bukkit.getWorld("world");
- Bukkit.getPluginManager().registerEvents(new MenuFunctionListener(), this);
-
+ String[] signPos = config.getString("sign_pos").split(" ");
+ signBlock = world.getBlockAt(Integer.parseInt(signPos[0]), Integer.parseInt(signPos[1]), Integer.parseInt(signPos[2]));
this.saveDefaultConfig();
+ getServer().getPluginManager().registerEvents(this, this);
+ }
+
+ @EventHandler
+ public void onClick(PlayerInteractEvent event) {
+ if (event.getClickedBlock() == null) {
+ return;
+ }
+ if (event.getClickedBlock().equals(signBlock)) {
+ signMenu.open(event.getPlayer());
+ }
}
@Override
@@ -53,100 +70,113 @@ public class pvp extends JavaPlugin implements Listener {
getLogger().info("onDisable is called!");
}
- private HashMap configToKit(String root) {
- HashMap kits = new HashMap();
-
- for (String kit : config.getConfigurationSection(root).getKeys(false)) {
- 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");
-
- if (name == null) {
- getLogger().severe(root + ' ' + kit + " has invalid name");
- return null;
- } // Checks for bad names.
- if (cost == null) {
- getLogger().severe(root + ' ' + kit + " has invalid cost");
- return null;
- } // Checks for bad cost.
- if (position == null) {
- getLogger().severe(root + ' ' + kit + " has invalid position");
- return null;
- } // Checks for bad position.
-
- List inventoryItemList = new ArrayList();
-
- if (root.equals("kits.") || root.equals("additional.")) {
- for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
- Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
-
- ItemStack itemStack = new ItemStack(
- Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
- (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
-
- String enchantments = config.getString(root + kit + ".items." + item + ".enchantments");
- if (enchantments != null) {
- List list = new ArrayList();
- for (String enchantment : enchantments.split(", ")) {
- list.add(enchantment.split(" "));
- }
-
- ItemMeta itemMeta = itemStack.getItemMeta();
- for (String[] enchantmentData : list) {
- itemMeta.addEnchant(Enchantment.getByKey(NamespacedKey.minecraft(enchantmentData[0].toLowerCase())), Integer.parseInt(enchantmentData[1]), true);
- }
- }
- inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
- }
- Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.KIT);
- kits.put(kitClass.getViewPosition(), kitClass);
+ private HashMap configToKit() {
+ HashMap kits = new HashMap<>();
+ for (String root : config.getConfigurationSection("").getKeys(false)) {
+ if (root.equals("maps") || root.equals("sign_pos") || root.equals("giveSteak")) {
+ continue;
}
- if (root.equals("potions.")) {
- for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
- Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
+ root = root + '.';
- ItemStack itemStack = new ItemStack(
- Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
- (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
+ for (String kit : config.getConfigurationSection(root).getKeys(false)) {
+ 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");
- PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta();
- potionMeta.setBasePotionData(new PotionData(
- PotionType.valueOf(config.getString(root + kit + ".items." + item + ".basePotionData")),
- config.getBoolean(root + kit + ".items." + item + ".extended"),
- config.getBoolean(root + kit + ".items." + item + ".upgraded")));
+ if (name == null) {
+ getLogger().severe(root + ' ' + kit + " has invalid name");
+ return null;
+ } // Checks for bad names.
+ if (cost == null) {
+ getLogger().severe(root + ' ' + kit + " has invalid cost");
+ return null;
+ } // Checks for bad cost.
+ if (position == null) {
+ getLogger().severe(root + ' ' + kit + " has invalid position");
+ return null;
+ } // Checks for bad position.
- inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
- }
- Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.POTION);
- kits.put(kitClass.getViewPosition(), kitClass);
- }
- if (root.equals("armor.")) {
- String type = config.getString(root + kit + ".type");
+ List inventoryItemList = new ArrayList<>();
- for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
- Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
+ if (root.equals("kits.") || root.equals("additional.")) {
+ for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
+ Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
- ItemStack itemStack = new ItemStack(
- Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
- (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
+ ItemStack itemStack = new ItemStack(
+ Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
+ (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
- String enchantments = config.getString(root + kit + ".items." + item + ".enchantments");
- if (enchantments != null) {
- List list = new ArrayList();
- for (String enchantment : enchantments.split(", ")) {
- list.add(enchantment.split(" "));
- }
-
- ItemMeta itemMeta = itemStack.getItemMeta();
- for (String[] enchantmentData : list) {
- itemMeta.addEnchant(Enchantment.getByKey(NamespacedKey.minecraft(enchantmentData[0].toLowerCase())), Integer.parseInt(enchantmentData[1]), true);
+ String enchantments = config.getString(root + kit + ".items." + item + ".enchantments");
+ if (enchantments != null) {
+ List list = new ArrayList<>();
+ for (String enchantment : enchantments.split(", ")) {
+ list.add(enchantment.split(" "));
+ }
+
+ ItemMeta itemMeta = itemStack.getItemMeta();
+ for (String[] enchantmentData : list) {
+ itemMeta.addEnchant(Enchantment.getByKey(NamespacedKey.minecraft(enchantmentData[0].toLowerCase())), Integer.parseInt(enchantmentData[1]), true);
+ itemStack.setItemMeta(itemMeta);
+ }
}
+ inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
}
- inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
+ Kit kitClass;
+ if (root.equals("kits.")) {
+ kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.KIT);
+ }
+ kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.ADDITIONAL);
+ kits.put(kitClass.getViewPosition(), kitClass);
+ }
+ if (root.equals("potions.")) {
+ for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
+ Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
+
+ ItemStack itemStack = new ItemStack(
+ Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
+ (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
+
+ PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta();
+ potionMeta.setBasePotionData(new PotionData(
+ PotionType.valueOf(config.getString(root + kit + ".items." + item + ".basePotionData")),
+ config.getBoolean(root + kit + ".items." + item + ".extended"),
+ config.getBoolean(root + kit + ".items." + item + ".upgraded")));
+ itemStack.setItemMeta(potionMeta);
+
+ inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
+ }
+ Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.POTION);
+ kits.put(kitClass.getViewPosition(), kitClass);
+ }
+ if (root.equals("armor.")) {
+ String type = config.getString(root + kit + ".type");
+
+ for (String item : config.getConfigurationSection(root + kit + ".items").getKeys(false)) {
+ Integer inventoryPos = (Integer) config.get(root + kit + ".items." + item + ".inventoryPos");
+
+ ItemStack itemStack = new ItemStack(
+ Material.valueOf(config.getString(root + kit + ".items." + item + ".material")), // Material located in config
+ (config.getInt(root + kit + ".items." + item + ".amount"))); // Amount of the item
+
+ String enchantments = config.getString(root + kit + ".items." + item + ".enchantments");
+ if (enchantments != null) {
+ List list = new ArrayList<>();
+ for (String enchantment : enchantments.split(", ")) {
+ list.add(enchantment.split(" "));
+ }
+
+ ItemMeta itemMeta = itemStack.getItemMeta();
+ for (String[] enchantmentData : list) {
+ itemMeta.addEnchant(Enchantment.getByKey(NamespacedKey.minecraft(enchantmentData[0].toLowerCase())), Integer.parseInt(enchantmentData[1]), true);
+ itemStack.setItemMeta(itemMeta);
+ }
+ }
+ inventoryItemList.add(new InventoryItem(itemStack, inventoryPos));
+ }
+ Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.valueOf(type));
+ kits.put(kitClass.getViewPosition(), kitClass);
}
- Kit kitClass = new Kit(name, inventoryItemList, cost, position, lore, Kit.Type.valueOf(type));
- kits.put(kitClass.getViewPosition(), kitClass);
}
}
return kits;