diff --git a/pom.xml b/pom.xml
index c986c16..3600715 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.modnmetl
virtualrealty
- 2.2.3
+ 2.2.4
jar
A plot creation and management plugin for Minecraft
diff --git a/src/main/java/com/modnmetl/virtualrealty/commands/vrplot/subcommand/ItemSubCommand.java b/src/main/java/com/modnmetl/virtualrealty/commands/vrplot/subcommand/ItemSubCommand.java
index 725f358..cb2c1f5 100644
--- a/src/main/java/com/modnmetl/virtualrealty/commands/vrplot/subcommand/ItemSubCommand.java
+++ b/src/main/java/com/modnmetl/virtualrealty/commands/vrplot/subcommand/ItemSubCommand.java
@@ -12,6 +12,7 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
import java.util.*;
@@ -105,12 +106,44 @@ public void exec(CommandSender sender, Command command, String label, String[] a
(byte) 0);
}
}
- int additionalDays = Integer.parseInt(args[7-backwardArgs]);
- int itemsAmount = Integer.parseInt(args[8-backwardArgs]);
+ int additionalDays;
+ try {
+ additionalDays = Integer.parseInt(args[7-backwardArgs]);
+ } catch (NumberFormatException e) {
+ sender.sendMessage(VirtualRealty.PREFIX + VirtualRealty.getMessages().incorrectValue);
+ return;
+ }
+ if (additionalDays < 0) {
+ sender.sendMessage(VirtualRealty.PREFIX + VirtualRealty.getMessages().incorrectValue);
+ return;
+ }
+ int itemsAmount;
+ try {
+ itemsAmount = Integer.parseInt(args[8-backwardArgs]);
+ } catch (NumberFormatException e) {
+ sender.sendMessage(VirtualRealty.PREFIX + VirtualRealty.getMessages().incorrectValue);
+ return;
+ }
+ if (itemsAmount < 1) {
+ sender.sendMessage(VirtualRealty.PREFIX + VirtualRealty.getMessages().incorrectValue);
+ return;
+ }
Player onlinePlayer = Bukkit.getPlayer(args[9-backwardArgs]);
+ if (onlinePlayer == null) {
+ sender.sendMessage(VirtualRealty.PREFIX + VirtualRealty.getMessages().playerNotFoundWithUsername);
+ return;
+ }
for (int i = 0; i < itemsAmount; i++) {
PlotItem plotItem = new PlotItem(VItem.CLAIM, plotSize, length, height, width, floorData, borderData, isNatural, additionalDays, UUID.randomUUID());
- onlinePlayer.getInventory().addItem(plotItem.getItemStack());
+ ItemStack itemStack = plotItem.getItemStack();
+ onlinePlayer.getInventory().addItem(itemStack);
+ if (onlinePlayer.getInventory().contains(itemStack)) {
+ sender.sendMessage(VirtualRealty.PREFIX + "§aPlot item has been assigned to " + onlinePlayer.getName() + " by " + (sender.getName()) + "!");
+ onlinePlayer.sendMessage(VirtualRealty.PREFIX + "§aYou received a plot item from " + (sender.getName()) + "!");
+ } else {
+ sender.sendMessage(VirtualRealty.PREFIX + "§c" + onlinePlayer.getName() + " has no inventory space to receive plot item!");
+ onlinePlayer.sendMessage(VirtualRealty.PREFIX + "§cNo inventory space to receive plot item from " + (sender.getName()) + "!");
+ }
}
}
diff --git a/src/main/java/com/modnmetl/virtualrealty/configs/MessagesConfiguration.java b/src/main/java/com/modnmetl/virtualrealty/configs/MessagesConfiguration.java
index 017f952..10baa02 100644
--- a/src/main/java/com/modnmetl/virtualrealty/configs/MessagesConfiguration.java
+++ b/src/main/java/com/modnmetl/virtualrealty/configs/MessagesConfiguration.java
@@ -35,6 +35,7 @@ public class MessagesConfiguration extends OkaeriConfig {
public String insufficientPermissions = "§cInsufficient permissions! §8(§7%permission%§8)";
public String useNaturalNumbersOnly = "§cUse only natural numbers!";
public String incorrectGamemode = "§cIncorrect gamemode value!";
+ public String incorrectValue = "§cIncorrect value!";
public String sizeNotRecognised = "§cSize not recognized!";
public String hardLimit = "§cL, W and H hard-limit is 500!";
public String graterThenZero = "§cL, W and H values must be greater than 0!";
diff --git a/src/main/java/com/modnmetl/virtualrealty/listeners/protection/PlotProtectionListener.java b/src/main/java/com/modnmetl/virtualrealty/listeners/protection/PlotProtectionListener.java
index 62eb3b6..85f97f8 100644
--- a/src/main/java/com/modnmetl/virtualrealty/listeners/protection/PlotProtectionListener.java
+++ b/src/main/java/com/modnmetl/virtualrealty/listeners/protection/PlotProtectionListener.java
@@ -729,6 +729,7 @@ public void onEntityDamage(EntityDamageByEntityEvent e) {
public void onStaticEntityDamage(EntityDamageByEntityEvent e) {
if (e.isCancelled()) return;
if (e.getEntity() instanceof Creature || e.getEntity() instanceof Player) return;
+ if (!(e.getDamager() instanceof Player)) return;
Player player = (Player) e.getDamager();
Plot plot = PlotManager.getPlot(e.getEntity().getLocation());
if (plot == null) return;