summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Core/item.lua
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-20 14:20:20 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-20 14:20:20 +0200
commit12906c026d414c752d3c0ba9481f425b24b29c67 (patch)
treed64298334a68275e0d7c22c9dfb0e82c95654f83 /MCServer/Plugins/Core/item.lua
parentWindow, Chest, Furnace and Pawn are not using cPackets at all (diff)
downloadcuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.gz
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.bz2
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.lz
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.xz
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.zst
cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.zip
Diffstat (limited to 'MCServer/Plugins/Core/item.lua')
-rw-r--r--MCServer/Plugins/Core/item.lua65
1 files changed, 65 insertions, 0 deletions
diff --git a/MCServer/Plugins/Core/item.lua b/MCServer/Plugins/Core/item.lua
new file mode 100644
index 000000000..942fa8ce6
--- /dev/null
+++ b/MCServer/Plugins/Core/item.lua
@@ -0,0 +1,65 @@
+function HandleItemCommand( Split, Player )
+ if( #Split ~= 2 and #Split ~=3 ) then
+ Player:SendMessage( cChatColor.Green .. "Usage: /item [ItemID/Name:Dmg] <Amount>" )
+ return true
+ end
+
+ local FoundItem = false
+
+ local ItemSyntax = Split[2] -- Contains item string with optional metadata
+ local ItemData = StringSplit( Split[2], ":" )
+
+ -- Default item values
+ local ItemID = 0
+ local ItemMeta = 0
+ local ItemAmount = 1
+
+ if( #ItemData > 0 ) then
+ ItemID = ItemData[1]
+ end
+
+ if( tonumber(ItemID) ~= nil ) then -- Definitely a number
+ ItemID = tonumber(ItemID)
+ if( IsValidItem( ItemID ) ) then
+ FoundItem = true
+ end
+ end
+
+ if( FoundItem == false ) then
+ if ( HAVE_ITEM_NAMES == true ) then
+ local Item = ItemsTable[ ItemID ]
+ if( Item ~= nil ) then
+ ItemID = Item.m_ItemID
+ ItemMeta = Item.m_ItemHealth
+ FoundItem = true
+ end
+ end
+ end
+
+ -- Override metadata from item in list, if metadata was given
+ if( #ItemData > 1 and tonumber( ItemData[2] ) ~= nil ) then -- Metadata is given, and is a number
+ ItemMeta = tonumber( ItemData[2] )
+ end
+
+ if( FoundItem == false ) then
+ Player:SendMessage( cChatColor.Green .. "Invalid Item ID / Name !" )
+ return true
+ end
+
+ if( #Split == 3 ) then
+ ItemAmount = tonumber( Split[3] )
+ if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then
+ Player:SendMessage( cChatColor.Green .. "Invalid Amount !" )
+ return true
+ end
+ end
+
+ local NewItem = cItem( ItemID, ItemAmount, ItemMeta )
+ if( Player:GetInventory():AddItem( NewItem ) == true ) then
+ Player:SendMessage( cChatColor.Green .. "There you go !" )
+ LOG("Gave " .. Player:GetName() .. " " .. ItemAmount .. " times " .. ItemID .. ":" .. ItemMeta)
+ else
+ Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" )
+ end
+ return true
+end \ No newline at end of file