Advertisement
Guest User

Computercraft Networking

a guest
Nov 12th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.39 KB | None | 0 0
  1. local tArgs = { ... }
  2. local lstSides = {"left","right","top","bottom","front","back"}
  3. if #tArgs == 0 then
  4.     print("Usage: ifconfig Up <side>")
  5.     print("Usage: ifconfig Down <side>")
  6.     print("Usage: ifconfig List")
  7.     print("Usage: ifconfig Send <TargetID> <protocol> <message>")
  8.     print("Usage: ifconfig Broadcast <protocol> <message>")
  9.     return
  10. end
  11. function DetectModem()
  12. local Counter1 = 0
  13.     for i, side in pairs(lstSides) do
  14.       if (peripheral.isPresent(side)) then
  15.        if (peripheral.getType(side) == string.lower("modem")) then
  16.        Counter1 = Counter1 + 1
  17.            print("("..Counter1..") "..tostring(rednet.isOpen(side))..": "..string.upper(side))
  18.         end
  19.       end
  20.     end
  21.   end --end function
  22. function openModem(xside)
  23. xside = string.lower(xside)
  24. bool = false
  25. for i, side in pairs(lstSides) do
  26.       if (peripheral.isPresent(side)) then
  27.        if (peripheral.getType(side) == string.lower("modem")) then
  28.           if side == xside then
  29.           if not rednet.isOpen(side) then
  30.           rednet.open(side)
  31.           print("Modem opened on side: "..side)
  32.           else
  33.           print("Modem was already opened")
  34.           end
  35.           bool = true
  36.           end
  37.          
  38.         end
  39.       end
  40.     end
  41.     if bool == false then
  42.     print("Could not locate modem on side: "..xside)
  43.     end
  44.    
  45. end--end function
  46. function closeModem(xside)
  47. xside = string.lower(xside)
  48. bool = false
  49. for i, side in pairs(lstSides) do
  50.       if (peripheral.isPresent(side)) then
  51.        if (peripheral.getType(side) == string.lower("modem")) then
  52.           if side == xside then
  53.           if rednet.isOpen(side) then
  54.           rednet.close(side)
  55.           print("Modem closed on side: "..side)
  56.           else
  57.           print("Modem was already closed")
  58.           end
  59.           bool = true
  60.           end
  61.          
  62.         end
  63.       end
  64.     end
  65.     if bool == false then
  66.     print("Could not locate modem on side: "..xside)
  67.     end
  68. end--end function
  69. function CheckSides()
  70. for i, side in pairs(lstSides) do
  71.       if (peripheral.isPresent(side)) then
  72.        if (peripheral.getType(side) == string.lower("modem")) then
  73.        return true
  74.        end
  75.       end
  76.     end
  77.     return false
  78. end --end function
  79.  
  80. function CheckOpen()
  81. returnval = false
  82. for i, side in pairs(lstSides) do
  83.       if (peripheral.isPresent(side)) then
  84.        if (peripheral.getType(side) == string.lower("modem")) then
  85.             if (rednet.isOpen(side)) then
  86.             returnval = true
  87.             end
  88.        end
  89.       end
  90.     end
  91.     return returnval
  92. end--end function
  93.  
  94. function SendUDPPacket(MyID, Protocol, Message1)
  95.     if CheckSides() == true then
  96.         if CheckOpen() == true then
  97.         rednet.send(tonumber(MyID),Message1, Protocol)
  98.         end
  99.     end
  100. end--end function
  101. function BroadcastUDPPacket(Protocol, Message)
  102. if CheckSides() == true then
  103.         if CheckOpen() == true then
  104.         rednet.broadcast(Message, Protocol)
  105.         end
  106.     end
  107. end--end function
  108.  
  109.  
  110.  
  111. if tArgs[1] == string.lower("list") then
  112. DetectModem()
  113. elseif tArgs[1] == string.lower("up") then
  114. if #tArgs == 2 then
  115. openModem(tArgs[2])
  116. else
  117. print("Usage: ifconfig up <side>")
  118. end
  119. elseif tArgs[1] == string.lower("down") then
  120. if #tArgs == 2 then
  121. closeModem(tArgs[2])
  122. else
  123. print("Usage: ifconfig down <side>")
  124. end
  125. elseif tArgs[1] == string.lower("send") then
  126. r1 = ""
  127. for i = 4,#tArgs do
  128.     r1 = r1..(tArgs[i]).." "
  129. end
  130. SendUDPPacket(tArgs[2], tArgs[3], r1)
  131.  
  132. elseif tArgs[1] == string.lower("broadcast") then
  133. r1 = ""
  134. for i = 3,#tArgs do
  135.     r1 = r1..(tArgs[i]).." "
  136. end
  137. BroadcastUDPPacket(tArgs[2], r1)
  138.  
  139. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement