From ebfe42107a6902020376bf7aef708e8d44525150 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 20 Jun 2022 21:20:17 +0600 Subject: [PATCH] readme updates --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 426ed73..4a84b8b 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,24 @@ This tutorial aimed to show how you may break your bot parts into different modules and run it easily change the +## Introduction before introduction :) + +This project uses [Gradle](https://gradle.org) build tool and there is high chance to see gradle in the other kotlin configuration. +Each part will be included in separated gradle module as [Plugin](https://github.com/InsanusMokrassar/PlaguBot/blob/master/plugin/src/main/kotlin/dev/inmo/plagubot/Plugin.kt) from [PlaguBot](https://github.com/InsanusMokrassar/PlaguBot). +Of course, that does not mean that all the logic of each plugin will be only in one file, but I will try hard to not forget mention it. + +Basically, PlaguBot uses [this template of config](https://github.com/InsanusMokrassar/PlaguBot/blob/master/template.config.json), but in each (or almost each) part of this tutorial will be shown how to add your own fields to this config and deserialize it. +There are several important things about plugins: + +* Plugin realization (excepting abstract ones, of course) must have empty constructor for creating an instance or be an object (like `object MyPlugin : Plugin`) +* Plugin have two sections - for `DI` setup (lets name it config stage) and bot setup (plelaunch stage) +* Plugin have access predefined things from `koin` in `setupBotPlugin` or received in modules scopes: + * `PlaguBot` config + * `PlaguBot` plugins + * Database and its config + * Default `Json` format (can be accessed as `koin.get()`) + * The `PlaguBot` itself + ## How to launch First, you need to change bot token inside of [config.json](config.json). The other parts should be described in the readmes of the modules with these parts.