twitch-chat-bot
Version:
an attempt to provide a generic, but highly-configurable platform for developers intending to create Twitch chat bots in Node.js
88 lines (69 loc) • 3.87 kB
Markdown
*a highly customizable base Twitch chat bot to build on*
<p align="center">
<a href="https://www.npmjs.com/package/twitch-chat-bot"><img alt="NPM Version" src="https://img.shields.io/npm/v/twitch-chat-bot?maxAge=43200"></a>
<a href="https://www.npmjs.com/package/twitch-chat-bot"><img alt="npm downloads per month" src="https://img.shields.io/npm/dm/twitch-chat-bot?maxAge=43200"></a>
<a href="https://www.npmjs.com/package/twitch-chat-bot"><img alt="NPM bundle size" src="https://img.shields.io/bundlephobia/min/twitch-chat-bot?maxAge=43200"></a>
<a href="https://twitter.com/WildcardSearch"><img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/WildcardSearch?style=social&maxAge=43200"></a>
</p>
`npm install twitch-chat-bot`
```javascript
const {
TwitchChatBot,
} = require("twitch-chat-bot");
function main()
{
let myBot = new TwitchChatBot({
credentials: {
username: "bot_username",
oauth: "oauth_string",
channel: "twitch_channel",
},
});
myBot.on("ready", ready);
}
function ready()
{
this.sendMessage("is online", { action: true });
}
main();
```
See: [Getting Started](https://github.com/WildcardSearch/twitch-chat-bot/wiki#getting-started)
**Features:**
- Easy to get started.
- Many, many aspects of bot operation can be controlled at a very low level
- Event-driven operation allows a high level of customization
- i18n compliant (English & German translations available)
*Command Center*
- Add new chat commands by passing parameters
- Built-in, customizable chat cooldown with global and individual settings
- Commands are versatile and support aliases, shortcuts, plain text commands, and complex function-driven commands
- Commands can be added directly inside modules
- Built-in safe moderation helper
- Moderation helper can be customized to notify moderators of abuse (eg. spamming commands) or instructed to perform timeouts/bans without human approval
- Several commands built in to internal modules, pre-loaded
- Abilty to enable and disable any command programmatically, through chat commands, and manually, through the options object
- Override permissions for internal "default" commands
*Self-Documenting*
- Built-in `!helpfile` command that documents all commands, both internal and custom and produces documents for every permission level. Documents formatted for Discord Markdown.
*Block List*
- prevent users from accessing commands permanently
- prevent bots from cross-talking and/or participating in chat games
*Message Queue*
- Uses configurable limits for how quickly the bot can message chat.
- Manual override built-in to messaging system to allow exceptions.
- Messaging includes many configurable options include action messages, announcements, callbacks for after the message has beent sent, and skipping the message queue, entirely.
*Timer*
- Tracks live status of your stream, according to settings and/or chat commands.
- Fires an event that modules and direct code can monitor and react to.
- Supports custom events that are fired by the implementation, programmatically
*User Tracker*
- Tracks how often users send chat messages
- Tracks active/inactive users based on customizable cooldowns (last typed in chat)
- Provides a service to pick random users from either the active pool or all users that have participated in chat
*Loyalty Points/Chat Currency*
- Currently support StreamElements, to allow custom games to award loyalty points for chat activities, games, etc.
- Looking to add support for both StreamLabs and custom, internal currency systems
*Database*
- Built-in support for both MySQL and JSON file-based databases
- Tracks streams live status, detects and reacts to crashes and prevents the bot from "starting over" if timers are in use