diff --git a/.gitignore b/.gitignore
index bc0e40c..61b3b58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,11 +34,6 @@ local.properties
.iml
.target/
-#################
-## Maven
-#################
-.src/test/
-
#################
## Visual Studio
#################
diff --git a/pom.xml b/pom.xml
index 10d2e4a..4ff6d49 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.faris
KingKits
- 5.2.3
+ 5.2.4
jar
@@ -41,7 +41,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 2.10.1
+ 2.10.3
true
${project.basedir}
@@ -52,7 +52,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.2
+ 3.5.1
1.7
1.7
@@ -61,7 +61,7 @@
org.apache.maven.plugins
maven-shade-plugin
- 2.3
+ 2.4.3
false
@@ -99,7 +99,7 @@
com.github.github
site-maven-plugin
- 0.11
+ 0.12
Maven artifacts for ${project.version}
true
@@ -148,7 +148,7 @@
com.google.code.gson
gson
- 2.3.1
+ 2.6.2
compile
diff --git a/src/main/java/com/faris/kingkits/helper/util/ItemUtilities.java b/src/main/java/com/faris/kingkits/helper/util/ItemUtilities.java
index 9ce321a..b331cd6 100644
--- a/src/main/java/com/faris/kingkits/helper/util/ItemUtilities.java
+++ b/src/main/java/com/faris/kingkits/helper/util/ItemUtilities.java
@@ -131,10 +131,19 @@ public static ItemStack deserializeItem(Map serializedItem, Item
List itemFlags = new LinkedList<>();
for (String strItemFlag : strItemFlags) {
try {
- for (ItemFlag itemFlag : ItemFlag.values()) {
- if (itemFlag.name().replace('_', ' ').equalsIgnoreCase(strItemFlag.replace('_', ' '))) {
- itemFlags.add(itemFlag);
- break;
+ if (strItemFlag.equals("*")) {
+ itemFlags.clear();
+ for (ItemFlag itemFlag : ItemFlag.values()) {
+ if (itemFlag != null) itemFlags.add(itemFlag);
+ }
+ break;
+ } else {
+ strItemFlag = strItemFlag.toUpperCase().replace(' ', '_');
+ for (ItemFlag itemFlag : ItemFlag.values()) {
+ if (itemFlag != null && itemFlag.name().equals(strItemFlag)) {
+ itemFlags.add(itemFlag);
+ break;
+ }
}
}
} catch (Exception ex) {
diff --git a/src/main/java/com/faris/kingkits/listener/CommandListener.java b/src/main/java/com/faris/kingkits/listener/CommandListener.java
index 6758e88..f5ac9ac 100644
--- a/src/main/java/com/faris/kingkits/listener/CommandListener.java
+++ b/src/main/java/com/faris/kingkits/listener/CommandListener.java
@@ -8,10 +8,7 @@
import com.faris.kingkits.Kit;
import com.faris.kingkits.Messages;
import com.faris.kingkits.Permissions;
-import com.faris.kingkits.controller.ConfigController;
-import com.faris.kingkits.controller.KitController;
-import com.faris.kingkits.controller.PlayerController;
-import com.faris.kingkits.controller.SQLController;
+import com.faris.kingkits.controller.*;
import com.faris.kingkits.helper.util.*;
import com.faris.kingkits.player.KitPlayer;
import com.faris.kingkits.player.OfflineKitPlayer;
@@ -67,6 +64,7 @@ public boolean onCommand(final CommandSender sender, Command cmd, String label,
ConfigController.getInstance().loadConfiguration();
KitController.getInstance().loadKits();
+ GuiController.getInstance().loadInventories();
SQLController.getInstance().setHandler(MySQLHandler.newInstance(this.plugin, ConfigController.getInstance().getSQLDetails()));
SQLController.getInstance().openConnection();
diff --git a/src/main/java/com/faris/kingkits/listener/EventListener.java b/src/main/java/com/faris/kingkits/listener/EventListener.java
index 9e1f14d..0e5e249 100644
--- a/src/main/java/com/faris/kingkits/listener/EventListener.java
+++ b/src/main/java/com/faris/kingkits/listener/EventListener.java
@@ -126,12 +126,12 @@ public void onPlayerInteract(PlayerInteractEvent event) {
try {
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (event.getItem() != null) {
- if (event.getMaterial() == ConfigController.getInstance().getGuiItemType() && (ConfigController.getInstance().getGuiItemData() == -1 || event.getItem().getDurability() == ConfigController.getInstance().getGuiItemData())) {
+ if (event.getItem().getType() == ConfigController.getInstance().getGuiItemType() && (ConfigController.getInstance().getGuiItemData() == -1 || event.getItem().getDurability() == ConfigController.getInstance().getGuiItemData())) {
if (Utilities.isPvPWorld(player.getWorld())) {
GuiController.getInstance().openKitsMenu(player);
event.setCancelled(true);
}
- } else if (event.getMaterial() == Material.MUSHROOM_SOUP) {
+ } else if (event.getItem().getType() == Material.MUSHROOM_SOUP) {
if (ConfigController.getInstance().canQuickSoup()) {
if (player.hasPermission(Permissions.SOUP_QUICKSOUP)) {
if (Utilities.isPvPWorld(player.getWorld())) {
@@ -146,6 +146,7 @@ public void onPlayerInteract(PlayerInteractEvent event) {
valid = false;
}
if (valid) {
+ event.setCancelled(true);
if (soupAmount == 1) {
if (event.getHand() == EquipmentSlot.HAND)
player.getInventory().setItemInMainHand(new ItemStack(Material.BOWL));
@@ -160,7 +161,6 @@ else if (event.getHand() == EquipmentSlot.OFF_HAND)
player.getInventory().setItemInOffHand(newItem);
player.getInventory().addItem(new ItemStack(Material.BOWL));
}
- event.setCancelled(true);
}
}
}
diff --git a/src/main/java/com/faris/kingkits/listener/commands/CommandRefill.java b/src/main/java/com/faris/kingkits/listener/commands/CommandRefill.java
index ceeee57..503658a 100644
--- a/src/main/java/com/faris/kingkits/listener/commands/CommandRefill.java
+++ b/src/main/java/com/faris/kingkits/listener/commands/CommandRefill.java
@@ -36,13 +36,11 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
if (player.hasPermission(Permissions.COMMAND_SOUP_REFILL_SINGLE)) {
if (player.getInventory().getItemInMainHand() != null && player.getInventory().getItemInMainHand().getType() == Material.BOWL) {
int invContentsSize = 0;
- ItemStack[] itemContents = player.getInventory().getStorageContents();
- for (ItemStack itemContent : itemContents) {
- if (itemContent != null) {
- if (itemContent.getType() != Material.AIR) invContentsSize++;
- }
+ ItemStack[] invContents = player.getInventory().getStorageContents();
+ for (ItemStack invContent : invContents) {
+ if (!ItemUtilities.isNull(invContent)) invContentsSize++;
}
- if (invContentsSize < itemContents.length) {
+ if (invContentsSize < invContents.length) {
ItemStack itemInHand = player.getInventory().getItemInMainHand();
if (ConfigController.getInstance().getCostPerRefill() > 0D) {
double cost = ConfigController.getInstance().getCostPerRefill();
@@ -64,6 +62,34 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
} else {
Messages.sendMessage(player, Messages.COMMAND_REFILL_FULL_INV);
}
+ } else if (player.getInventory().getItemInOffHand() != null && player.getInventory().getItemInOffHand().getType() == Material.BOWL) {
+ int invContentsSize = 0;
+ ItemStack[] invContents = player.getInventory().getStorageContents();
+ for (ItemStack invContent : invContents) {
+ if (!ItemUtilities.isNull(invContent)) invContentsSize++;
+ }
+ if (invContentsSize < invContents.length) {
+ ItemStack itemInHand = player.getInventory().getItemInOffHand();
+ if (ConfigController.getInstance().getCostPerRefill() > 0D) {
+ double cost = ConfigController.getInstance().getCostPerRefill();
+ if (PlayerUtilities.getBalance(player) >= cost) {
+ PlayerUtilities.incrementMoney(player, -cost);
+ } else {
+ Messages.sendMessage(player, Messages.COMMAND_REFILL_NOT_ENOUGH_MONEY);
+ return true;
+ }
+ }
+ int amount = itemInHand.getAmount();
+ if (amount <= 1) {
+ player.getInventory().setItemInOffHand(new ItemStack(Material.MUSHROOM_SOUP));
+ } else {
+ itemInHand.setAmount(amount - 1);
+ player.getInventory().setItemInOffHand(itemInHand);
+ player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
+ }
+ } else {
+ Messages.sendMessage(player, Messages.COMMAND_REFILL_FULL_INV);
+ }
} else {
Messages.sendMessage(player, Messages.COMMAND_REFILL_BOWL);
}
@@ -76,18 +102,15 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
if (player.getInventory().getItemInMainHand() != null && player.getInventory().getItemInMainHand().getType() == Material.BOWL) {
int invContentsSize = 0;
ItemStack[] inventoryContents = player.getInventory().getStorageContents();
- for (ItemStack itemContent : inventoryContents) {
- if (!ItemUtilities.isNull(itemContent)) invContentsSize++;
+ for (ItemStack invContent : inventoryContents) {
+ if (!ItemUtilities.isNull(invContent)) invContentsSize++;
}
- if (invContentsSize < player.getInventory().getSize()) {
+ if (invContentsSize < inventoryContents.length) {
int bowlAmount = player.getInventory().getItemInMainHand().getAmount();
int invSize = 0, bowlsToGive = 0;
- ItemStack[] itemContents = player.getInventory().getStorageContents();
- int invMaxSize = player.getInventory().getSize();
- for (ItemStack itemContent : itemContents) {
- if (itemContent != null) {
- if (itemContent.getType() != Material.AIR) invSize++;
- }
+ int invMaxSize = inventoryContents.length;
+ for (ItemStack invContent : inventoryContents) {
+ if (!ItemUtilities.isNull(invContent)) invSize++;
}
for (int i = 0; i < bowlAmount; i++) {
if (invSize + bowlsToGive < invMaxSize) {
@@ -123,6 +146,53 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
player.getInventory().setItemInMainHand(new ItemStack(Material.MUSHROOM_SOUP));
}
}
+ } else if (player.getInventory().getItemInOffHand() != null && player.getInventory().getItemInOffHand().getType() == Material.BOWL) {
+ int invContentsSize = 0;
+ ItemStack[] inventoryContents = player.getInventory().getStorageContents();
+ for (ItemStack itemContent : inventoryContents) {
+ if (!ItemUtilities.isNull(itemContent)) invContentsSize++;
+ }
+ if (invContentsSize < inventoryContents.length) {
+ int bowlAmount = player.getInventory().getItemInOffHand().getAmount();
+ int invSize = 0, bowlsToGive = 0;
+ int invMaxSize = inventoryContents.length;
+ for (ItemStack invContent : inventoryContents) {
+ if (!ItemUtilities.isNull(invContent)) invSize++;
+ }
+ for (int i = 0; i < bowlAmount; i++) {
+ if (invSize + bowlsToGive < invMaxSize) {
+ bowlsToGive++;
+ }
+ }
+ if (ConfigController.getInstance().getCostPerRefill() > 0D) {
+ double cost = ConfigController.getInstance().getCostPerRefill() * bowlsToGive;
+ if (PlayerUtilities.getBalance(player) >= cost) {
+ PlayerUtilities.incrementMoney(player, -cost);
+ } else {
+ Messages.sendMessage(player, Messages.COMMAND_REFILL_NOT_ENOUGH_MONEY);
+ return true;
+ }
+ }
+ for (int i = 0; i < bowlsToGive; i++)
+ player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
+ if (player.getInventory().getItemInOffHand().getAmount() - bowlsToGive > 0)
+ player.getInventory().setItemInOffHand(new ItemStack(Material.BOWL, player.getInventory().getItemInOffHand().getAmount() - bowlsToGive));
+ else
+ player.getInventory().setItemInOffHand(new ItemStack(Material.AIR));
+ } else {
+ if (player.getInventory().getItemInOffHand().getAmount() == 1) {
+ if (ConfigController.getInstance().getCostPerRefill() > 0D) {
+ double cost = ConfigController.getInstance().getCostPerRefill();
+ if (PlayerUtilities.getBalance(player) >= cost) {
+ PlayerUtilities.incrementMoney(player, -cost);
+ } else {
+ Messages.sendMessage(player, Messages.COMMAND_REFILL_NOT_ENOUGH_MONEY);
+ return true;
+ }
+ }
+ player.getInventory().setItemInOffHand(new ItemStack(Material.MUSHROOM_SOUP));
+ }
+ }
} else {
Messages.sendMessage(player, Messages.COMMAND_REFILL_BOWL);
}