Difference between revisions of "Receiving a rednet message through os.pullEvent()"
From ComputerCraft Wiki
MechaTallon (Talk | contribs) m (→The Code: - Gave a bit more sophisticated code for this...) |
MechaTallon (Talk | contribs) (→Explanation) |
||
Line 13: | Line 13: | ||
== Explanation == | == Explanation == | ||
− | rednet.open( | + | for n,m in ipairs(rs.getSides()) do rednet.open(m) end |
− | Here we just open | + | Here we just open all sides for rednet processing. |
while true do | while true do |
Revision as of 05:09, 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
for n,m in ipairs(rs.getSides()) do rednet.open(m) end
Here we just open all sides for rednet processing.
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.