1
0
cuberite-2a/Plugins/Core/item.lua
faketruth de29399987 Converted entire Core plugin including WebAdmin interface to new plugin method/system/thingy and sexyfied it.
Made some changes to WebAdmin to make the new plugins work
Old plugins still work like they're supposed to
Not all hooks have been programmed for the new plugins yet, this still needs to be done

git-svn-id: http://mc-server.googlecode.com/svn/trunk@182 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-27 23:47:32 +00:00

65 lines
1.8 KiB
Lua

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