02-28-2011, 01:28 AM
02-28-2011, 01:56 AM
The engine of MCServer is not LUA, so you have to use Java, I think. o.O
02-28-2011, 02:07 AM
(02-28-2011, 01:56 AM)Jockie Wrote: [ -> ]The engine of MCServer is not LUA, so you have to use Java, I think. o.O
I think he wants the plugin to gather some data from the server.
You would need a lua module included by MCServer for this to work,
or I think loading the luasockets module from within lua.
greets,
Tybor
02-28-2011, 03:18 AM
I already created something for this, and exported it to Lua
It's not documented anywhere. You basically need to 'extend' it like you extend cPlugin. You need this piece of code for that:
Then you can inherit the ReceivedData function like so:
Code:
class cTCPLink
{
public:
cTCPLink();
~cTCPLink();
bool Connect( _cstring a_Address, unsigned int a_Port );
int Send( _cstring a_Data, unsigned int a_Size, int a_Flags = 0 );
int SendMessage( const _cstring a_Message, int a_Flags = 0 );
void CloseSocket();
protected:
virtual void ReceivedData( char a_Data[256], int a_Size ) = 0;
};
It's not documented anywhere. You basically need to 'extend' it like you extend cPlugin. You need this piece of code for that:
Code:
local TCPLink = {}
TCPLink.__index = TCPLink
function TCPLink:new()
local t = {}
setmetatable(t, TCPLink)
local w = Lua__cTCPLink:new()
tolua.setpeer(w, t)
w:tolua__set_instance(w)
return w
end
Then you can inherit the ReceivedData function like so:
Code:
TCPLink:ReceivedData( Data, Size )
-- Do stuffs with data
end
02-28-2011, 03:21 AM
Okay im a tad confused as i only ever use pure lua and gmod lua, So what exactly do i need to do with this code?
02-28-2011, 03:59 AM
Here's an example:
Code:
local TCPLink = {}
TCPLink.__index = TCPLink
function TCPLink:new()
local t = {}
setmetatable(t, TCPLink)
local w = Lua__cTCPLink:new_local() -- new_local = Deleted by garbage collector
tolua.setpeer(w, t)
w:tolua__set_instance(w)
return w
end
TCP = TCPLink:new()
if( TCP:Connect("www.mc-server.org", 80) == true ) then
Log("Sending message")
TCP:SendMessage("GET http://www.mc-server.org/\n")
end
function TCPLink:ReceivedData( Data, Size )
Log("Received data: " .. Size )
String = string.sub( Data, 0, Size )
Log( String )
end
02-28-2011, 04:03 AM
Thanks dude, i can now start working on my plugin.
02-28-2011, 05:52 AM
On trying your example it crashes after data is recevied, Any ideas?