Better TTB
Its gooder then the other one
Install
Install via NPM
$ npm install better-ttb
Example
const TwitchClient = const Client = username: 'Xeno_Pog' oauth: 'oauth:how_how_is_he_pogging' channels: 'twitch') Client Client Client
Events
connected - (client: TwitchBot)
This event is emitted when the bot has connected to the IRC server.
Usage
Client;
join - (channel: Channel)
This event is emitted when a channel has been joined successfully.
Usage
Client;
part - (channel: Channel)
This event is emitted when a channel has been left successfully.
Usage
Client;
message - (message: Object)
Emitted when a PRIVSMSG
event is sent over IRC. The message (Chatter) object attributes can be found on the Twitch developers site
Usage
Client;
Example Response
color: '#3C78FD' display_name: 'XenoBranch' emotes: '88:18-25' id: 'c5ee7248-3cea-43f5-ae44-2916d9a1325a' mod: true room_id: 44667418 sent_ts: 1501541672959 subscriber: true tmi_sent_ts: 1501541673368 turbo: false user_id: 44667418 user_type: 'mod' badges: broadcaster: 1 subscriber: 0 channel: name: '#XenoBranch' send: ... message: 'This is a message PogChamp' username: 'XenoBranch' client: TwitchBot ...
timeout - (event: Object)
Emitted when a user is timed out in the chat. The ban_reason
attribute is null
when no reason message is used.
Chat Trigger
XenoBranch: "/timeout {user} {duration} {reason}"
Usage
Client
Example Response
ban_duration: 10 // seconds ban_reason: 'Using a banned word' room_id: 44667418 target_user_id: 37798112 tmi_sent_ts: 1503346029068 type: 'timeout' channel: name: '#XenoBranch' send: ... target_username: 'serxka'
subscription - (event: Object)
Emitted when a user subscribes to a channel and chooses to share the subscription in chat.
Usage
Client
Example Response
badges: broadcaster: 1 staff: 1 turbo: 1 channel: name: '#XenoBranch' send: ... color: '#008000' display_name: 'bruh' emotes: null id: 'db25007f-7a18-43eb-9379-80131e44d633' login: 'bruh' message: 'Great stream -- keep it up!' // null if no message given mod: 0 msg_id: 'resub' msg_param_months: 6 msg_param_sub_plan: 'Prime' msg_param_sub_plan_name: 'Prime' room_id: 1337 subscriber: 1 system_msg: 'bruh has subscribed for 6 months!' tmi_sent_ts: 1507246572675 turbo: 1 user_id: 1337 user_type: 'staff'
ban - (event: Object)
Emitted when a user is permanently banned from the chat. The ban_reason
attribute is null
when no reason message is used.
Usage
Client
Chat Trigger
XenoBranch: "/ban {user} {reason}"
Example Response
ban_reason: 'Using a banned word' room_id: 44667418 target_user_id: 37798112 tmi_sent_ts: 1503346078025 type: 'ban' channel: '#XenoBranch' target_username: 'serxka'
error - (err: Object)
Emitted when any errors occurs in the Twitch IRC channel, or when attempting to connect to a channel.
Error types
Login authentication failed
This error occurs when either your twitch username or oauth are incorrect/invalid.
Response:
{ message: 'Login authentication failed' }
Improperly formatted auth
This error occurs when your oauth password is not formatted correctly. The valid format should be "oauth:your-oauth-password-123"
.
Response:
{ message: 'Improperly formatted auth' }
Your message was not sent because you are sending messages too quickly
This error occurs when a message fails to send due to sending messages too quickly. You can avoid this by making the bot a moderator in the channel, if applicable/allowed.
Response:
message: 'Your message was not sent because you are sending messages too quickly'
Usage
Client
Example Response
message: 'Some error happened in the IRC channel'
close - ()
This event is emitted when the irc connection is destroyed via the Client.close()
method.
Usage
Client;
Methods
join(channel: String)
Attempts to join a channel. If successful, emits the 'join' event.
Example
Client; Client;
part(channel: Object)
Attempts to part from a channel. If successful, emits the 'part' event.
Example
Client; Client;
(Client | Channel).send(message: String, channel: []Channel, err: Callback)
Sends a message to the 'Channel' with an optional error callback. The channel is either:
- Given Client.send()
- The currently connected channel
- The specified channel
- Given Channel.send(), the Channel's well, channel.
Example
Client; Client // If connected to multiple channelsClientClient // Responding without reply() because you dont like the formatting or smthMessagechannel;
Message.reply(message: String, err: Callback)
Responds to the author of the given Message object in the given message channel, prefixing the message with '@${author's username}, ${message}', where author's username is, well, the authors username, and message is your given message. An optional callback is provided for validating if the message was sent correctly.
Example
//IDK its hard to demonstrate this Message; Message
timeout(username: Object, channel: []Channel, duration: int, reason: String)
Timeout a user from the chat. channels
parameter not needed when connected to a single channel. Default duration
is 600 seconds. Optional reason
message.
Example
Client// "XenoBranch was timed out for 10 seconds" Client// "XenoBranch was timed out for 5 seconds, reason: 'Using a banned word (L)'" Client
ban(username: String, reason: String)
Permanently ban a user from the chat. channels
parameter not needed when connected to a single channel. Optional reason
message.
Example
Client// "XenoBranch is now banned from the room" Client// "XenoBranch is now banned from the room, reason: 'Using a banned word (L)'" Client
close()
Closes the Twitch irc connection. Client will be removed from the Twitch channel AND the irc server.
Example
Client