Open5

tmi.jsでRaidのユーザ名・表示名を別々に取得したい

SUSHSUSH

tmi.jsとは

Twitchのチャットボットを作成するライブラリ。Node.js、ブラウザどちらとも動作するのでとても便利。

https://tmijs.com

SUSHSUSH

messageハンドラー(チャットが来たときのハンドラー)は、ChatUserStateを受け取れるので問題ないが、raidedハンドラー(Riadが来たときのハンドラー)はusernameしか受け取れない。
(このusernameは表示名が設定されていたら表示名、設定されていなかったらユーザ名が代入される)

raided(channel: string, username: string, viewers: number): void;

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/tmi.js/index.d.ts#L82

しかし、今回は「ユーザ名」が欲しかった…

SUSHSUSH

これで、usernameとdisplaynameと分けて取得が可能。

raided(channel: string, username: string, displayname: string, viewers: number): void;

tmi.js自身が改善されると良いけど、かなり破壊的な改修をしないと直せなさそうなので、現実的ではなさそう…。(だからといって自分で作るのもなぁ)

SUSHSUSH

その他、良さそうな方法があれば追記予定。