diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnectListener.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnectListener.scala index e3a74bfa..5018133b 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnectListener.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnectListener.scala @@ -14,7 +14,7 @@ class TwitchChatConnectListener(fn: (Boolean, String) => Unit) extends ListenerA override def onEvent(event: Event): Unit = { event match { case _: ConnectEvent => fn(true, "") - case e: ConnectAttemptFailedEvent => fn(false, "couldn't connect to irc chat server") + case _: ConnectAttemptFailedEvent => fn(false, "couldn't connect to irc chat server") case e: NoticeEvent => if (e.getNotice.contains("authentication failed")) { fn(false, "authentication failed") diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnector.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnector.scala index e925b08b..85d4d281 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnector.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/TwitchChatConnector.scala @@ -53,6 +53,8 @@ class TwitchChatConnector(override val sourceIdentifier: String) extends Connect def isJoined(channel: String): Boolean = channels.contains(channel) + def getUsername: String = bot.getNick + private def getConfig: Configuration = { if (credentials.isDefined) { diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatInputImpl.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatInputImpl.scala index e8bacb87..f7236696 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatInputImpl.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatInputImpl.scala @@ -30,6 +30,7 @@ class TwitchChatInputImpl extends EventInputImpl[TwitchEvent, chat.TwitchChatCon private val emoticonRegex = """(\d+)-(\d+)""".r private var currentChannel: Option[String] = None + private var ignoreOwnMessages = false private val onMessageFn = onMessage _ private val onUnknownFn = onUnknown _ @@ -41,7 +42,9 @@ class TwitchChatInputImpl extends EventInputImpl[TwitchEvent, chat.TwitchChatCon } private def onMessage(event: MessageEvent): Unit = { - if (currentChannel.isDefined && event.getChannelSource == currentChannel.get) { + if (currentChannel.isDefined && event.getChannelSource == currentChannel.get + && (!ignoreOwnMessages || event.getUser.getNick.toLowerCase != getUsername)) { + val message = event.getMessage val color = if (event.getV3Tags.get("color").contains("#")) event.getV3Tags.get("color") else "" val subscriber = event.getV3Tags.get("subscriber") == "1" @@ -103,6 +106,10 @@ class TwitchChatInputImpl extends EventInputImpl[TwitchEvent, chat.TwitchChatCon if (!sourceConnector.get.isJoined(currentChannel.get)) sourceConnector.get.joinChannel(currentChannel.get) } + override def getUsername: String = sourceConnector.get.getUsername + + override def ignoreOwnMessages(ignore: Boolean): Unit = this.ignoreOwnMessages = ignore + /** * Stops the input, called before source connector will shutdown * diff --git a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatOutputImpl.scala b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatOutputImpl.scala index edb19d36..8230a77c 100644 --- a/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatOutputImpl.scala +++ b/src/main/scala/org/codeoverflow/chatoverflow/requirement/service/twitch/chat/impl/TwitchChatOutputImpl.scala @@ -29,6 +29,8 @@ class TwitchChatOutputImpl extends OutputImpl[chat.TwitchChatConnector] with Twi if (!sourceConnector.get.isJoined(currentChannel.get)) sourceConnector.get.joinChannel(currentChannel.get) } + override def getUsername: String = sourceConnector.get.getUsername + /** * Stops the output, called before source connector will shutdown *