Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'applications/kosmos/bundles')
-rw-r--r--applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/ChatRoomMessageHandler.java31
1 files changed, 30 insertions, 1 deletions
diff --git a/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/ChatRoomMessageHandler.java b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/ChatRoomMessageHandler.java
index 865aab6fd..a8ac82768 100644
--- a/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/ChatRoomMessageHandler.java
+++ b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/ChatRoomMessageHandler.java
@@ -687,13 +687,42 @@ public class ChatRoomMessageHandler implements IChatRoomMessageHandler {
}
public void handleRoomMessage(IChatRoomMessage message) {
+ ID fromID = message.getFromID();
+ if (fromID.getName().equals("KOS-MOS")) {
+ return;
+ }
+
String msg = message.getMessage();
switch (msg.charAt(0)) {
case '~':
case '!':
- handleMessage(message.getFromID(), message.getChatRoomID(), msg
+ handleMessage(fromID, message.getChatRoomID(), msg
.substring(1).trim());
break;
+ default:
+ String upperCase = msg.toUpperCase();
+ if (upperCase.startsWith("KOS-MOS:") || upperCase.startsWith("KOS-MOS,")) {
+ msg = upperCase.substring(8).trim();
+ switch (msg.charAt(0)) {
+ case '~':
+ case '!':
+ handleMessage(fromID, message.getChatRoomID(), msg
+ .substring(1).trim());
+ break;
+ }
+ } else {
+ String[] split = msg.split("\\s"); //$NON-NLS-1$
+ for (int i = 0; i < split.length; i++) {
+ switch (split[i].charAt(0)) {
+ case '~':
+ case '!':
+ handleMessage(fromID, message
+ .getChatRoomID(), split[i].substring(1).trim());
+ break;
+ }
+ }
+ }
+ break;
}
}

Back to the top