Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chat_2チャンネルでコマンドを制限したい #26

Open
chipstar opened this issue Dec 15, 2017 · 2 comments
Open

chat_2チャンネルでコマンドを制限したい #26

chipstar opened this issue Dec 15, 2017 · 2 comments

Comments

@chipstar
Copy link
Contributor

実現したいこと

chat_2チャンネルでコマンドを制限したい

ゴール

caht_2チャンネルでは?いくら?犬などのコマンドを使用できなくしたい

相談したいこと

どなたか実装をお願いできないでしょうか、、、

@soyanakagawa
Copy link

チャンネルごとに許可するコマンドをホワイトリストで持つみたいなかんじでしょうか...

@harigel
Copy link
Contributor

harigel commented Dec 16, 2017

アイデア

bot.command にはオプションで以下が渡せます。

  • :channels : 動作するチャンネルを制限する
  • :description : コマンドの説明
  • :usage : 使い方

description, usageはdoscordrbオリジナルのhelpコマンドで表示できるはずです。
また、helpに表示させたくない隠しコマンド?は:help_availableオプションにfalseを指定することで可能です。

上記を利用して、

  • チャンネル毎にコマンドのallow, denyを制限する
  • helpをコマンド定義(bot.command)にまとめる
    ができると思うのですが、いかがでしょうか?

実装案

bot.commandにモンキーパッチをあてるか、ラッパーを作るかして、

  • 設定ファイルでチャンネルのallow, denyを管理する
  • bot.command [:foo, :foo_alias], description: "コマンドの説明を書く", usage: "コマンドの使い方を書く" do |event| ... というようにコマンドを定義する
  • ↑ラッパーを作る場合はdef_command names: [:foo, :foo_alias], desc: "説明", usage: "使い方" do |event| ...みたいなイメージでしょうか
  • description, usageも設定ファイルに書いてしまうというのもありかもしれません。(個人的にはスクリプト側に書いたほうがいいと思っています)

足りない情報

全てのチャンネル名を取得する方法が知りたいです。
allowしか指定できなそうなので、denyをやるためにはその他を全てallowする必要がありそうなので。

評価お願いします!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants