Safe Haskell | None |
---|---|
Language | Haskell2010 |
Discord.Internal.Monad
Synopsis
- class (Monad m, MonadThrow m, MonadMask m, MonadFail m) => MonadDiscord m where
- getChannel :: ChannelId -> m Channel
- modifyChannel :: ChannelId -> ModifyChannelOpts -> m Channel
- deleteChannel :: ChannelId -> m Channel
- getChannelMessages :: ChannelId -> (Int, MessageTiming) -> m [Message]
- getChannelMessage :: (ChannelId, MessageId) -> m Message
- createMessage :: ChannelId -> Text -> m Message
- createMessageEmbed :: ChannelId -> Text -> CreateEmbed -> m Message
- createMessageUploadFile :: ChannelId -> Text -> ByteString -> m Message
- createMessageDetailed :: ChannelId -> MessageDetailedOpts -> m Message
- createReaction :: (ChannelId, MessageId) -> Text -> m ()
- deleteOwnReaction :: (ChannelId, MessageId) -> Text -> m ()
- deleteUserReaction :: (ChannelId, MessageId) -> UserId -> Text -> m ()
- deleteSingleReaction :: (ChannelId, MessageId) -> Text -> m ()
- getReactions :: (ChannelId, MessageId) -> Text -> (Int, ReactionTiming) -> m [User]
- deleteAllReactions :: (ChannelId, MessageId) -> m ()
- editMessage :: (ChannelId, MessageId) -> Text -> Maybe CreateEmbed -> m Message
- deleteMessage :: (ChannelId, MessageId) -> m ()
- bulkDeleteMessage :: (ChannelId, [MessageId]) -> m ()
- editChannelPermissions :: ChannelId -> OverwriteId -> ChannelPermissionsOpts -> m ()
- getChannelInvites :: ChannelId -> m Object
- createChannelInvite :: ChannelId -> ChannelInviteOpts -> m Invite
- deleteChannelPermission :: ChannelId -> OverwriteId -> m ()
- triggerTypingIndicator :: ChannelId -> m ()
- getPinnedMessages :: ChannelId -> m [Message]
- addPinnedMessage :: (ChannelId, MessageId) -> m ()
- deletePinnedMessage :: (ChannelId, MessageId) -> m ()
- groupDMAddRecipient :: ChannelId -> GroupDMAddRecipientOpts -> m ()
- groupDMRemoveRecipient :: ChannelId -> UserId -> m ()
- listGuildEmojis :: GuildId -> m [Emoji]
- getGuildEmoji :: GuildId -> EmojiId -> m Emoji
- createGuildEmoji :: GuildId -> Text -> ByteString -> m Emoji
- modifyGuildEmoji :: GuildId -> EmojiId -> ModifyGuildEmojiOpts -> m Emoji
- deleteGuildEmoji :: GuildId -> EmojiId -> m ()
- createGuild :: CreateGuildOpts -> m Guild
- getGuild :: GuildId -> m Guild
- modifyGuild :: GuildId -> ModifyGuildOpts -> m Guild
- deleteGuild :: GuildId -> m ()
- getGuildChannels :: GuildId -> m [Channel]
- createGuildChannel :: GuildId -> Text -> [Overwrite] -> CreateGuildChannelOpts -> m Channel
- modifyGuildChannelPositions :: GuildId -> [(ChannelId, Int)] -> m [Channel]
- getGuildMember :: GuildId -> UserId -> m GuildMember
- listGuildMembers :: GuildId -> GuildMembersTiming -> m [GuildMember]
- addGuildMember :: GuildId -> UserId -> AddGuildMemberOpts -> m ()
- modifyGuildMember :: GuildId -> UserId -> ModifyGuildMemberOpts -> m ()
- modifyCurrentUserNick :: GuildId -> Text -> m ()
- addGuildMemberRole :: GuildId -> UserId -> RoleId -> m ()
- removeGuildMemberRole :: GuildId -> UserId -> RoleId -> m ()
- removeGuildMember :: GuildId -> UserId -> m ()
- getGuildBans :: GuildId -> m [GuildBan]
- getGuildBan :: GuildId -> UserId -> m GuildBan
- createGuildBan :: GuildId -> UserId -> CreateGuildBanOpts -> m ()
- removeGuildBan :: GuildId -> UserId -> m ()
- getGuildRoles :: GuildId -> m [Role]
- createGuildRole :: GuildId -> ModifyGuildRoleOpts -> m Role
- modifyGuildRolePositions :: GuildId -> [(RoleId, Integer)] -> m [Role]
- modifyGuildRole :: GuildId -> RoleId -> ModifyGuildRoleOpts -> m Role
- deleteGuildRole :: GuildId -> RoleId -> m ()
- getGuildPruneCount :: GuildId -> Integer -> m Object
- beginGuildPrune :: GuildId -> Integer -> m Object
- getGuildVoiceRegions :: GuildId -> m [VoiceRegion]
- getGuildInvites :: GuildId -> m [Invite]
- getGuildIntegrations :: GuildId -> m [Integration]
- createGuildIntegration :: GuildId -> IntegrationId -> CreateGuildIntegrationOpts -> m ()
- modifyGuildIntegration :: GuildId -> IntegrationId -> ModifyGuildIntegrationOpts -> m ()
- deleteGuildIntegration :: GuildId -> IntegrationId -> m ()
- syncGuildIntegration :: GuildId -> IntegrationId -> m ()
- getGuildEmbed :: GuildId -> m GuildEmbed
- modifyGuildEmbed :: GuildId -> GuildEmbed -> m GuildEmbed
- getGuildVanityURL :: GuildId -> m Text
- getInvite :: Text -> m Invite
- deleteInvite :: Text -> m Invite
- getCurrentUser :: m User
- getUser :: UserId -> m User
- modifyCurrentUser :: Text -> CurrentUserAvatar -> m User
- getCurrentUserGuilds :: m [PartialGuild]
- leaveGuild :: GuildId -> m ()
- getUserDMs :: m [Channel]
- createDM :: UserId -> m Channel
- getUserConnections :: m [ConnectionObject]
- listVoiceRegions :: m [VoiceRegion]
- createWebhook :: ChannelId -> CreateWebhookOpts -> m Webhook
- getChannelWebhooks :: ChannelId -> m [Webhook]
- getGuildWebhooks :: GuildId -> m [Webhook]
- getWebhook :: WebhookId -> m Webhook
- getWebhookWithToken :: WebhookId -> Text -> m Webhook
- modifyWebhook :: WebhookId -> ModifyWebhookOpts -> m Webhook
- modifyWebhookWithToken :: WebhookId -> Text -> ModifyWebhookOpts -> m Webhook
- deleteWebhook :: WebhookId -> m ()
- deleteWebhookWithToken :: WebhookId -> Text -> m ()
- executeWebhookWithToken :: WebhookId -> Text -> ExecuteWebhookWithTokenOpts -> m ()
- respond :: Message -> Text -> m ()
Documentation
class (Monad m, MonadThrow m, MonadMask m, MonadFail m) => MonadDiscord m where Source #
MonadDiscord
is a data class of Monads that can interact with Discord.
It requires MonadThrow to throw possible errors like HTTP errors, MonadMask
as a helper for common operations paired with errors (like finally
), and
MonadFail to allow convenient pattern-matching in do-notation (not necessary,
but helps a lot with our code style).
Methods
getChannel :: ChannelId -> m Channel Source #
modifyChannel :: ChannelId -> ModifyChannelOpts -> m Channel Source #
deleteChannel :: ChannelId -> m Channel Source #
getChannelMessages :: ChannelId -> (Int, MessageTiming) -> m [Message] Source #
getChannelMessage :: (ChannelId, MessageId) -> m Message Source #
createMessage :: ChannelId -> Text -> m Message Source #
createMessageEmbed :: ChannelId -> Text -> CreateEmbed -> m Message Source #
createMessageUploadFile :: ChannelId -> Text -> ByteString -> m Message Source #
createMessageDetailed :: ChannelId -> MessageDetailedOpts -> m Message Source #
createReaction :: (ChannelId, MessageId) -> Text -> m () Source #
deleteOwnReaction :: (ChannelId, MessageId) -> Text -> m () Source #
deleteUserReaction :: (ChannelId, MessageId) -> UserId -> Text -> m () Source #
deleteSingleReaction :: (ChannelId, MessageId) -> Text -> m () Source #
getReactions :: (ChannelId, MessageId) -> Text -> (Int, ReactionTiming) -> m [User] Source #
deleteAllReactions :: (ChannelId, MessageId) -> m () Source #
editMessage :: (ChannelId, MessageId) -> Text -> Maybe CreateEmbed -> m Message Source #
deleteMessage :: (ChannelId, MessageId) -> m () Source #
bulkDeleteMessage :: (ChannelId, [MessageId]) -> m () Source #
editChannelPermissions :: ChannelId -> OverwriteId -> ChannelPermissionsOpts -> m () Source #
getChannelInvites :: ChannelId -> m Object Source #
createChannelInvite :: ChannelId -> ChannelInviteOpts -> m Invite Source #
deleteChannelPermission :: ChannelId -> OverwriteId -> m () Source #
triggerTypingIndicator :: ChannelId -> m () Source #
getPinnedMessages :: ChannelId -> m [Message] Source #
addPinnedMessage :: (ChannelId, MessageId) -> m () Source #
deletePinnedMessage :: (ChannelId, MessageId) -> m () Source #
groupDMAddRecipient :: ChannelId -> GroupDMAddRecipientOpts -> m () Source #
groupDMRemoveRecipient :: ChannelId -> UserId -> m () Source #
listGuildEmojis :: GuildId -> m [Emoji] Source #
getGuildEmoji :: GuildId -> EmojiId -> m Emoji Source #
createGuildEmoji :: GuildId -> Text -> ByteString -> m Emoji Source #
modifyGuildEmoji :: GuildId -> EmojiId -> ModifyGuildEmojiOpts -> m Emoji Source #
deleteGuildEmoji :: GuildId -> EmojiId -> m () Source #
createGuild :: CreateGuildOpts -> m Guild Source #
getGuild :: GuildId -> m Guild Source #
modifyGuild :: GuildId -> ModifyGuildOpts -> m Guild Source #
deleteGuild :: GuildId -> m () Source #
getGuildChannels :: GuildId -> m [Channel] Source #
createGuildChannel :: GuildId -> Text -> [Overwrite] -> CreateGuildChannelOpts -> m Channel Source #
modifyGuildChannelPositions :: GuildId -> [(ChannelId, Int)] -> m [Channel] Source #
getGuildMember :: GuildId -> UserId -> m GuildMember Source #
listGuildMembers :: GuildId -> GuildMembersTiming -> m [GuildMember] Source #
addGuildMember :: GuildId -> UserId -> AddGuildMemberOpts -> m () Source #
modifyGuildMember :: GuildId -> UserId -> ModifyGuildMemberOpts -> m () Source #
modifyCurrentUserNick :: GuildId -> Text -> m () Source #
addGuildMemberRole :: GuildId -> UserId -> RoleId -> m () Source #
removeGuildMemberRole :: GuildId -> UserId -> RoleId -> m () Source #
removeGuildMember :: GuildId -> UserId -> m () Source #
getGuildBans :: GuildId -> m [GuildBan] Source #
getGuildBan :: GuildId -> UserId -> m GuildBan Source #
createGuildBan :: GuildId -> UserId -> CreateGuildBanOpts -> m () Source #
removeGuildBan :: GuildId -> UserId -> m () Source #
getGuildRoles :: GuildId -> m [Role] Source #
createGuildRole :: GuildId -> ModifyGuildRoleOpts -> m Role Source #
modifyGuildRolePositions :: GuildId -> [(RoleId, Integer)] -> m [Role] Source #
modifyGuildRole :: GuildId -> RoleId -> ModifyGuildRoleOpts -> m Role Source #
deleteGuildRole :: GuildId -> RoleId -> m () Source #
getGuildPruneCount :: GuildId -> Integer -> m Object Source #
beginGuildPrune :: GuildId -> Integer -> m Object Source #
getGuildVoiceRegions :: GuildId -> m [VoiceRegion] Source #
getGuildInvites :: GuildId -> m [Invite] Source #
getGuildIntegrations :: GuildId -> m [Integration] Source #
createGuildIntegration :: GuildId -> IntegrationId -> CreateGuildIntegrationOpts -> m () Source #
modifyGuildIntegration :: GuildId -> IntegrationId -> ModifyGuildIntegrationOpts -> m () Source #
deleteGuildIntegration :: GuildId -> IntegrationId -> m () Source #
syncGuildIntegration :: GuildId -> IntegrationId -> m () Source #
getGuildEmbed :: GuildId -> m GuildEmbed Source #
modifyGuildEmbed :: GuildId -> GuildEmbed -> m GuildEmbed Source #
getGuildVanityURL :: GuildId -> m Text Source #
getInvite :: Text -> m Invite Source #
deleteInvite :: Text -> m Invite Source #
getCurrentUser :: m User Source #
getUser :: UserId -> m User Source #
modifyCurrentUser :: Text -> CurrentUserAvatar -> m User Source #
getCurrentUserGuilds :: m [PartialGuild] Source #
leaveGuild :: GuildId -> m () Source #
getUserDMs :: m [Channel] Source #
createDM :: UserId -> m Channel Source #
getUserConnections :: m [ConnectionObject] Source #
listVoiceRegions :: m [VoiceRegion] Source #
createWebhook :: ChannelId -> CreateWebhookOpts -> m Webhook Source #
getChannelWebhooks :: ChannelId -> m [Webhook] Source #
getGuildWebhooks :: GuildId -> m [Webhook] Source #
getWebhook :: WebhookId -> m Webhook Source #
getWebhookWithToken :: WebhookId -> Text -> m Webhook Source #
modifyWebhook :: WebhookId -> ModifyWebhookOpts -> m Webhook Source #
modifyWebhookWithToken :: WebhookId -> Text -> ModifyWebhookOpts -> m Webhook Source #
deleteWebhook :: WebhookId -> m () Source #
deleteWebhookWithToken :: WebhookId -> Text -> m () Source #
executeWebhookWithToken :: WebhookId -> Text -> ExecuteWebhookWithTokenOpts -> m () Source #