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?) {
if (channel == event?.channel?.name) {
storeRecap(event.user!!.nick, event.action, true)
event?.channel?.let {
if (channel == it.name) {
event.user?.let { user ->
storeRecap(user.nick, event.action, true)
}
}
}
}
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.shutdown()
}
override fun onPrivateMessage(event: PrivateMessageEvent?) {
if (logger.isTraceEnabled) logger.trace("<<< ${event!!.user!!.nick}: ${event.message}")
val cmds = event!!.message.trim().split(" ".toRegex(), 2)
event?.user?.let { user ->
if (logger.isTraceEnabled) logger.trace("<<< ${user.nick}: ${event.message}")
val cmds = event.message.trim().split(" ".toRegex(), 2)
val cmd = cmds[0].lowercase()
val args = if (cmds.size > 1) {
cmds[1].trim()
@ -187,19 +194,23 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
helpDefault(event)
}
}
}
override fun onJoin(event: JoinEvent?) {
with(event!!.getBot<PircBotX>()) {
if (event.user!!.nick == nick) {
event?.user?.let { user ->
with(event.getBot<PircBotX>()) {
if (user.nick == nick) {
LinksMgr.twitter.notification("$nick has joined ${event.channel.name} on irc://$serverHostname")
} else {
tell.send(event)
}
}
}
}
override fun onMessage(event: MessageEvent?) {
val sender = event!!.user!!.nick
event?.user?.let { user ->
val sender = user.nick
val message = event.message
tell.send(event)
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)
}
}
override fun onNickChange(event: NickChangeEvent?) {
tell.send(event!!)
event?.let { tell.send(event) }
}
override fun onPart(event: PartEvent?) {
with(event!!.getBot<PircBotX>()) {
if (event.user!!.nick == nick) {
event?.user?.let { user ->
with(event.getBot<PircBotX>()) {
if (user.nick == nick) {
LinksMgr.twitter.notification("$nick has left ${event.channel.name} on irc://$serverHostname")
}
}
}
}
companion object {
@Throws(Exception::class)

View file

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