Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
 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!")
                             );
 }
Exemplo n.º 3
0
        private MessageAggregate(Guid userId, string text)
        {
            var @event = new MessageCreatedEvent
            {
                MessageId = Guid.NewGuid(),
                Text      = text,
                UserId    = userId
            };

            Enqueue(@event);
            Apply(@event);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 private void Apply(MessageCreatedEvent @event)
 {
     Id     = @event.MessageId;
     UserId = @event.UserId;
     Text   = @event.Text;
 }
Exemplo n.º 6
0
        public MessageCreatedEvent GetMessageCreatedEvent(Message message)
        {
            var user = _cardinalDataService.GetUsers().Where(u => u.Id == message.UserId).First();

            return(MessageCreatedEvent.FromMessage(new MessageModel(message, user)));
        }