예제 #1
0
 private async void MessageReceived(object sender, OnMessageReceivedArgs e)
 {
     if (!e.ChatMessage.IsMe)
     {
         using (var scope = _scopeFactory.CreateScope())
         {
             if (MessageQueues.ContainsKey(e.ChatMessage.Channel.ToLower()))
             {
                 string message = GetManualCommandResponse(e.ChatMessage.Channel, e.ChatMessage.Message);
                 if (message != "")
                 {
                     MessageQueues[e.ChatMessage.Channel].Add(message);
                 }
             }
         }
         if (!e.ChatMessage.Message.StartsWith("!", StringComparison.CurrentCulture))
         {
             string target = "";
             using (var scope = _scopeFactory.CreateScope())
             {
                 var _context = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
                 var stream   = _context.StreamModels.Where(sm => sm.StreamName.ToLower() == e.ChatMessage.Channel.ToLower()).FirstOrDefault();
                 if (stream != null)
                 {
                     target = stream.DiscordRelayChannel;
                 }
             }
             if (target != null && target != "")
             {
                 _eventBus.TriggerEvent(EventType.TwitchMessageReceived, new TwitchMessageArgs {
                     Source = e.ChatMessage.Channel, Message = e.ChatMessage.Username + ": " + e.ChatMessage.Message, Target = target
                 });
             }
         }
         else
         {
             ChatCommands.Args.ChatCommandInputArgs inputargs = new ChatCommands.Args.ChatCommandInputArgs()
             {
                 Message             = e.ChatMessage.Message,
                 Sender              = e.ChatMessage.Username,
                 ChannelName         = e.ChatMessage.Channel,
                 elevatedPermissions = (e.ChatMessage.IsModerator || e.ChatMessage.IsBroadcaster),
                 Type = Data.Enums.ChatType.Twitch
             };
             commandService.handleCommand(inputargs, Data.Enums.ChatType.Twitch, e.ChatMessage.Username);
         }
     }
 }
예제 #2
0
 private async Task MessageReceived(SocketMessage arg)
 {
     if (arg.Author.Username != "BobDeathmic")
     {
         string commandresult = string.Empty;
         if (arg.Content.StartsWith("!WebInterfaceLink", StringComparison.CurrentCulture) || arg.Content.StartsWith("!wil", StringComparison.CurrentCulture))
         {
             SendWebInterfaceLink(arg);
         }
         ChatCommands.Args.ChatCommandInputArgs inputargs = new ChatCommands.Args.ChatCommandInputArgs()
         {
             Message             = arg.Content,
             ChannelName         = arg.Channel.Name,
             elevatedPermissions = false,
             Sender = arg.Author.Username,
             Type   = Data.Enums.ChatType.Discord
         };
         commandService.handleCommand(inputargs, Data.Enums.ChatType.Discord, arg.Author.Username);
         RelayMessage(arg);
     }
 }