Added shudown() with associated Die and Kill commands.
This commit is contained in:
parent
484f11664e
commit
6644400a23
4 changed files with 135 additions and 3 deletions
|
@ -24,7 +24,6 @@
|
|||
<ID>NestedBlockDepth:EntriesMgr.kt$EntriesMgr$ fun saveEntries( bot: Mobibot, entries: List<EntryLink>, history: MutableList<String>, isDayBackup: Boolean )</ID>
|
||||
<ID>NestedBlockDepth:EntriesMgr.kt$EntriesMgr$// Daily backup private fun dailyBackup( bot: Mobibot, history: MutableList<String> )</ID>
|
||||
<ID>NestedBlockDepth:EntryLink.kt$EntryLink$ private fun setTags(tags: List<String?>)</ID>
|
||||
<ID>NestedBlockDepth:FeedReader.kt$FeedReader$ override fun run()</ID>
|
||||
<ID>NestedBlockDepth:GoogleSearch.kt$GoogleSearch$ override fun run(sender: String, cmd: String, args: String, isPrivate: Boolean)</ID>
|
||||
<ID>NestedBlockDepth:LinksMgr.kt$LinksMgr$override fun commandResponse( sender: String, login: String, args: String, isOp: Boolean, isPrivate: Boolean )</ID>
|
||||
<ID>NestedBlockDepth:Lookup.kt$Lookup$override fun commandResponse( sender: String, cmd: String, args: String, isPrivate: Boolean )</ID>
|
||||
|
@ -45,7 +44,6 @@
|
|||
<ID>ThrowsCount:StockQuote.kt$StockQuote.Companion$@Throws(ModuleException::class) private fun getJsonResponse(response: String, debugMessage: String): JSONObject</ID>
|
||||
<ID>ThrowsCount:Weather2.kt$Weather2.Companion$ @JvmStatic @Throws(ModuleException::class) fun getWeather(query: String, apiKey: String?): List<Message></ID>
|
||||
<ID>TooGenericExceptionCaught:CryptoPrices.kt$CryptoPrices$e: Exception</ID>
|
||||
<ID>TooGenericExceptionCaught:FeedReader.kt$FeedReader$e: Exception</ID>
|
||||
<ID>TooGenericExceptionCaught:Mobibot.kt$Mobibot$e: Exception</ID>
|
||||
<ID>TooGenericExceptionCaught:Mobibot.kt$Mobibot$ex: Exception</ID>
|
||||
<ID>TooGenericExceptionCaught:StockQuote.kt$StockQuote.Companion$e: NullPointerException</ID>
|
||||
|
|
|
@ -45,8 +45,10 @@ import net.thauvin.erik.mobibot.commands.AddLog
|
|||
import net.thauvin.erik.mobibot.commands.ChannelFeed
|
||||
import net.thauvin.erik.mobibot.commands.Cycle
|
||||
import net.thauvin.erik.mobibot.commands.Debug
|
||||
import net.thauvin.erik.mobibot.commands.Die
|
||||
import net.thauvin.erik.mobibot.commands.Ignore
|
||||
import net.thauvin.erik.mobibot.commands.Info
|
||||
import net.thauvin.erik.mobibot.commands.Kill
|
||||
import net.thauvin.erik.mobibot.commands.Me
|
||||
import net.thauvin.erik.mobibot.commands.Modules
|
||||
import net.thauvin.erik.mobibot.commands.Msg
|
||||
|
@ -260,7 +262,6 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Responds with the default, commands or modules help.
|
||||
*/
|
||||
|
@ -468,6 +469,24 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shutdown the bot.
|
||||
*/
|
||||
fun shutdown(sender: String, now: Boolean = false) {
|
||||
if (now) { // kill
|
||||
twitter.notification("$name killed by $sender on $channel")
|
||||
sendRawLine("QUIT :Poof!")
|
||||
} else {
|
||||
timer.cancel()
|
||||
twitter.shutdown()
|
||||
twitter.notification("$name stopped by $sender on $channel")
|
||||
@Suppress("MagicNumber")
|
||||
sleep(3)
|
||||
quitServer("The Bot Is Out There!")
|
||||
}
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sleeps for the specified number of seconds.
|
||||
*/
|
||||
|
@ -654,9 +673,11 @@ class Mobibot(nickname: String, channel: String, logsDirPath: String, p: Propert
|
|||
addons.add(AddLog(this), p)
|
||||
addons.add(ChannelFeed(this, channelName), p)
|
||||
addons.add(Cycle(this), p)
|
||||
addons.add(Die(this), p)
|
||||
addons.add(Debug(this), p)
|
||||
addons.add(Ignore(this), p)
|
||||
addons.add(Info(this), p)
|
||||
addons.add(Kill(this), p)
|
||||
addons.add(Me(this), p)
|
||||
addons.add(Modules(this), p)
|
||||
addons.add(Msg(this), p)
|
||||
|
|
57
src/main/kotlin/net/thauvin/erik/mobibot/commands/Die.kt
Normal file
57
src/main/kotlin/net/thauvin/erik/mobibot/commands/Die.kt
Normal file
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* Die.kt
|
||||
*
|
||||
* Copyright (c) 2004-2021, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of this project nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.thauvin.erik.mobibot.commands
|
||||
|
||||
import net.thauvin.erik.mobibot.Mobibot
|
||||
import net.thauvin.erik.mobibot.Utils.helpFormat
|
||||
|
||||
class Die(bot: Mobibot) : AbstractCommand(bot) {
|
||||
override val name = "die"
|
||||
override val help = emptyList<String>()
|
||||
override val isOp = true
|
||||
override val isPublic = false
|
||||
override val isVisible = false
|
||||
|
||||
override fun commandResponse(
|
||||
sender: String,
|
||||
login: String,
|
||||
args: String,
|
||||
isOp: Boolean,
|
||||
isPrivate: Boolean
|
||||
) {
|
||||
if (isOp) {
|
||||
bot.send("$sender has just signed my death sentence.")
|
||||
bot.shutdown(sender)
|
||||
}
|
||||
}
|
||||
}
|
56
src/main/kotlin/net/thauvin/erik/mobibot/commands/Kill.kt
Normal file
56
src/main/kotlin/net/thauvin/erik/mobibot/commands/Kill.kt
Normal file
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* Kill.kt
|
||||
*
|
||||
* Copyright (c) 2004-2021, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of this project nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.thauvin.erik.mobibot.commands
|
||||
|
||||
import net.thauvin.erik.mobibot.Mobibot
|
||||
import net.thauvin.erik.mobibot.Utils.helpFormat
|
||||
|
||||
class Kill(bot: Mobibot) : AbstractCommand(bot) {
|
||||
override val name = "kill"
|
||||
override val help = emptyList<String>()
|
||||
override val isOp = true
|
||||
override val isPublic = false
|
||||
override val isVisible = false
|
||||
|
||||
override fun commandResponse(
|
||||
sender: String,
|
||||
login: String,
|
||||
args: String,
|
||||
isOp: Boolean,
|
||||
isPrivate: Boolean
|
||||
) {
|
||||
if (isOp) {
|
||||
bot.shutdown(sender, true)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue