メソッド2つでモジュール完成
goroku.Base を埋め込めば、ライフサイクル・ストレージ・翻訳・クライアントは配線済みです。Name と Commands だけを宣言し、残りは必要なときだけ上書きします。
package modules
import "goroku/goroku"
type HTML struct{ goroku.Base }
func (m *HTML) Name() string { return "HTML" }
func (m *HTML) Commands() map[string]goroku.CommandHandler {
return map[string]goroku.CommandHandler{"html": m.HTMLCmd}
}
func (m *HTML) HTMLCmd(msg *goroku.Message) error {
code := msg.ArgsOrReply()
if code == "" {
return msg.Answer(m.T("no_args", "❌ <b>テキストを送るか、メッセージに返信してください</b>"))
}
return msg.Answer(code)
}これでファイル全体です。.html <b>やあ</b> は太字を描画し、メッセージへの返信で .html を送るとそのメッセージを描画します。
| やりたいこと | 参照 |
|---|---|
| 5分で動くものを作る | 最初のモジュール |
| 各メソッドの役割を理解する | モジュールの構造 |
| コマンドをグループ・管理者・返信に限定する | CommandMeta |
| 再起動をまたいでデータを保持する | ストレージ |
| 利用者に設定を提供する | 設定 |
| 他の人に配布する | モジュールの導入 |