Difference between revisions of "Receiving a rednet message through os.pullEvent()"
From ComputerCraft Wiki
m (Moved to CAT:Programs, CAT:Tutorials.) |
MechaTallon (Talk | contribs) m (→The Code: - Gave a bit more sophisticated code for this...) |
||
Line 4: | Line 4: | ||
== The Code == | == The Code == | ||
This is a typical Listener which prints the content and the sender id of any incoming message. | This is a typical Listener which prints the content and the sender id of any incoming message. | ||
− | rednet.open( | + | for n,m in ipairs(rs.getSides()) do rednet.open(m) end -- Opens all rednet sides. |
while true do | while true do | ||
event, id, text = os.pullEvent() | event, id, text = os.pullEvent() |
Revision as of 05:08, 3 December 2012
The following method is a good method of receiving a rednet message without using rednet.receive(). It is usually used in IRC, Chat programs e.t.c. When a message arrives to a computer, a "rednet_message" event occurs.
The Code
This is a typical Listener which prints the content and the sender id of any incoming message.
for n,m in ipairs(rs.getSides()) do rednet.open(m) end -- Opens all rednet sides. while true do event, id, text = os.pullEvent() if event == "rednet_message" then print(id .. "> " .. text) end end
Explanation
rednet.open("Direction_of_modem")
Here we just open the modem.
while true do
We start a loop because os.pullEvent() terminates itself after 10 seconds.
event, id, text = os.pullEvent()
We wait for an event to occur and when this happens, we store the event's info into 3 variables. NOTE: You can give your variables whichever name you want.
if event == "rednet_message" then
We check if the event was a rednet message.
print(id .. "> " .. text)
We print the message and the id of the sender.
end end
We close our previous statements.