UNPKG

kustombot

Version:
75 lines 5.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tmi = require("tmi.js"); function KustomBot(options) { const client = tmi.client(options); const messageHandlers = []; const connectionHandlers = []; const commandHandlers = {}; client.on("message", callMessageHandlers); client.on("message", callCommandHandlers); client.on("connected", callConnectionHandlers); function callMessageHandlers(channel, data, msg, self) { messageHandlers.forEach((handler) => { handler(channel, data, msg, self); }); } function callConnectionHandlers(addr, port) { connectionHandlers.forEach((handler) => { handler(addr, port); }); } function callCommandHandlers(channel, data, msg, self) { if (self) { return; } const words = msg.trim().split(/\s+/); const command = words[0]; const args = words.slice(1); if (commandHandlers[command]) { commandHandlers[command](channel, data, args, self); } } function addMessageHandler(handler) { messageHandlers.push(handler); } function addConnectionHandler(handler) { connectionHandlers.push(handler); } function setCommandHandler(command, handler) { commandHandlers[command] = handler; } function removeMessageHandler(handler) { const index = messageHandlers.indexOf(handler); if (index >= 0) { messageHandlers.splice(index, 1); return true; } return false; } function removeConnectionHandler(handler) { const index = connectionHandlers.indexOf(handler); if (index >= 0) { connectionHandlers.splice(index, 1); return true; } return false; } function removeCommandHandler(command) { if (commandHandlers[command]) { delete commandHandlers[command]; return true; } return false; } return Object.assign(client, { addMessageHandler, addConnectionHandler, setCommandHandler, removeMessageHandler, removeConnectionHandler, removeCommandHandler, }); } exports.default = KustomBot; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3VzdG9tYm90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2t1c3RvbWJvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhCQUE4QjtBQUc5QixTQUF3QixTQUFTLENBQUMsT0FBb0I7SUFDcEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxNQUFNLGVBQWUsR0FBRyxFQUEyQixDQUFDO0lBQ3BELE1BQU0sa0JBQWtCLEdBQUcsRUFBOEIsQ0FBQztJQUMxRCxNQUFNLGVBQWUsR0FBRyxFQUFtQyxDQUFDO0lBRTVELE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBRS9DLFNBQVMsbUJBQW1CLENBQzFCLE9BQWUsRUFDZixJQUF1QixFQUN2QixHQUFXLEVBQ1gsSUFBYTtRQUViLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN4RCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsbUJBQW1CLENBQzFCLE9BQWUsRUFDZixJQUF1QixFQUN2QixHQUFXLEVBQ1gsSUFBYTtRQUViLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTztTQUNSO1FBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1QixJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QixlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUE0QjtRQUNyRCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLG9CQUFvQixDQUFDLE9BQStCO1FBQzNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFlLEVBQUUsT0FBNEI7UUFDdEUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUyxvQkFBb0IsQ0FBQyxPQUE0QjtRQUN4RCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLHVCQUF1QixDQUFDLE9BQStCO1FBQzlELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLG9CQUFvQixDQUFDLE9BQWU7UUFDM0MsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDM0IsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLHVCQUF1QjtRQUN2QixvQkFBb0I7S0FDckIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQTdGRCw0QkE2RkMifQ==