- GNU IRC Lib: https://gitlab.com/juancolacelli/irclib
- gson: https://github.com/google/gson
- jsoup: https://jsoup.org/
- GNU Librebot: https://gitlab.com/juancolacelli/librebot
val server = Server("irc.freenode.net", 6697, true)
val user = User("ircbot", "ircbot", "GNU IRCBot - https://gitlab.com/juancolacelli/ircbot")
val bot = IRCBot(server, user)
bot.connect()
class BasicPlugin : Plugin {
private val listener = object : OnConnectListener {
override fun onConnect(connection: Connection, server: Server, user: User) {
connection.join("#gnu")
}
}
override var name = "basic_plugin"
override fun onLoad(bot: IRCBot) {
bot.addListener(listener)
}
override fun onUnload(bot: IRCBot) {
bot.removeListener(listener)
}
}
bot.pluginLoader.add(BasicPlugin())
Plugin | Description |
---|---|
Access | Grant/Revoke bot access |
Auto OP | Claim op when join a channel |
Auto reconnect | Auto-reconnect on disconnection |
Auto response | Auto-response when text triggers are detected |
CTCP VERSION | Customize your CTCP VERSION response |
Help | Bot help |
IRCop | IRCop authentication |
Join and part | Join and part channels by request |
Plugin loader | Plugins can be loaded and unloaded by request |
NickServ | NickServ authentication |
Operator | Basic operator commands (i.e, !op, !voice, etc.) |
Re-join on kick | Join channels when kicked |
RSS feed | Get RSS feed notices and send them to subscribers |
Search | Search on DuckDuckGo |
Torrent | Search torrents on ThePirateBay |
Translate | Translate text using Apertium |
Uptime | Shows bot uptime |
Website title | Get website title when an URL is detected |