{"id":20134825,"url":"https://github.com/approvers/flisan_aimless_bot","last_synced_at":"2026-06-08T17:32:07.286Z","repository":{"id":103330892,"uuid":"265243877","full_name":"approvers/flisan_aimless_bot","owner":"approvers","description":"フライさんがJDA on kotlinで遊びます","archived":false,"fork":false,"pushed_at":"2020-06-04T06:29:54.000Z","size":106,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-21T09:03:32.976Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/approvers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-19T12:40:42.000Z","updated_at":"2020-06-04T06:29:57.000Z","dependencies_parsed_at":"2023-05-01T11:04:30.146Z","dependency_job_id":null,"html_url":"https://github.com/approvers/flisan_aimless_bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/approvers/flisan_aimless_bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/approvers%2Fflisan_aimless_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/approvers%2Fflisan_aimless_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/approvers%2Fflisan_aimless_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/approvers%2Fflisan_aimless_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/approvers","download_url":"https://codeload.github.com/approvers/flisan_aimless_bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/approvers%2Fflisan_aimless_bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34073758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T21:12:02.997Z","updated_at":"2026-06-08T17:32:07.270Z","avatar_url":"https://github.com/approvers.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flisan Aimless Bot\nフライさんが書いたBotなのだ\n\n## Aimless?\n特に目的はなかったんですけど、将来的には████侍ゲームを実装したいなって思ってます\n\n## コマンドの種類\n\n†接頭辞ありコマンド†が頭に`//`を**付けて**実行するコマンドです\u003cbr\u003e\n†接頭辞なしコマンド†が頭に`//`を**付けないで**実行するコマンドです\n\n### 書式\n\n```\n//接頭辞ありコマンド サブコマンド 引数...\n```\n\n## 構造\n\n- `(なんかいっぱい)/io.github.loxygen.aimlessbot/`\n\n  - `Main.kt`\u003cbr\u003e\n    エントリポイントです\n  - `lib/`\n    - `Client.kt`\u003cbr\u003e\n      クライアント本体です\n    - `commands/`\n      - `abc/`\n        - `CommandExecutor.kt`\u003cbr\u003e\n          コマンドの***†抽象基底クラス†***です\n          すべてのコマンドは`CommandExecutor`に通じる\n      - `annotations/`\n        - `Argument.kt`\u003cbr\u003e\n          コマンドが引数を取りたいときにつけるアノテーションです\n        - `SubCommand.kt`\u003cbr\u003e\n          そのメソッドが接頭辞**あり**コマンドのサブコマンドであることを示すアノテーションです\n        - `PrefixlessCommand.kt`\u003cbr\u003e\n          そのメソッドが接頭辞**なし**コマンドであることを示すアノテーションです\n      - `CommandInfo.kt`\u003cbr\u003e\n        接頭辞ありコマンドの情報を保持するデータクラスです\n      - `CommandManager.kt`\u003cbr\u003e\n        †すべてのコマンドを司る†クラスです\n      - `CommandResult.kt`\u003cbr\u003e\n        コマンドの実行結果を示す列挙体です\n  - `cmds`\u003cbr\u003e\n    ここにコマンドを増やしていくつもりでいます\n    - `tests`\n      - `Ping.kt` / `OoooohShiiit.kt` / `Mixed.kt`\u003cbr\u003e\n        テストに使うコマンドの実装です\n\n## コマンドの実装の仕方\n\n```kotlin\nobject Command : CommandExecutor() {\n\n    override val commandInfo = CommandInfo(\n        identify = \"cmd\",\n        name = \"コマンドの名前\",\n        description = \"コマンドの説明\"\n    )\n\n    @Command(identify = \"exec\", name = \"サブコマンドの名前\", description = \"サブコマンドの説明\")\n    @Argument(count = 1)\n    fun someNiceCommand(args: List\u003cString\u003e, event: MessageReceivedCommand) : CommandResult {\n        /* Some nice 処理 */\n        return CommandResult.SUCCESS\n    }\n\n    @PrefixlessCommand(triggerRegex = \"正規表現\")\n    fun someNicePrefixlessCommand(args: List\u003cString\u003e, event: MessageReceivedCommand) : CommandResult {\n        /* Some nice 処理 */\n        return CommandResult.SUCCESS\n    }\n}\n```\n\n`@Argument` は引数を受け取らなければ書かなくてもいいです(引数を渡すとエラーになります)\n\n## つらいのだ\n\nIntelliJ IDEAでMarkdown編集しようとしたら文字化けしました…\u003cbr\u003e\n\nTyporaはいいぞ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapprovers%2Fflisan_aimless_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapprovers%2Fflisan_aimless_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapprovers%2Fflisan_aimless_bot/lists"}