Advertisement
DOGGYWOOF

message

Jan 20th, 2024
3
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. -- Advanced Messaging Service with WhatsApp-like style in ComputerCraft
  2.  
  3. rednet.open("top")
  4.  
  5. local function sendMessage(recipient, message, sender)
  6. rednet.send(recipient, {message = message, sender = sender, timestamp = os.time(), edited = false, deleted = false})
  7. end
  8.  
  9. local function receiveMessages()
  10. while true do
  11. local _, messageData = rednet.receive()
  12. printMessage(messageData)
  13. end
  14. end
  15.  
  16. local function printMessage(messageData)
  17. local sender = messageData.sender or "Unknown"
  18. local message = messageData.message or ""
  19. local timestamp = os.date("%H:%M:%S", messageData.timestamp or os.time())
  20. local edited = messageData.edited
  21. local deleted = messageData.deleted
  22. local messageId = messageData.messageId or ""
  23.  
  24. print("ID: " .. messageId .. " " .. timestamp .. " " .. sender .. ": " .. message)
  25.  
  26. if deleted then
  27. print(" [Message deleted]")
  28. elseif edited then
  29. print(" [Message edited]")
  30. end
  31. end
  32.  
  33. local function editMessage(messageId, newMessage)
  34. sendMessage(os.computerID, "EditMessage", "System") -- Notify about the edit
  35. sleep(0.5) -- Wait for notification to be received by other computers
  36. rednet.send(os.computerID, {editMessageId = messageId, newMessage = newMessage}, "System")
  37. end
  38.  
  39. local function deleteMessage(messageId)
  40. sendMessage(os.computerID, "DeleteMessage", "System") -- Notify about the deletion
  41. sleep(0.5) -- Wait for notification to be received by other computers
  42. rednet.send(os.computerID, {deleteMessageId = messageId}, "System")
  43. end
  44.  
  45. parallel.waitForAny(receiveMessages)
  46.  
  47. -- Example usage:
  48. -- sendMessage(2, "Hello, this is a test message.", os.computerID)
  49. -- editMessage(1, "This message has been edited.")
  50. -- deleteMessage(1)
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement