Advertisement
Guest User

asdasd

a guest
Sep 4th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. import * as TMI from 'tmi.js';
  3. import { injectable } from 'inversify';
  4. import Config from 'server/service/core/config.ts';
  5. import EventHandler from 'server/base/event-handler.ts';
  6. import ChatMessageEvent from 'server/event/chat-message.ts';
  7. import ChatUser from 'server/type/chat-user.ts';
  8.  
  9. @injectable()
  10. export default class ChatBot {
  11.  
  12.     private config: Config;
  13.     private eventHandler: EventHandler;
  14.     private client: any;
  15.  
  16.     constructor( config: Config , eventHandler: EventHandler ) {
  17.         this.config = config;
  18.         this.eventHandler = eventHandler;
  19.         this.client = null;
  20.     }
  21.  
  22.     public connect() {
  23.  
  24.         const options: any = {
  25.             options: {
  26.                 debug: true ,
  27.             } ,
  28.             connection: {
  29.                 cluster: 'aws' ,
  30.                 reconnect: true ,
  31.             } ,
  32.             identity: {
  33.                 username: this.config.get( 'Chat.botUserName' ) ,
  34.                 password: this.config.get( 'Chat.botPassword' ) ,
  35.             } ,
  36.             channels: [ '#' + this.config.get( 'Chat.channel' ) ] ,
  37.         };
  38.  
  39.         this.client = new TMI.client( options );
  40.         this.client.connect();
  41.  
  42.         console.log( 'Twitch client connected to channel ' + this.config.get( 'Chat.channel' ) );
  43.  
  44.         this.client.on( 'message' , ( channel: any , user: any , message: any , self: any ) => {
  45.             const chatUser: ChatUser = new ChatUser( user );
  46.             this.eventHandler.trigger( new ChatMessageEvent( chatUser , message ) );
  47.             console.log( 'trigger!' );
  48.         } );
  49.  
  50.         this.eventHandler.listen( ChatMessageEvent , (ev: ChatMessageEvent) => {
  51.             console.log( 'listen: ' , ev );
  52.         } );
  53.  
  54.     }
  55.  
  56.     public whisper( userName: string , message: string ) {
  57.         return this.client.whisper( userName , message );
  58.     }
  59.  
  60.     public say( message: string ) {
  61.         return this.client.say( message );
  62.     }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement