initial release
This commit is contained in:
48
cosmic rage/lua/var.lua
Normal file
48
cosmic rage/lua/var.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
-- var.lua
|
||||
-- ----------------------------------------------------------
|
||||
-- Accessing MUSHclient variables through the 'var' table.
|
||||
-- See forum thread:
|
||||
-- http://www.gammon.com.au/forum/?id=4904
|
||||
|
||||
--[[
|
||||
|
||||
* Set a variable by assigning something to it.
|
||||
* Delete a variable by assigning nil to it.
|
||||
* Get a variable by retrieving its value, will return nil if the variable does not exist.
|
||||
|
||||
Examples:
|
||||
|
||||
var.target = "kobold" -- set MUSHclient variable 'target' to kobold
|
||||
print (var.target) -- print contents of MUSHclient variable
|
||||
|
||||
--]]
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
|
||||
var = {} -- variables table
|
||||
|
||||
setmetatable (var,
|
||||
{
|
||||
-- called to access an entry
|
||||
__index =
|
||||
function (t, name)
|
||||
return GetVariable (name)
|
||||
end,
|
||||
|
||||
-- called to change or delete an entry
|
||||
__newindex =
|
||||
function (t, name, val)
|
||||
local result
|
||||
if val == nil then -- nil deletes it
|
||||
result = DeleteVariable (name)
|
||||
else
|
||||
result = SetVariable (name, tostring (val))
|
||||
end
|
||||
-- warn if they are using bad variable names
|
||||
if result == error_code.eInvalidObjectLabel then
|
||||
error ("Bad variable name '" .. name .. "'", 2)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
return var
|
||||
Reference in New Issue
Block a user