Table of Contents

Migration From DiscordSharp

Connecting

// Old.
var discord = new DiscordClient("My First Token", true);

discord.SendLoginRequest();
discord.Connect();

The constructor of the DiscordClient now requires a DiscordConfiguration object instead of a simple string token and boolean.

// New.
var discord = new DiscordClient(new DiscordConfiguration
{
    Token = "your token",
    TokenType = TokenType.Bot
});

await discord.ConnectAsync();
await Task.Delay(-1);

New versions of DSharpPlus implement TAP, and the all DSharpPlus methods ending with async will need to be awaited within an asynchronous method.

Events

While the signature will look similar, many changes have been done to events behind the scenes.

discord.MessageReceived += async (sender, arg) =>
{
    // Code here
};

We have a small article covering DSharpPlus events here.

New events

  • ChannelPinsUpdated
  • ClientErrored
  • GuildEmojisUpdated
  • GuildIntegrationsUpdated
  • GuildMembersChunked
  • GuildRoleCreated
  • GuildUnavailable
  • Heartbeated
  • MessageAcknowledged
  • MessageReactionAdded
  • MessageReactionRemoved
  • MessageReactionsCleared
  • MessagesBulkDeleted
  • SocketErrored
  • UnknownEvent
  • UserSettingsUpdated
  • VoiceServerUpdated
  • WebhooksUpdated

Removed Events

  • TextClientDebugMessageReceived
  • VoiceClientDebugMessageReceived

Changed Event names

Old DiscordSharp Event DSharpPlus Equivalent
MessageReceived MessageCreated
Connected Ready
PrivateChannelCreated DmChannelCreated
PrivateMessageReceived MessageCreated
MentionReceived MessageCreated
UserTypingStart TypingStarted
MessageEdited MessageUpdated
URLMessageAutoUpdate MessageUpdate
VoiceStateUpdate VoiceStateUpdated
UserUpdate UserUpdated
UserAddedToServer GuildMemberAdded
UserRemovedFromServer GuildMemberRemoved
RoleDeleted GuildRoleDeleted
RoleUpdated GuildRoleUpdated
GuildMemberBanned GuildBanAdded
PrivateChannelDeleted DMChannelDeleted
BanRemoved GuildBanRemoved
PrivateMessageDeleted MessageDeleted.