Core now uses built in item functions ( StringToItem() ) for the /item command
git-svn-id: http://mc-server.googlecode.com/svn/trunk@855 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
27b02efffa
commit
917259f2e7
@ -4,41 +4,11 @@ function HandleItemCommand( Split, Player )
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local FoundItem = false
|
local Item = cItem(E_ITEM_EMPTY, 1)
|
||||||
|
local FoundItem = StringToItem( Split[2], Item )
|
||||||
|
|
||||||
local ItemSyntax = Split[2] -- Contains item string with optional metadata
|
if( IsValidItem( Item.m_ItemType ) == false ) then -- StringToItem does not check if item is valid
|
||||||
local ItemData = StringSplit( Split[2], ":" )
|
FoundItem = false
|
||||||
|
|
||||||
-- 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
|
end
|
||||||
|
|
||||||
if( FoundItem == false ) then
|
if( FoundItem == false ) then
|
||||||
@ -51,13 +21,14 @@ function HandleItemCommand( Split, Player )
|
|||||||
if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then
|
if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then
|
||||||
Player:SendMessage( cChatColor.Green .. "Invalid Amount !" )
|
Player:SendMessage( cChatColor.Green .. "Invalid Amount !" )
|
||||||
return true
|
return true
|
||||||
|
else
|
||||||
|
Item.m_ItemCount = ItemAmount
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local NewItem = cItem( ItemID, ItemAmount, ItemMeta )
|
if( Player:GetInventory():AddItem( Item ) == true ) then
|
||||||
if( Player:GetInventory():AddItem( NewItem ) == true ) then
|
|
||||||
Player:SendMessage( cChatColor.Green .. "There you go !" )
|
Player:SendMessage( cChatColor.Green .. "There you go !" )
|
||||||
LOG("Gave " .. Player:GetName() .. " " .. ItemAmount .. " times " .. ItemID .. ":" .. ItemMeta)
|
LOG("Gave " .. Player:GetName() .. " " .. Item.m_ItemCount .. " times " .. Item.m_ItemType .. ":" .. Item.m_ItemDamage)
|
||||||
else
|
else
|
||||||
Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" )
|
Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" )
|
||||||
end
|
end
|
||||||
|
@ -7,7 +7,6 @@ SHOW_PLUGIN_NAMES = true -- If true, plugin name will be shown before commands
|
|||||||
PLUGIN = {} -- Reference to own plugin object
|
PLUGIN = {} -- Reference to own plugin object
|
||||||
BannedPlayersIni = {}
|
BannedPlayersIni = {}
|
||||||
WhiteListIni = {}
|
WhiteListIni = {}
|
||||||
ItemsTable = {}
|
|
||||||
|
|
||||||
function Initialize( Plugin )
|
function Initialize( Plugin )
|
||||||
PLUGIN = Plugin
|
PLUGIN = Plugin
|
||||||
@ -73,33 +72,6 @@ function Initialize( Plugin )
|
|||||||
SHOW_PLUGIN_NAMES = IniFile:GetValueB("HelpPlugin", "ShowPluginNames", true )
|
SHOW_PLUGIN_NAMES = IniFile:GetValueB("HelpPlugin", "ShowPluginNames", true )
|
||||||
end
|
end
|
||||||
|
|
||||||
local itemsINI = cIniFile("items.ini")
|
|
||||||
if ( itemsINI:ReadFile() == true ) then
|
|
||||||
local KeyID = itemsINI:FindKey('Items')
|
|
||||||
|
|
||||||
LOGINFO("Core: loaded " .. itemsINI:GetNumValues( KeyID ) .. " item names.")
|
|
||||||
|
|
||||||
for i = 0, itemsINI:GetNumValues('Items') do
|
|
||||||
local ItemName = itemsINI:GetValueName( KeyID, i )
|
|
||||||
local ItemSyntax = itemsINI:GetValue(KeyID, i, "0")
|
|
||||||
|
|
||||||
local ItemData = StringSplit(ItemSyntax, ":") -- [1] = ID, [2] = perhaps meta/dmg
|
|
||||||
if( #ItemData > 0 ) then
|
|
||||||
local ItemID = tonumber( ItemData[1] )
|
|
||||||
if( ItemID > 0 ) then
|
|
||||||
local ItemMeta = 0
|
|
||||||
if( #ItemData > 1 ) then
|
|
||||||
ItemMeta = tonumber( ItemData[2] )
|
|
||||||
end
|
|
||||||
ItemsTable[ ItemName ] = cItem( ItemID, 1, ItemMeta )
|
|
||||||
--LOGINFO("Got item: " .. ItemName .. "-> " .. ItemsTable[ ItemName ].m_ItemID ..":" .. ItemsTable[ ItemName ].m_ItemHealth )
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
HAVE_ITEM_NAMES = true
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Load whitelist, and add default values and stuff
|
-- Load whitelist, and add default values and stuff
|
||||||
WhiteListIni = cIniFile( Plugin:GetLocalDirectory() .. "/whitelist.ini" )
|
WhiteListIni = cIniFile( Plugin:GetLocalDirectory() .. "/whitelist.ini" )
|
||||||
if ( WhiteListIni:ReadFile() == true ) then
|
if ( WhiteListIni:ReadFile() == true ) then
|
||||||
|
Loading…
Reference in New Issue
Block a user