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."); } }
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}"); } } }
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!"); } }
// 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); } }
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); } }
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; } } } }
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."); } }
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("👎")); } } }