From ea0961fc9a45b221f4a0deb64b32903d3d43ea2b Mon Sep 17 00:00:00 2001 From: Major- Date: Thu, 20 Feb 2014 20:08:11 +0000 Subject: [PATCH] Prevent IndexOutOfBoundsException when using the item command. --- data/plugins/cmd-item/item.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/data/plugins/cmd-item/item.rb b/data/plugins/cmd-item/item.rb index 6e9d32de..acecce9a 100644 --- a/data/plugins/cmd-item/item.rb +++ b/data/plugins/cmd-item/item.rb @@ -1,18 +1,24 @@ require 'java' +# Adds the specified item to the player's own inventory. on :command, :item, RIGHTS_ADMIN do |player, command| args = command.arguments if (1..2).include? args.length id = args[0].to_i amount = args.length == 2 ? args[1].to_i : 1 + if (id < 0 || id >= ItemDefinition.count) + player.send_message('The item id you specified is out of bounds!') + next + end player.inventory.add(id, amount) else - player.send_message "Syntax: ::item [id] [amount=1]" + player.send_message('Syntax: ::item [id] [amount=1]') end end -on :command, :remove, RIGHTS_ADMIN do |player, command| +# Removes the specified item from the player's own inventory. +on :command, :remove, RIGHTS_MOD do |player, command| args = command.arguments if (1..2).include? args.length id = args[0].to_i @@ -20,10 +26,11 @@ on :command, :remove, RIGHTS_ADMIN do |player, command| player.inventory.remove(id, amount) else - player.send_message "Syntax: ::remove [id] [amount=1]" + player.send_message('Syntax: ::remove [id] [amount=1]') end end +# Clears the player's own inventory. on :command, :empty, RIGHTS_MOD do |player, command| player.inventory.clear end \ No newline at end of file