Fixed player print

This commit is contained in:
Cooldude2606
2019-02-12 20:34:43 +00:00
parent c8f6025179
commit 5d68122742

View File

@@ -116,16 +116,16 @@ function ExpLib.player_return(rtn,colour,player)
colour = ExpLib.is_type(colour,'table') and colour or defines.textcolor[colour] ~= defines.color.white and defines.textcolor[colour] or defines.color[colour]
player = player or game.player
local function _return(callback,rtn)
if ExpLib.is_type(rtn,'table') then
if ExpLib.is_type(rtn,'table',use_colour) then
-- test for: userdata, locale string, table with __tostring meta method, any other table
if ExpLib.is_type(rtn.__self,'userdata') then callback('Cant Display Userdata',colour)
elseif ExpLib.is_type(rtn[1],'string') and string.find(rtn[1],'.+[.].+') and not string.find(rtn[1],'%s') then callback(rtn,colour)
elseif getmetatable(rtn) ~= nil and not tostring(rtn):find('table: 0x') then callback(tostring(rtn),colour)
else callback(table.tostring(rtn),colour) end
if ExpLib.is_type(rtn.__self,'userdata') then callback('Cant Display Userdata',use_colour)
elseif ExpLib.is_type(rtn[1],'string') and string.find(rtn[1],'.+[.].+') and not string.find(rtn[1],'%s') then callback(rtn,use_colour)
elseif getmetatable(rtn) ~= nil and not tostring(rtn):find('table: 0x') then callback(tostring(rtn),use_colour)
else callback(table.tostring(rtn),use_colour) end
-- test for: function
elseif ExpLib.is_type(rtn,'function') then callback('Cant Display Functions',colour)
elseif ExpLib.is_type(rtn,'function') then callback('Cant Display Functions',use_colour)
-- else just call tostring
else callback(tostring(rtn),colour) end
else callback(tostring(rtn),use_colour) end
end
if player then
-- allows any valid player identifier to be used
@@ -133,7 +133,7 @@ function ExpLib.player_return(rtn,colour,player)
if not player then error('Invalid Player given to player_return',2) end
-- plays a nice sound that is different to normal message sound
player.play_sound{path='utility/scenario_message'}
_return(player.print,rtn)
_return(player.print,rtn,colour)
else _return(rcon.print,rtn) end
end