Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Advanced Messaging Service with WhatsApp-like style in ComputerCraft
- rednet.open("top")
- local function sendMessage(recipient, message, sender)
- rednet.send(recipient, {message = message, sender = sender, timestamp = os.time(), edited = false, deleted = false})
- end
- local function receiveMessages()
- while true do
- local _, messageData = rednet.receive()
- printMessage(messageData)
- end
- end
- local function printMessage(messageData)
- local sender = messageData.sender or "Unknown"
- local message = messageData.message or ""
- local timestamp = os.date("%H:%M:%S", messageData.timestamp or os.time())
- local edited = messageData.edited
- local deleted = messageData.deleted
- local messageId = messageData.messageId or ""
- print("ID: " .. messageId .. " " .. timestamp .. " " .. sender .. ": " .. message)
- if deleted then
- print(" [Message deleted]")
- elseif edited then
- print(" [Message edited]")
- end
- end
- local function editMessage(messageId, newMessage)
- sendMessage(os.computerID, "EditMessage", "System") -- Notify about the edit
- sleep(0.5) -- Wait for notification to be received by other computers
- rednet.send(os.computerID, {editMessageId = messageId, newMessage = newMessage}, "System")
- end
- local function deleteMessage(messageId)
- sendMessage(os.computerID, "DeleteMessage", "System") -- Notify about the deletion
- sleep(0.5) -- Wait for notification to be received by other computers
- rednet.send(os.computerID, {deleteMessageId = messageId}, "System")
- end
- parallel.waitForAny(receiveMessages)
- -- Example usage:
- -- sendMessage(2, "Hello, this is a test message.", os.computerID)
- -- editMessage(1, "This message has been edited.")
- -- deleteMessage(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement