コード例 #1
0
        public async Task HandleMessage(SocketUserMessage message, SocketDMChannel channel)
        {
            if (serverService.IsPasswordRequestInProgress(message.Author.Id))
            {
                var nsp    = serverService.RemoveNewPasswordRequest(message.Author.Id);
                var server = await serverService.Get(nsp.GuildId, nsp.ServerName);

                if (server == null)
                {
                    await channel.SendMessageAsync("Server was removed in the meantime - request invalid");

                    return;
                }
                IAdminPortClient client = adminPortClientFactory.Create(new ServerInfo(server.ServerIp, server.ServerPort, message.Content));

                try
                {
                    await client.Join();
                }
                catch
                {
                    await channel.SendMessageAsync("Password was incorrect or connection to server was impossible");

                    return;
                }
                finally
                {
                    await client.Disconnect();
                }

                await this.serverService.ChangePassword(server.Id, message.Content);

                await channel.SendMessageAsync("Password has been changed.");
            }
        }
コード例 #2
0
        public async Task UpdateSupport(ulong guildId, ulong msgId, [Remainder] string msg)
        {
            if (Global.IsDev(Context.User))
            {
                try
                {
                    SocketDMChannel chn = (SocketDMChannel)await _client.GetDMChannelAsync(guildId);

                    EmbedBuilder eb = new EmbedBuilder();
                    eb.WithTitle("Support ticket update");
                    eb.WithFooter($"Support ticket update for {msgId}");
                    eb.WithCurrentTimestamp();
                    eb.WithDescription(msg);
                    eb.WithColor(DiscColour.Purple);

                    try
                    {
                        await chn.SendMessageAsync("", false, eb.Build()); //This throws an exception claiming chn is null....yet it still sends the message.

                        await Context.Message.ReplyAsync("Sent support message response successfully");
                    }

                    catch { return; }
                }

                catch (Exception ex)
                {
                    await Context.Message.ReplyAsync($"I encountered an error trying to respond to that support message. Here are the details:\n{ex.Message}\n{ex.Source}");
                }
            }
        }
コード例 #3
0
ファイル: Game.cs プロジェクト: drB-dotjpg/DiscordUnoBot
        async Task HandleCardDraw(SocketUser sUser, SocketDMChannel DM)
        {
            Player user             = GetPlayerObject(sUser);
            bool   hasPlayableCards = false;

            foreach (Card card in GetCurrentTurnOrderPlayer().Cards)
            {
                if (IsCardCompatable(card))
                {
                    hasPlayableCards = true;
                    break;
                }
            }
            if (!hasPlayableCards)
            {
                List <Card> drewCards = new List <Card>();

                if (drawMultiplier == 0)
                {
                    drawMultiplier++;
                }
                while (drawMultiplier > 0)
                {
                    drewCards.Add(GetCurrentTurnOrderPlayer().DrawCard());
                    drawMultiplier--;
                }

                string playableAlert = IsCardCompatable(drewCards[0]) && drewCards.Count == 1 ? "You can play this card." : null;

                string cardNames = "";
                foreach (Card card in drewCards)
                {
                    if (cardNames != "")
                    {
                        cardNames += ", ";
                    }
                    cardNames += CardToString(card);
                }

                await AlertPlayerAsync(user, $"You drew a {cardNames}.", playableAlert);

                await DM.SendMessageAsync(null, false, GetTurnBriefing(GetCurrentTurnOrderPlayer(), true, false).Build());

                foreach (Player player in players)
                {
                    if (player != user)
                    {
                        await AlertPlayerAsync(player, $"{user.name} drew {(drewCards.Count == 1 ? "a card" : drewCards.Count + " cards")}", $"{user.name} now has {user.Cards.Count} cards.");
                    }
                }
                if (!IsCardCompatable(drewCards[0]) || drewCards.Count > 1)
                {
                    nextTurnFlag = true;
                }
            }
            else
            {
                await AlertPlayerAsync(GetCurrentTurnOrderPlayer(), "You have playable cards so you cannot draw!");
            }
        }
コード例 #4
0
        // If the message contains image or image url and sender is bot administrator
        // It will Add new dragon with tags specified in message
        // If message contains only tags it will send random dragon ^^
        // Prefix is not used here, so format is: tag1 tag2 tag3... and image in attachment
        // or tag1 tag2 tag3 http://<url> https://<url>
        private async Task ProcessDirectMessage(
            SocketMessage message,
            SocketDMChannel channel
            )
        {
            if (administrators.Contains(message.Author.Id))
            {
                List <Attachment> attachments = message.Attachments.ToList();
                if (attachments.Count > 0)
                {
                    if (message.Content.Trim() == "")
                    {
                        await channel.SendMessageAsync("You can't add Dragon without tags");

                        return;
                    }
                    List <string> tags = message.Content.Split(" ").ToList();
                    await AddDragonAsync(tags, attachments[0].Url, channel);

                    return;
                }
                else
                {
                    List <string> splitted = message.Content.Split(" ").ToList();
                    if (splitted.Last().StartsWith("http://") || splitted.Last().StartsWith("https://"))
                    {
                        if (splitted.Count < 2)
                        {
                            await channel.SendMessageAsync("You can't add Dragon without tags");

                            return;
                        }
                        string        url  = splitted.Last();
                        List <string> tags = splitted.SkipLast(1).ToList();
                        await AddDragonAsync(tags, url, channel);

                        return;
                    }
                }
            }

            {
                List <string> tags = message.Content.Split(" ").ToList();
                await SendRandomDragon(tags, channel);
            }
        }
コード例 #5
0
 private void safeSendPM(SocketDMChannel c, String m)
 {
     try
     {
         c.SendMessageAsync(m);
     }
     catch (Exception e)
     {
         Console.WriteLine("Writing to channel with Id " + c.Id + " failed with: " + e.Message);
     }
 }
コード例 #6
0
ファイル: Form1.cs プロジェクト: aleho8/KuroGUI
        private async void DMTextBox_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (SelectedDMIndex != null)
                {
                    SocketDMChannel ch = Global.Kuro.Client.DMChannels.Where(u => u.Recipient.Username + "#" + u.Recipient.Discriminator == DMListView.Items[(int)SelectedDMIndex].Text).FirstOrDefault();
                    if (!string.IsNullOrWhiteSpace(DMInTextBox.Text.Trim()))
                    {
                        await ch?.SendMessageAsync(DMInTextBox.Text.Trim());

                        DMInTextBox.Text = string.Empty;
                    }
                }
            }
        }
コード例 #7
0
ファイル: DiscordPolls.cs プロジェクト: GDUMA/Aya
        private void OnDmReaction(SocketReaction reaction, IMessage msg, SocketDMChannel dmChannel)
        {
            // Check if user can vote


            var usrId = reaction.UserId;

            if (!CanVote(usrId))
            {
                _logger.LogError($"User {usrId} - {msg.Author.Username} can't vote");
                return;
            }

            if (reaction.Emote.Name == Constants.OkEmoji.Name)
            {
                var result = ProcessVote(msg.Content);
                _polls.SendVote(result, usrId);
                dmChannel.SendMessageAsync("Voto guardado correctamente.");
            }
        }
コード例 #8
0
 private async Task messageRecieved(SocketMessage msg)
 {
     if (msg.Channel is IPrivateChannel && msg.Author.IsBot == false)
     {
         SocketGuild gld = _client.GetGuild(257984126718574592) as SocketGuild;
         if (!activeDMChannels.Contains(msg.Channel))
         {
             activeDMChannels.Add(msg.Channel as SocketDMChannel);
         }
         if (activeDMChannel == null)
         {
             activeDMChannel = msg.Channel as SocketDMChannel;
         }
         await(gld.GetChannel(686551634863849519) as ITextChannel).SendMessageAsync($"***{msg.Author.Username}** : {msg.Timestamp.Day}/{msg.Timestamp.Month}/{msg.Timestamp.Year} at {msg.Timestamp.Hour}:{msg.Timestamp.Minute} UTC*\n{msg.Content}");
     }
     else if (msg.Channel.Id == 686551634863849519 && msg.Author.IsBot == false && !msg.Content.Contains('/'))
     {
         if (activeDMChannel != null)
         {
             await activeDMChannel.SendMessageAsync(msg.Content);
         }
     }
     else
     {
         string Message = msg.Content.ToLower();
         if ((msg.Channel.Id == 257984126718574592 || msg.Channel.Id == 426713281135116288) && (Message.Contains("rockstar") || Message.Contains("r*") || Message.Contains("rock*")))
         {
             List <string> Replies = new List <string> {
                 "Shark cards anyone?", "Anyone for shark cards?", "Shark cards lads only $100 for $800,000"
             };
             await msg.Channel.SendMessageAsync(Replies[new Random().Next(0, Replies.Count)]);
         }
         else if (msg.Channel.Id == 492273478993444864)
         {
             await(msg as SocketUserMessage).AddReactionAsync(new Emoji("👍"));
             await(msg as SocketUserMessage).AddReactionAsync(new Emoji("👎"));
         }
     }
 }