Local chat to discord relay (webhook)

SecondLifeでのローカルチャットをDiscordのWebhookに送信する物を書いてみました。先のOnline trackingと要領は同じで、むしろ自前でアバターUUIDを取得したり日付の調整をしたりなどの機能が不要なため、とてもシンプルに仕上がっています。ローカルチャットをDiscord側に転送する用途は今のところ特には必要のないことですが、先々に複数のシミュレータ・グリッドを行き来するような利用環境となった時、別グリッドのアバターとも会話が出来る場所として有望だと考えています。

(あ、最低限にLSLが少し分かる、Discordのアカウントを持っている、なにがしかDiscordのサーバーを立てている 前提で進めます)

■使い方
・まずは投稿先のDiscordサーバーチャンネルにWebHookを作ります

全く同じ操作なので割愛します
前記事を参照してください。


・次ぎにSecondLifeで実行するLSLを取得します
こちらからスクリプトを取得してください → PASTEBIN
設定必須の項目は1つです。


WEBHOOK_URL = は
先のDiscordで取得した
WebhookURLを指定


・あとはSecondLife内で適当なオブジェクトにスクリプトを入れれば完了です。
タッチでOn/Offするだけなので適当なオブジェクトに入れておけばいいかと思います。
HUDでも問題なく動作しますよ~。
(当人がその場に居るのにリレーする意味が不明ですが・・・ lol )


■動作サンプル
こんな感じでDiscordのチャンネルに垂れ流しです。
ログの容量も気にしなくていいし、お洒落にアイコンまで付いてます。
アバター画像が未設定のアバターの場合は、Webhookで設定したアイコンになるようです。
発言がアバターの場合は、 表示名 (ユーザー名) の型式で名前を付与します
発言がオブジェクトの場合は、 オブジェクト名 で名前を設定します
なお、対象となるのはローカルチャットのみです(チャンネル = 0 で発信された文字列)
IMやRegionSayToおよびOwnerSayで発信されたものは対象外です


HTTPの処理を先のOnline tracking with webhookと若干変えてあるのは同時に発言があった場合など処理が逼迫しても追従できるように複数リクエスト応答待ち対応としました。


0 件のコメント:

コメントを投稿

Popular posts in the past 30 days