forked from cory/tildefriends
		
	More chat fixes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3316 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -242,26 +242,22 @@ function updateConversation() { | ||||
| 			gCurrentConversation.session.getHistory(gCurrentConversation.name), | ||||
| 			gCurrentConversation.session.getParticipants(gCurrentConversation.name), | ||||
| 		]).then(function(data) { | ||||
| 			let history = data[0]; | ||||
| 			let participants = data[1]; | ||||
| 			gCurrentConversation.messages = history || []; | ||||
| 			if (gCurrentConversation.messages.length > kMaxHistory) { | ||||
| 				gCurrentConversation.messages.splice(0, gCurrentConversation.messages.length - kMaxHistory); | ||||
| 			} | ||||
| 			let [history, participants] = data; | ||||
| 			gCurrentConversation.participants = participants || []; | ||||
| 			try { | ||||
| 				terminal.cork(); | ||||
| 				terminal.select("terminal"); | ||||
| 				terminal.clear(); | ||||
| 			for (var i in gCurrentConversation.messages) { | ||||
| 				let message = gCurrentConversation.messages[i]; | ||||
| 				if (message.action == "message") { | ||||
| 					printMessage(message.message); | ||||
| 				} else { | ||||
| 					terminal.print(message.message); | ||||
| 				printToConversation(gCurrentConversation, ["[", gCurrentConversation.name, "]"]); | ||||
| 				if (history) { | ||||
| 					for (let message of history) { | ||||
| 						printToConversation(gCurrentConversation, message); | ||||
| 					} | ||||
| 				} | ||||
| 				updateUsers(); | ||||
| 			} finally { | ||||
| 				terminal.uncork(); | ||||
| 			} | ||||
| 		}).catch(function(error) { | ||||
| 			terminal.print(error); | ||||
| 		}); | ||||
| @@ -334,13 +330,16 @@ function printToConversation(conversation, message, notify) { | ||||
| 	if (conversation == gCurrentConversation) { | ||||
| 		if (message.action == "message") { | ||||
| 			printMessage(message.message); | ||||
| 		} else if (message.action == "presence") { | ||||
| 			if (message.presence == "unavailable") { | ||||
| 				terminal.print(new Date().toString(), ": ", message.user, " has left the room."); | ||||
| 			} else { | ||||
| 				terminal.print(new Date().toString(), ": ", message.user, " has joined the room."); | ||||
| 			} | ||||
| 		} else { | ||||
| 			terminal.print(message); | ||||
| 		} | ||||
| 	} | ||||
| 	if (conversation) { | ||||
| 		conversation.messages.push(message); | ||||
| 	} | ||||
| 	if (notify && !gFocus) { | ||||
| 		gUnread++; | ||||
| 		updateTitle(); | ||||
|   | ||||
| @@ -89,10 +89,13 @@ exports.ChatService = class { | ||||
| 		let leaving = state == "unavailable"; | ||||
| 		let participants = this._getConversation(conversation).participants; | ||||
| 		let index = participants.indexOf(user); | ||||
| 		let different = true; | ||||
| 		if (leaving) { | ||||
| 			participants.splice(index, 1); | ||||
| 		} else if (index == -1) { | ||||
| 			participants.push(user); | ||||
| 		} else { | ||||
| 			different = false; | ||||
| 		} | ||||
| 		let message = { | ||||
| 			action: "presence", | ||||
| @@ -100,7 +103,9 @@ exports.ChatService = class { | ||||
| 			user: user, | ||||
| 			presence: state, | ||||
| 		}; | ||||
| 		if (different) { | ||||
| 			this._pushMessage(conversation, message); | ||||
| 		} | ||||
| 		this._invokeCallback(message); | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user