Open5
tmi.jsでRaidのユーザ名・表示名を別々に取得したい
messageハンドラー(チャットが来たときのハンドラー)は、ChatUserStateを受け取れるので問題ないが、raidedハンドラー(Riadが来たときのハンドラー)はusernameしか受け取れない。
(このusernameは表示名が設定されていたら表示名、設定されていなかったらユーザ名が代入される)
raided(channel: string, username: string, viewers: number): void;
しかし、今回は「ユーザ名」が欲しかった…
取り急ぎpatch-packageを使って無理矢理tmi.jsを書き換えてみる。
編集したのは下記2ファイル。
tmi.js/lib/client.js
@types/tmi.js/index.d.ts
これで、usernameとdisplaynameと分けて取得が可能。
raided(channel: string, username: string, displayname: string, viewers: number): void;
tmi.js自身が改善されると良いけど、かなり破壊的な改修をしないと直せなさそうなので、現実的ではなさそう…。(だからといって自分で作るのもなぁ)
その他、良さそうな方法があれば追記予定。