| @@ -28,7 +28,7 @@ namespace Discord.Commands | |||
| RequireCommandCharInPublic = true; | |||
| RequireCommandCharInPrivate = true; | |||
| client.MessageCreated += async (s, e) => | |||
| client.MessageReceived += async (s, e) => | |||
| { | |||
| //If commands aren't being used, don't bother processing them | |||
| if (_commands.Count == 0) | |||
| @@ -18,17 +18,17 @@ namespace Discord | |||
| public partial class DiscordClient | |||
| { | |||
| public event EventHandler<BanEventArgs> BanAdded; | |||
| private void RaiseBanAdded(string userId, Server server) | |||
| public event EventHandler<BanEventArgs> UserBanned; | |||
| private void RaiseUserBanned(string userId, Server server) | |||
| { | |||
| if (BanAdded != null) | |||
| RaiseEvent(nameof(BanAdded), () => BanAdded(this, new BanEventArgs(userId, server))); | |||
| if (UserBanned != null) | |||
| RaiseEvent(nameof(UserBanned), () => UserBanned(this, new BanEventArgs(userId, server))); | |||
| } | |||
| public event EventHandler<BanEventArgs> BanRemoved; | |||
| private void RaiseBanRemoved(string userId, Server server) | |||
| public event EventHandler<BanEventArgs> UserUnbanned; | |||
| private void RaiseUserUnbanned(string userId, Server server) | |||
| { | |||
| if (BanRemoved != null) | |||
| RaiseEvent(nameof(BanRemoved), () => BanRemoved(this, new BanEventArgs(userId, server))); | |||
| if (UserUnbanned != null) | |||
| RaiseEvent(nameof(UserUnbanned), () => UserUnbanned(this, new BanEventArgs(userId, server))); | |||
| } | |||
| /// <summary> Bans a user from the provided server. </summary> | |||
| @@ -45,11 +45,17 @@ namespace Discord | |||
| { | |||
| public const int MaxMessageSize = 2000; | |||
| public event EventHandler<MessageEventArgs> MessageCreated; | |||
| public event EventHandler<MessageEventArgs> MessageReceived; | |||
| private void RaiseMessageCreated(Message msg) | |||
| { | |||
| if (MessageCreated != null) | |||
| RaiseEvent(nameof(MessageCreated), () => MessageCreated(this, new MessageEventArgs(msg))); | |||
| if (MessageReceived != null) | |||
| RaiseEvent(nameof(MessageReceived), () => MessageReceived(this, new MessageEventArgs(msg))); | |||
| } | |||
| public event EventHandler<MessageEventArgs> MessageSent; | |||
| private void RaiseMessageSent(Message msg) | |||
| { | |||
| if (MessageSent != null) | |||
| RaiseEvent(nameof(MessageSent), () => MessageSent(this, new MessageEventArgs(msg))); | |||
| } | |||
| public event EventHandler<MessageEventArgs> MessageDeleted; | |||
| private void RaiseMessageDeleted(Message msg) | |||
| @@ -69,12 +75,6 @@ namespace Discord | |||
| if (MessageReadRemotely != null) | |||
| RaiseEvent(nameof(MessageReadRemotely), () => MessageReadRemotely(this, new MessageEventArgs(msg))); | |||
| } | |||
| public event EventHandler<MessageEventArgs> MessageSent; | |||
| private void RaiseMessageSent(Message msg) | |||
| { | |||
| if (MessageSent != null) | |||
| RaiseEvent(nameof(MessageSent), () => MessageSent(this, new MessageEventArgs(msg))); | |||
| } | |||
| internal Messages Messages => _messages; | |||
| private readonly Messages _messages; | |||
| @@ -60,17 +60,17 @@ namespace Discord | |||
| public partial class DiscordClient | |||
| { | |||
| public event EventHandler<UserChannelEventArgs> UserIsTyping; | |||
| public event EventHandler<UserChannelEventArgs> UserIsTypingUpdated; | |||
| private void RaiseUserIsTyping(User user, Channel channel) | |||
| { | |||
| if (UserIsTyping != null) | |||
| RaiseEvent(nameof(UserIsTyping), () => UserIsTyping(this, new UserChannelEventArgs(user, channel))); | |||
| if (UserIsTypingUpdated != null) | |||
| RaiseEvent(nameof(UserIsTypingUpdated), () => UserIsTypingUpdated(this, new UserChannelEventArgs(user, channel))); | |||
| } | |||
| public event EventHandler<UserIsSpeakingEventArgs> UserIsSpeaking; | |||
| public event EventHandler<UserIsSpeakingEventArgs> UserIsSpeakingUpdated; | |||
| private void RaiseUserIsSpeaking(User user, Channel channel, bool isSpeaking) | |||
| { | |||
| if (UserIsSpeaking != null) | |||
| RaiseEvent(nameof(UserIsSpeaking), () => UserIsSpeaking(this, new UserIsSpeakingEventArgs(user, channel, isSpeaking))); | |||
| if (UserIsSpeakingUpdated != null) | |||
| RaiseEvent(nameof(UserIsSpeakingUpdated), () => UserIsSpeakingUpdated(this, new UserIsSpeakingEventArgs(user, channel, isSpeaking))); | |||
| } | |||
| public event EventHandler<UserEventArgs> UserAdded; | |||
| private void RaiseUserAdded(User user) | |||
| @@ -84,12 +84,6 @@ namespace Discord | |||
| if (UserRemoved != null) | |||
| RaiseEvent(nameof(UserRemoved), () => UserRemoved(this, new UserEventArgs(user))); | |||
| } | |||
| public event EventHandler ProfileUpdated; | |||
| private void RaiseProfileUpdated() | |||
| { | |||
| if (ProfileUpdated != null) | |||
| RaiseEvent(nameof(ProfileUpdated), () => ProfileUpdated(this, EventArgs.Empty)); | |||
| } | |||
| public event EventHandler<UserEventArgs> UserUpdated; | |||
| private void RaiseMemberUpdated(User user) | |||
| { | |||
| @@ -108,7 +102,15 @@ namespace Discord | |||
| if (UserVoiceStateUpdated != null) | |||
| RaiseEvent(nameof(UserVoiceStateUpdated), () => UserVoiceStateUpdated(this, new UserEventArgs(user))); | |||
| } | |||
| public event EventHandler ProfileUpdated; | |||
| private void RaiseProfileUpdated() | |||
| { | |||
| if (ProfileUpdated != null) | |||
| RaiseEvent(nameof(ProfileUpdated), () => ProfileUpdated(this, EventArgs.Empty)); | |||
| } | |||
| /// <summary> Returns the current logged-in user. </summary> | |||
| public User CurrentUser => _currentUser; | |||
| private User _currentUser; | |||
| /// <summary> Returns a collection of all users this client can currently see. </summary> | |||
| @@ -22,14 +22,12 @@ namespace Discord | |||
| private UserStatus _status; | |||
| private int? _gameId; | |||
| /// <summary> Returns the configuration object used to make this client. Note that this object cannot be edited directly - to change the configuration of this client, use the DiscordClient(DiscordClientConfig config) constructor. </summary> | |||
| public new DiscordClientConfig Config => _config as DiscordClientConfig; | |||
| /// <summary> Gives direct access to the underlying DiscordAPIClient. This can be used to modify objects not in cache. </summary> | |||
| public DiscordAPIClient API => _api; | |||
| /// <summary> Returns the current logged-in user. </summary> | |||
| public User CurrentUser => _currentUser; | |||
| /// <summary> Initializes a new instance of the DiscordClient class. </summary> | |||
| public DiscordClient(DiscordClientConfig config = null) | |||
| : base(config ?? new DiscordClientConfig()) | |||
| @@ -91,7 +89,7 @@ namespace Discord | |||
| $"Channel Destroyed: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); | |||
| ChannelUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Channel Updated: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); | |||
| MessageCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| MessageReceived += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Message Created: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); | |||
| MessageDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Message Deleted: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); | |||
| @@ -103,9 +101,9 @@ namespace Discord | |||
| $"Role Updated: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}"); | |||
| RoleDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Role Deleted: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}"); | |||
| BanAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| UserBanned += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Banned User: {e.Server?.Name ?? "[Private]" }/{e.UserId}"); | |||
| BanRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| UserUnbanned += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"Unbanned User: {e.Server?.Name ?? "[Private]"}/{e.UserId}"); | |||
| UserAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, | |||
| $"User Joined: {e.Server?.Name ?? "[Private]"}/{e.User.Id}"); | |||
| @@ -120,7 +118,7 @@ namespace Discord | |||
| } | |||
| if (_config.LogLevel >= LogMessageSeverity.Verbose) | |||
| { | |||
| UserIsTyping += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, | |||
| UserIsTypingUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, | |||
| $"Updated User (Is Typing): {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.User?.Name}"); | |||
| MessageReadRemotely += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, | |||
| $"Read Message (Remotely): {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); | |||
| @@ -465,7 +463,7 @@ namespace Discord | |||
| if (server != null) | |||
| { | |||
| server.AddBan(data.User?.Id); | |||
| RaiseBanAdded(data.User?.Id, server); | |||
| RaiseUserBanned(data.User?.Id, server); | |||
| } | |||
| } | |||
| break; | |||
| @@ -474,7 +472,7 @@ namespace Discord | |||
| var data = e.Payload.ToObject<BanRemoveEvent>(_serializer); | |||
| var server = _servers[data.GuildId]; | |||
| if (server != null && server.RemoveBan(data.User?.Id)) | |||
| RaiseBanRemoved(data.User?.Id, server); | |||
| RaiseUserUnbanned(data.User?.Id, server); | |||
| } | |||
| break; | |||
| @@ -101,8 +101,8 @@ namespace Discord.Tests | |||
| AssertEvent<MessageEventArgs>( | |||
| "MessageCreated event never received", | |||
| () => _hostClient.SendMessage(_testServerChannel, text), | |||
| x => _targetBot.MessageCreated += x, | |||
| x => _targetBot.MessageCreated -= x, | |||
| x => _targetBot.MessageReceived += x, | |||
| x => _targetBot.MessageReceived -= x, | |||
| (s, e) => e.Message.Text == text); | |||
| } | |||