Improved event null-checks.

This commit is contained in:
Erik C. Thauvin 2021-11-16 19:38:14 -08:00
parent ba9d79ce60
commit bc75d1eb73
2 changed files with 58 additions and 42 deletions

View file

@ -162,21 +162,28 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
} }
override fun onAction(event: ActionEvent?) { override fun onAction(event: ActionEvent?) {
if (channel == event?.channel?.name) { event?.channel?.let {
storeRecap(event.user!!.nick, event.action, true) if (channel == it.name) {
event.user?.let { user ->
storeRecap(user.nick, event.action, true)
}
}
} }
} }
override fun onDisconnect(event: DisconnectEvent?) { override fun onDisconnect(event: DisconnectEvent?) {
with(event!!.getBot<PircBotX>()) { event?.let {
with(event.getBot<PircBotX>()) {
LinksMgr.twitter.notification("$nick disconnected from irc://$serverHostname") LinksMgr.twitter.notification("$nick disconnected from irc://$serverHostname")
} }
}
LinksMgr.twitter.shutdown() LinksMgr.twitter.shutdown()
} }
override fun onPrivateMessage(event: PrivateMessageEvent?) { override fun onPrivateMessage(event: PrivateMessageEvent?) {
if (logger.isTraceEnabled) logger.trace("<<< ${event!!.user!!.nick}: ${event.message}") event?.user?.let { user ->
val cmds = event!!.message.trim().split(" ".toRegex(), 2) if (logger.isTraceEnabled) logger.trace("<<< ${user.nick}: ${event.message}")
val cmds = event.message.trim().split(" ".toRegex(), 2)
val cmd = cmds[0].lowercase() val cmd = cmds[0].lowercase()
val args = if (cmds.size > 1) { val args = if (cmds.size > 1) {
cmds[1].trim() cmds[1].trim()
@ -187,19 +194,23 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
helpDefault(event) helpDefault(event)
} }
} }
}
override fun onJoin(event: JoinEvent?) { override fun onJoin(event: JoinEvent?) {
with(event!!.getBot<PircBotX>()) { event?.user?.let { user ->
if (event.user!!.nick == nick) { with(event.getBot<PircBotX>()) {
if (user.nick == nick) {
LinksMgr.twitter.notification("$nick has joined ${event.channel.name} on irc://$serverHostname") LinksMgr.twitter.notification("$nick has joined ${event.channel.name} on irc://$serverHostname")
} else { } else {
tell.send(event) tell.send(event)
} }
} }
} }
}
override fun onMessage(event: MessageEvent?) { override fun onMessage(event: MessageEvent?) {
val sender = event!!.user!!.nick event?.user?.let { user ->
val sender = user.nick
val message = event.message val message = event.message
tell.send(event) tell.send(event)
if (message.matches("(?i)${Pattern.quote(event.bot().nick)}:.*".toRegex())) { // mobibot: <command> if (message.matches("(?i)${Pattern.quote(event.bot().nick)}:.*".toRegex())) { // mobibot: <command>
@ -220,18 +231,21 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
} }
storeRecap(sender, message, false) storeRecap(sender, message, false)
} }
}
override fun onNickChange(event: NickChangeEvent?) { override fun onNickChange(event: NickChangeEvent?) {
tell.send(event!!) event?.let { tell.send(event) }
} }
override fun onPart(event: PartEvent?) { override fun onPart(event: PartEvent?) {
with(event!!.getBot<PircBotX>()) { event?.user?.let { user ->
if (event.user!!.nick == nick) { with(event.getBot<PircBotX>()) {
if (user.nick == nick) {
LinksMgr.twitter.notification("$nick has left ${event.channel.name} on irc://$serverHostname") LinksMgr.twitter.notification("$nick has left ${event.channel.name} on irc://$serverHostname")
} }
} }
} }
}
companion object { companion object {
@Throws(Exception::class) @Throws(Exception::class)

View file

@ -63,7 +63,9 @@ class CryptoPrices : ThreadedModule() {
event.respond("${price.base} current price is $amount [${price.currency}]") event.respond("${price.base} current price is $amount [${price.currency}]")
} catch (e: CryptoException) { } catch (e: CryptoException) {
if (logger.isWarnEnabled) logger.warn("$debugMessage => ${e.statusCode}", e) if (logger.isWarnEnabled) logger.warn("$debugMessage => ${e.statusCode}", e)
event.sendMessage(e.message!!) e.message?.let {
event.sendMessage(it)
}
} catch (e: IOException) { } catch (e: IOException) {
if (logger.isErrorEnabled) logger.error(debugMessage, e) if (logger.isErrorEnabled) logger.error(debugMessage, e)
event.sendMessage("An IO error has occurred while retrieving the cryptocurrency market price.") event.sendMessage("An IO error has occurred while retrieving the cryptocurrency market price.")