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;