https://github.com/approvers/flisan_aimless_bot
フライさんがJDA on kotlinで遊びます
https://github.com/approvers/flisan_aimless_bot
Last synced: 27 days ago
JSON representation
フライさんがJDA on kotlinで遊びます
- Host: GitHub
- URL: https://github.com/approvers/flisan_aimless_bot
- Owner: approvers
- Created: 2020-05-19T12:40:42.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-04T06:29:54.000Z (about 6 years ago)
- Last Synced: 2026-04-21T09:03:32.976Z (2 months ago)
- Language: Kotlin
- Size: 104 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flisan Aimless Bot
フライさんが書いたBotなのだ
## Aimless?
特に目的はなかったんですけど、将来的には████侍ゲームを実装したいなって思ってます
## コマンドの種類
†接頭辞ありコマンド†が頭に`//`を**付けて**実行するコマンドです
†接頭辞なしコマンド†が頭に`//`を**付けないで**実行するコマンドです
### 書式
```
//接頭辞ありコマンド サブコマンド 引数...
```
## 構造
- `(なんかいっぱい)/io.github.loxygen.aimlessbot/`
- `Main.kt`
エントリポイントです
- `lib/`
- `Client.kt`
クライアント本体です
- `commands/`
- `abc/`
- `CommandExecutor.kt`
コマンドの***†抽象基底クラス†***です
すべてのコマンドは`CommandExecutor`に通じる
- `annotations/`
- `Argument.kt`
コマンドが引数を取りたいときにつけるアノテーションです
- `SubCommand.kt`
そのメソッドが接頭辞**あり**コマンドのサブコマンドであることを示すアノテーションです
- `PrefixlessCommand.kt`
そのメソッドが接頭辞**なし**コマンドであることを示すアノテーションです
- `CommandInfo.kt`
接頭辞ありコマンドの情報を保持するデータクラスです
- `CommandManager.kt`
†すべてのコマンドを司る†クラスです
- `CommandResult.kt`
コマンドの実行結果を示す列挙体です
- `cmds`
ここにコマンドを増やしていくつもりでいます
- `tests`
- `Ping.kt` / `OoooohShiiit.kt` / `Mixed.kt`
テストに使うコマンドの実装です
## コマンドの実装の仕方
```kotlin
object Command : CommandExecutor() {
override val commandInfo = CommandInfo(
identify = "cmd",
name = "コマンドの名前",
description = "コマンドの説明"
)
@Command(identify = "exec", name = "サブコマンドの名前", description = "サブコマンドの説明")
@Argument(count = 1)
fun someNiceCommand(args: List, event: MessageReceivedCommand) : CommandResult {
/* Some nice 処理 */
return CommandResult.SUCCESS
}
@PrefixlessCommand(triggerRegex = "正規表現")
fun someNicePrefixlessCommand(args: List, event: MessageReceivedCommand) : CommandResult {
/* Some nice 処理 */
return CommandResult.SUCCESS
}
}
```
`@Argument` は引数を受け取らなければ書かなくてもいいです(引数を渡すとエラーになります)
## つらいのだ
IntelliJ IDEAでMarkdown編集しようとしたら文字化けしました…
Typoraはいいぞ