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