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,73 +162,87 @@ 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 {
LinksMgr.twitter.notification("$nick disconnected from irc://$serverHostname") with(event.getBot<PircBotX>()) {
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 cmd = cmds[0].lowercase() val cmds = event.message.trim().split(" ".toRegex(), 2)
val args = if (cmds.size > 1) { val cmd = cmds[0].lowercase()
cmds[1].trim() val args = if (cmds.size > 1) {
} else "" cmds[1].trim()
if (cmd.startsWith(Constants.HELP_CMD)) { // help } else ""
helpResponse(event, args) if (cmd.startsWith(Constants.HELP_CMD)) { // help
} else if (!addons.exec(channel, cmd, args, event)) { // Execute command or module helpResponse(event, args)
helpDefault(event) } else if (!addons.exec(channel, cmd, args, event)) { // Execute command or module
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>()) {
LinksMgr.twitter.notification("$nick has joined ${event.channel.name} on irc://$serverHostname") if (user.nick == nick) {
} else { LinksMgr.twitter.notification("$nick has joined ${event.channel.name} on irc://$serverHostname")
tell.send(event) } else {
tell.send(event)
}
} }
} }
} }
override fun onMessage(event: MessageEvent?) { override fun onMessage(event: MessageEvent?) {
val sender = event!!.user!!.nick event?.user?.let { user ->
val message = event.message val sender = user.nick
tell.send(event) val message = event.message
if (message.matches("(?i)${Pattern.quote(event.bot().nick)}:.*".toRegex())) { // mobibot: <command> tell.send(event)
if (logger.isTraceEnabled) logger.trace(">>> $sender: $message") if (message.matches("(?i)${Pattern.quote(event.bot().nick)}:.*".toRegex())) { // mobibot: <command>
val cmds = message.substring(message.indexOf(':') + 1).trim().split(" ".toRegex(), 2) if (logger.isTraceEnabled) logger.trace(">>> $sender: $message")
val cmd = cmds[0].lowercase() val cmds = message.substring(message.indexOf(':') + 1).trim().split(" ".toRegex(), 2)
val args = if (cmds.size > 1) { val cmd = cmds[0].lowercase()
cmds[1].trim() val args = if (cmds.size > 1) {
} else "" cmds[1].trim()
if (cmd.startsWith(Constants.HELP_CMD)) { // mobibot: help } else ""
helpResponse(event, args) if (cmd.startsWith(Constants.HELP_CMD)) { // mobibot: help
} else { helpResponse(event, args)
// Execute module or command } else {
addons.exec(channel, cmd, args, event) // Execute module or command
addons.exec(channel, cmd, args, event)
}
} else if (addons.match(channel, event)) { // Links, e.g.: https://www.example.com/ or L1: , etc.
if (logger.isTraceEnabled) logger.trace(">>> $sender: $message")
} }
} else if (addons.match(channel, event)) { // Links, e.g.: https://www.example.com/ or L1: , etc. storeRecap(sender, message, false)
if (logger.isTraceEnabled) logger.trace(">>> $sender: $message")
} }
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>()) {
LinksMgr.twitter.notification("$nick has left ${event.channel.name} on irc://$serverHostname") if (user.nick == nick) {
LinksMgr.twitter.notification("$nick has left ${event.channel.name} on irc://$serverHostname")
}
} }
} }
} }

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.")