protected void MESSAGE_CREATED(dynamic data) { User author = User.fromData(data.d.author); Message message = new Message(); dynamic messageData = data.d; message.author = author; message.content = Convert.ToString(messageData.content); message.ID = Convert.ToInt64(messageData.id); message.channelID = Convert.ToInt64(messageData.channel_id); message.guildID = Convert.ToInt64(messageData.guild_id); message.Guild = Guild.getGuild(message.guildID); message.pinned = Convert.ToBoolean(messageData.pinned); Storage.cachedMessages.Add(message.ID, message); MessageCreatedEvent?.Invoke(this, new MessageCreatedEventArgs(message)); if (message.author.bot) { return; } foreach (Command cmd in commands.Values) { if (message.content.StartsWith(prefix) && message.content.Substring(1).Split(' ')[0] == cmd.name) { cmd.execute(message); return; } } }
public static void Ping(IGuildedClient client, MessageCreatedEvent messageCreated, string command, IList <string> arguments) { // Sends a message to channel where `ping`/`pong` command was used client.SendMessageAsync(messageCreated.ChannelId, // Generates a new message with content `Pong!` Message.Generate("Pong!") ); }
private MessageAggregate(Guid userId, string text) { var @event = new MessageCreatedEvent { MessageId = Guid.NewGuid(), Text = text, UserId = userId }; Enqueue(@event); Apply(@event); }
public async Task CreateMessage(Message message, CancellationToken cancellationToken) { using (var transaction = await _db.Database.BeginTransactionAsync()) { _db.Add(message); await _db.SaveChangesAsync(); var @event = new MessageCreatedEvent(message.Id); await _outboxListener.Commit(@event); await transaction.CommitAsync(cancellationToken); } }
private void Apply(MessageCreatedEvent @event) { Id = @event.MessageId; UserId = @event.UserId; Text = @event.Text; }
public MessageCreatedEvent GetMessageCreatedEvent(Message message) { var user = _cardinalDataService.GetUsers().Where(u => u.Id == message.UserId).First(); return(MessageCreatedEvent.FromMessage(new MessageModel(message, user))); }