2048 への返信

チャンネル毎に違う反応ren - No.2048
スクリプトの質問はここでいいのか悩みましたが、
limechat用なので書いてみることにしました。

※質問用に内容を省略してます。
同じ反応単語「test」を、特別なチャンネル「部屋2」
で発言した場合別のメッセージが出力されるというものを
作成しているのですが、
他人に発言してもらった場合、部屋2の設定が出力されません。
自分で発言した場合うまくいっているみたいです。

マクロなら簡単な設定ですが、スクリプトで作成したい条件なので
もしよろしければご教授のほどお願いします。


function event::onChannelText(prefix, channel, text)
{
{
if (channel.match(/^#部屋1$/) || channel.match(/^#部屋3$/)) {
if (text.match(/test/)) {

send(channel, '○○○');
}
} else if (channel.match(/^#部屋2$/)) {
if (text.match(/test/)) {

send(channel, '△△△');
}
}
}
}
Psychs - No.2049
他のクライントは、大文字小文字が違うチャンネル名を送ってきているかも知れないですね。

channel.match(/^#部屋2$/i)

のように、正規表現リテラルに i オプションをつけてみてください。
ren - No.2050
お早いお返事ありがとうございます。
助言いただいた内容で出力することができました。

指摘された通り、英文字で大小が違う名称設定が原因だったようです。

以下の項目を必ず守ってください。守っていない書き込みは無視されるかも知れません。

あなたにとっては1回の質問でも、答える側は1回ではないことを理解してください。

  • 文章はきちんと状況が伝わるように丁寧に書いてください。
  • 話し言葉での書き込みは禁止します。
  • 過去ログを検索して確認してから書き込んでください。
  • 内容がわかるタイトルをつけること。要望する場合は[要望]を先頭につけること。
  • 動作確認はかならず最新版で行ってください。
  • 不適切な文章は、管理人が削除、編集することがあります。
名前*
メッセージ*
パスワード (編集・削除に使用。16文字以内)