Skip to content

Commit 0024cd3

Browse files
committed
Update README
- Reduced length of features section, linked to wiki - Link to wiki to get started - Rewording - Emojis for major sections, should help distinguish them more
1 parent 3f1a8c7 commit 0024cd3

File tree

1 file changed

+44
-53
lines changed

1 file changed

+44
-53
lines changed

README.md

Lines changed: 44 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,17 @@ A framework for [JDA](https://github.com/discord-jda/JDA) with everything you ne
2424

2525
It supports Java 17+ and provides first-class Kotlin support, meaning you get full language support and a few extras!
2626

27-
## Features
28-
The framework being built around events and dependency injection,
29-
your project can take advantage of that and avoid passing objects around,
30-
while also easily being able to use services provided by the framework.
31-
32-
### Commands
33-
* Automatic registration of commands, resolvers, services, etc... with full dependency injection
34-
* Can be used with annotations (or with a Kotlin DSL)
35-
36-
### Application commands
37-
* Slash commands with automatic & customizable argument processing
38-
* Supports choices, min/max values/length, channel types and autocomplete
39-
* Options can be grouped into objects
40-
* Context menu commands (User / Message)
41-
* Automatic, smart application commands registration
27+
## 🧪 Features
28+
29+
### [Dependency injection](https://bc.freya02.dev/3.X/using-botcommands/dependency-injection/)
30+
31+
Everything is built around it, it takes care of passing instances around, no need to instantiate classes, no passing everything everywhere.
32+
33+
It can also be replaced with Spring IoC.
34+
35+
### [Application commands](https://bc.freya02.dev/3.X/using-commands/application-commands/)
36+
37+
Annotated and declarative application commands, with customizable argument processing, and smart automatic registration.
4238

4339
<details>
4440
<summary>Example</summary>
@@ -67,11 +63,9 @@ class SlashBan {
6763

6864
</details>
6965

70-
### Text commands
71-
* Supports prefix and mentions
72-
* With two parsing modes:
73-
1. Each parameter is an argument, works the same as slash commands
74-
2. Manual argument consumption
66+
### [Text commands](https://bc.freya02.dev/3.X/using-commands/text-commands/)
67+
68+
Annotated and declarative application commands, with customizable argument processing or manual token consumption, supports prefix and mentions.
7569

7670
<details>
7771
<summary>Example</summary>
@@ -102,41 +96,38 @@ Here's how the help content would look with [a subcommand and a few more variati
10296
![Help content example](assets/command_help_embed_example.png)
10397
</details>
10498

105-
### Components and modals
106-
* Unlimited data storage for components, with persistent and ephemeral storage
107-
* Both modals and persistent components have a way to pass data
99+
### [Components](https://bc.freya02.dev/3.X/using-components/)
108100

109-
### Event handlers
110-
* Custom (annotated) event handlers, with priorities and async
101+
Database-backed components, can be used with callbacks, or bound to a method, optionally with passed data.
111102

112-
### Localization
113-
* Entirely localizable, from the command declaration to the bot responses
103+
### [Modals](https://bc.freya02.dev/3.X/using-modals/)
114104

115-
### Dependency injection
116-
* Loads everything and passes objects automatically
117-
* Can create custom conditions to disable services/commands at startup
118-
* Can be replaced with Spring IoC
105+
Similar API to components, can be used with callbacks, or bound to a method, optionally with passed data.
119106

120-
### Utilities
121-
* A PostgreSQL (and H2) database abstraction, with logged queries
122-
* An event waiter with (multiple) preconditions, timeouts and consumers for every completion state
123-
* Message parsers (tokenizers, see `RichTextParser`) and emoji resolvers (turning `:joy:` into 😂)
124-
* Paginators and menus of different types (using components!)
107+
### [Event handlers](https://bc.freya02.dev/3.X/using-botcommands/events/)
125108

126-
And way more features!
109+
Custom (annotated) event handlers, with priorities and async.
127110

128-
## Getting Started
111+
### [Localization](https://bc.freya02.dev/3.X/using-botcommands/localization/)
112+
113+
Use powerful localization for your commands and replies.
114+
115+
### Other utilities
116+
117+
* A PostgreSQL (and H2) [database abstraction](https://bc.freya02.dev/3.X/using-botcommands/database/), with logged queries
118+
* A smart [event waiter](https://docs.bc.freya02.dev/BotCommands-core/io.github.freya022.botcommands.api.core.waiter/-event-waiter/index.html) with (multiple) preconditions, timeouts and consumers for every completion state
119+
* [Message parsers](https://docs.bc.freya02.dev/BotCommands-core/io.github.freya022.botcommands.api.utils/-rich-text-finder/index.html) and [emoji resolvers](https://docs.bc.freya02.dev/BotCommands-core/io.github.freya022.botcommands.api.utils/-emoji-utils/index.html) (turning `:joy:` into 😂)
120+
* [Paginators and menus](https://docs.bc.freya02.dev/BotCommands-core/io.github.freya022.botcommands.api.pagination/-paginators/index.html) of different types (using components!)
121+
122+
Amongst others!
123+
124+
## 🏃‍♂️ Getting Started
129125
You are strongly recommended to have some experience with Kotlin (or Java),
130126
OOP, [JDA](https://github.com/discord-jda/JDA) and Dependency Injection basics before you start using this library.
131127

132-
### Prerequisites
133-
* An [OpenJDK 17+](https://adoptium.net/temurin/releases/?version=21) installation
134-
* For languages other than Kotlin, enable method parameters names, please refer to the [wiki page](https://bc.freya02.dev/3.X/using-botcommands/parameter-names/)
135-
136-
Head over to [the wiki](https://bc.freya02.dev/3.X/setup/getting-started/) to get started,
137-
you can also check out the [examples](src/examples).
128+
Head over to [the wiki](https://bc.freya02.dev/3.X/setup/getting-started/) to get started.
138129

139-
## Installation
130+
## 🔬 Installation
140131
After [adding JDA](https://github.com/discord-jda/JDA?tab=readme-ov-file#-installation):
141132

142133
[![BotCommands on maven central][bc-maven-central-shield] ][bc-maven-central-link]
@@ -166,7 +157,7 @@ dependencies {
166157

167158
To use the latest, unreleased changes, see [SNAPSHOTS.md](SNAPSHOTS.md).
168159

169-
## Modules
160+
## 🧩 Modules
170161
The base `BotCommands` artifact will include modules often used, while others are optional.
171162

172163
### Default modules
@@ -176,10 +167,10 @@ The base `BotCommands` artifact will include modules often used, while others ar
176167
- [`BotCommands-jda-ktx`](./BotCommands-jda-ktx): provides a set of Kotlin extensions and top-level functions, similar to [jda-ktx](https://github.com/MinnDevelopment/jda-ktx).
177168
- [`BotCommands-spring`](./BotCommands-spring): Support for Spring Boot
178169
- [`BotCommands-typesafe-messages`](./BotCommands-typesafe-messages): Allows defining functions to retrieve text content from your bundles, providing better ergonomics and safety with load-time validation
179-
- [`BotCommands-method-accessors-classfile`](./BotCommands-method-accessors): Improved alternative for this framework to call your functions
170+
- [`BotCommands-method-accessors-classfile`](./BotCommands-method-accessors): An alternative to reflective calls, leading to cleaner exceptions and faster calls
180171
- [`BotCommands-restarter`](./BotCommands-restarter): Automatically restarts of your bot as your code changes
181172

182-
## Sample usage
173+
## 💡 Sample usage
183174
Here is how you would create a slash command that sends a message in a specified channel.
184175
<details>
185176
<summary>Kotlin</summary>
@@ -307,7 +298,7 @@ public class SlashSay {
307298
```
308299
</details>
309300

310-
## Live templates
301+
## 💪 Live templates
311302

312303
IntelliJ IDEA users can use [live templates](https://www.jetbrains.com/help/idea/using-live-templates.html) provided in [this zip file](BotCommands%203.X%20Live%20Templates.zip),
313304
helping you make commands and other handlers with predefined templates, for both Kotlin and Java,
@@ -321,22 +312,22 @@ in the `BotCommands 3.X - [Language]` group.
321312

322313
For an installation guide, you can follow [this guide from JetBrains](https://www.jetbrains.com/help/idea/sharing-live-templates.html#import).
323314

324-
## Support
315+
## 🧑‍💻 Support
325316

326317
Don't hesitate to join [the support server](https://discord.gg/frpCcQfvTz) if you have any question!
327318

328-
## Breaking changes
319+
## 🚨 Breaking changes
329320

330321
Due to the nature of JDA (and the Discord API), and to always improve the developer experience,
331322
the library could introduce breaking changes to allow quick adoption of newer features and better practices.
332323

333324
While attempting to reduce breaking changes by using deprecation mechanisms,
334325
it is not always possible or practical to use deprecations.
335326

336-
Small breaking/deprecating changes should be noticed via an increase of the **minor** version (`3.0.0` -> `3.1.0`),
327+
Small breaking/deprecating changes should be noticed via an increase of the **minor** version (`3.0.Z` -> `3.1.0`),
337328
while larger breaking changes should be seing an increase of the **major** version (`3.Y.Z` -> `4.0.0`).
338329

339-
## Contributing
330+
## 🛠️ Contributing
340331
If you want to contribute, make sure to base your branch on `3.X`, and create your PR from it.
341332

342333
It would be appreciated to focus on improving the documentation,

0 commit comments

Comments
 (0)