Changelog for calamity-0.12.1.0
Changelog for Calamity
0.12.1.0
- Fixed build with Aeson 2.2+ @L0neGamer
- Fix ToJSON ChannelType instances @MorrowM
- Bumped crypton-connection bounds from <0.4 to <0.5
0.12.0.0
- Field names in
Calamity.HTTP.Webhookwere mistakenlyusernameinstead of the requiredname, these fields were renamed to be correct. (Reported by @MorrowM)
0.11.0.0
- Added support for Aeson 2.2 @Miezhiko
- Support MTL 2.3+ @Miezhiko
0.10.0.0
- Updated
CreateMessageAttachment.contentto be aNetwork.HTTP.Client.RequestBodyto allow for easy streaming of uploads
0.9.0.0
- Require tls >= 1.7
- Bump dependencies to support tls-1.7
0.7.1.0
- Fix ratelimits being effectively broken (succ -> pred)
0.7.0.1
- Fix accidental semver breakage
0.7.0.0
- Added the
CDNAssettypeclass for resolving CDN asset links and fetching them. - Added the module
Calamity.Types.Model.Avatarwith the typesAvatarandMemberAvatar - Changed the
avatarfield ofUserandMemberto beAvatar(the default avatar will be fetched if the user does not have one set). - Added the field
bannertoUserandMemberwith typeMaybe UserBanner. - Added the field
accentColourtoUserandMemberwith typeMaybe (Colour Double). - Added the field
localetoUserandMemberwith typeMaybe Text. - Added the field
Member.memberAvatarwith typeText. (discord limitation, the guild id is needed to construct the member's guild avatar url, but discord doesn't attach the guild id to the member...) - Added the type
RoleIcontoCalamity.Types.Model.Guild.Role. - Added the field
Role.iconwith typeRoleIcon. - Added the field
Role.emojiwith typeRawEmoji. - Added the types
GuildIcon,GuildSplash,GuildDiscoverySplash,GuildBannertoCalamity.Types.Model.Guild.Guild. - Changed the type of
Guild.icontoMaybe GuildIcon. - Changed the type of
Guild.splashtoMaybe GuildSplash. - Added the field
Guild.discoverySplashwith typeMaybe GuildDiscoverySplash. - Added the field
Guild.bannerwith typeMaybe GuildBanner.
0.6.0.0
- Updated the events
GuildMemberAddEvt,GuildMemberRemoveEvt, andGuildMemberUpdateEvtto include the relevantGuild.
EHType 'GuildMemberAddEvt = (Guild, Member)
EHType 'GuildMemberRemoveEvt = (Guild, Member)
EHType 'GuildMemberUpdateEvt = (Guild, Member, Member)
0.5.0.0
- Replaced lens with optics internally, you should use optics for field labels now.
- Generic instances have been removed from library data types.
- Internally, all aeson instances are manually implemented now, instead of using generic. Expect a 5x improvement in compile time.
- The
gamefield onStatusUpdateDatawas changed toactivities :: [Activity]
0.4.0.0
- DSL functions no longer use a concrete effect list prefix.
0.3.0.0
- The discord api version has been moved from v9 to v10.
- Added support for interactions and views with
Calamity.Interactions. - Some more effects have been put in,
RatelimitEffandTokenEff, causing changes toBotC,SetupEff. - The HTTP client can now be used without a
Clientinstance. - The
GuildMemberAddevent now includes the guild id of the member. - The
InteractionCreateevent has been added. - Adding attachments to messages has now been reworked, and
TFilehas been replaced withCreateMessageAttachment. - The
fileattribute ofCreateMessageOptionshas been removed and replaced withattachments :: Maybe [CreateMessageAttachment]. - The
embedattribute ofCreateMessageOptionshas been replaced withembeds :: Maybe [Embed]. - The
components :: Maybe [Component]field has been added toCreateMessageOptions. editMessageEmbedhas been replaced witheditMessageEmbeds.- Added
Calamity.HTTP.Channel.editMessageComponents. - Added
Calamity.HTTP.Guild.SearchGuildMembers. Calamity.HTTP.Guild.GetGuildBansnow has aGetGuildBansOptionsparameter.- Added the module
Calamity.HTTP.Interaction. - Added the modules
Calamity.Interactions,Calamity.Interactions.{Eff,Utils,View}. - Fully fleshed out
Calamity.Types.Model.Channel.Component. - Removed
stickersfromMessage. - Removed the
guildIDfield fromMember.
0.2.0.2
- Dependency bump
0.2.0.1
- Fix a bug causing member objects sent alongside messages to not parse correctly.
0.2.0.0
- Remove all usages of lazy Text (except from typeclass instances)
- Fix a bug that caused http request decoding to never select the
()instance for decoding the response (which meant endpoints that had empty responses would always fail to parse). - Bumped the minimum version of aeson to 2.0
0.1.31.0
- We now pass through the
.memberfield of message create/update events to the event handler. - The payload type of
MessageCreateEvthas changed fromMessageto(Message, Maybe User, Maybe Member). - The payload type of
MessageUpdateEvthas changed from(Message, Message)to(Message, Message, Maybe User, Maybe Member). - The payload type of
RawMessageUpdateEvthas changed fromUpdatedMessageto(UpdatedMessage, Maybe User, Maybe Member). - The provided
ConstructContexteffect handlers have changed from handlingConstructContext Message ...toConstructContext (Message, User, Maybe Member) .... FullContextnow uses the member passed with the message create event if available.LightContextnow has a.memberparameter, which is the member passed with the message create event if available. TheuserIDfield has also been replaced withuser :: User.CommandNotFoundnow contains theUserandMaybe Memberof the message create event that triggered it.
0.1.30.4
- The
statusfield ofStatusUpdateDatahas been changed fromTexttoStatusType. - Removed the redundant
Typeableconstraint fromBotCandrunBotIO, etc. - Added the
runBotIO''function which gives more control over the internal state effects.
0.1.30.3
- Added models for interactions and components (these are still WIP in this version).
- The 'types' help no longer shows in command help if the command has no parameters.
- Added a HasID instance for FullContext and LightContext types.
0.1.30.2
- Removed all the orphan instances from the library.
- Removed the export of
CalamityCommands.HandlerfromCalamity.Commands. - Added the export of
Calamity.Commands.TypesfromCalamity.Commands. - Fixed some parameter parser instances causing type inference to fail (#48).
0.1.30.1
- Removed the re-export of
CalamityCommands.ParsePrefixfrom Calamity.Commands. - Added the
Calamity.Commands.Utils.useConstantPrefixmethod.
0.1.30.0
- Removed the
Symbolparameter of custom events, instead of'CustomEvt @"command-error" @(FullContext, CommandError)it is now'CustomEvt (CtxCommandError FullContext), etc. - Added
embedFooter,embedImage,embedThumbnail,embedAuthor, andembedFieldutility functions. - Added
Defaultinstances forEmbedAuthor. - Corrected the nullability of
EmbedImage,EmbedThumbnail,EmbedVideo, andEmbedProvider. - Changed the command parameter machinery to hold more info about parameters.
- Added a 'type cheatsheet' thing to command help in the default help command.
- Calamity now uses and re-exports the Calamity-Commands package instead of having all the code duplicated.
- An extra effect now needs to be handled for commands:
ConstructContext, this also allows you to change which context your bot uses. Calamity.Commands.Context.Contexthas been removed, instead useFullContext,LightContext, or make your own.
0.1.29.0
- The minimum version of
basehas been upped to4.13as the library fails to build on ghc-8.6 - The minimum version of
polysemyhas been upped to 1.5 - The upper bound of
lenshas been bumped to 6 - The library now compiles with ghc-9
0.1.28.5
- Use the correct HTTP method for
ModifyChannel
0.1.28.4
- Rework the route handling so that the bucket keys for emoji routes work properly
0.1.28.3
- Fix HTTP responses from discord that don't have ratelimit info being treated as errors.
0.1.28.2
- Correct the emoji HTTP endpoints to work with
CustomEmojis - Rework the ratelimit implementation more
0.1.28.1
- Rework the ratelimit implementation to use X-Ratelimit-Bucket
- Fix incorrect interpretation of the retry-after for 429s
0.1.28.0
- Added support for message types 19 (reply) and 20 (application command)
- Added the
MessageReferencetype - Changed the type of
Message.webhookIDtoSnowflake Webhook - Added the
activity,application,messageReference,flags,stickers,referencedMessage, andinteractionfields to messages. - Added
messageReferenceas a parameter ofCreateMessageOptions - Added
repliedUseras a parameter ofAllowedMentions - Fixed
CreateMessagenot actually sending theallowedMentionskey - Added the
CrosspostMessageroute - Added a
ToMessageinstance forMessageReference - Added a
replyfunction toCalamity.Types.Tellablethat replies to a given message in the same channel as the message - Added an
asReferencefunction toCalamity.Utils.Message
0.1.27.0
- Change the structure of
Reactionto be(count, me, emoji) - The previous structure of
Reactionis now known asReactionEvtData - The type of
MessageReactionAddEvtandMessageReactionRemoveEvtevents has been changed from(Message, Reaction)to(Message, User, Channel, RawEmoji) - The type of
RawMessageReactionAddEvtandRawMessageReactionRemoveEvtevents has been changed fromReactiontoReactionEvtData - More fixes to HTTP
- When parsing guilds, channels/members/ and presences that cannot be parsed are (silently) ignored instead of causing parsing of the guild to fail.
0.1.26.1
- Quick fix of GetChannelMessages
0.1.26.0
GetChannelMessagesnow has an extra parameter to allow thelimitoption to be applied at the same time as the other filters.ChannelMessagesQueryhas been renamed toChannelMessagesFilter.- The
ChannelMessagesLimittype has been introduced.
0.1.25.1
- Add
Upgradeableinstances forVoiceChannnel,DMChannel_,GroupChannel,TextChannel, andCategory.
0.1.25.0
- Changed how
ModifyGuildMemberData, andModifyGuildRoleDataare implemented to allow for the parameters to be optional and nullable. - Changed
EditMessageto useEditMessageDatainstead ofMaybe Text -> Maybe Embed, allowing for the parameters to be optional and nullable.
0.1.24.2
- Add event handlers for voice state update events:
'VoiceStateUpdateEvt - Apply some fixes for a few memory leaks
0.1.24.1
- Fix some memory leaks
0.1.24.0
- Switch from using Wreq to Req
- The
sessionparameter has been removed fromrunBotIO' - Add an
Upgradeableinstance forRoles - Add a command
Parserinstance forRoles
0.1.23.1
- Fix some more json parsing issues
0.1.23.0
- The
rolesfield was incorrectly present on thePresenceUpdatetype, that field has been removed. - The
gamefield onPresencewas changed toactivities :: [Activity]
0.1.22.1
- Bump some upper bounds
- Fix parsing of members from GetGuildMember
- Make game field in Presence correctly optional
- Make roles field in Presence updates correctly optional (internal)
0.1.22.0
- Update to gateway/http endpoint v8.
- Updated the message types.
- Added
defaultIntents, which is all but the privileged intents, also a Data.Default instance. runBotIOandrunBotIO'now always take anIntentsparameter.- Users are cached from messages, as well as member create events.
- Fix
Overwrites having an incorrecttype_field.
0.1.21.0
- Fix ToJSON instance for
RawEmoji
0.1.20.1
- Documentation improvements.
0.1.20.0
- Migrate do di-polysemy 0.2, runBotIO no longer handles the Log effect.
0.1.19.2
- Fix broken
Floatparsing.
0.1.19.1
- Fixed another missing activity type
0.1.19.0
- Support hidden commands.
0.1.18.1
- Fix custom presences failing to parse.
0.1.18.0
-
Add raw message events:
RawMessageUpdateEvt,RawMessageDeleteEvt,RawMessageDeleteBulkEvt,RawMessageReactionAddEvt,RawMessageReactionRemoveEvt,RawMessageReactionRemoveAllEvt. -
Fixed bulk message deletes firing a message delete per deleted message, instead of a bulk message delete event (I'm not sure how I did that).
-
Add
animatedfield toPartial Emojis. -
Make show instances for
Partial EmojiandRawEmojishow to their discord representation.
0.1.17.2
2020-07-04
-
Drop GHC-8.6.5, it doesn't like strictdata
-
Use unboxing-vector instead of doing stuff ourselves
0.1.17.1
2020-06-29
waitUntilandwaitUntilMnow correctly remove the temorary event handler they create if an exception is raised.
0.1.17.0
2020-06-28
-
Allow the session used for http requests to be specified to the client.
-
Drop from using a Wreq fork to vanilla Wreq.
-
TFilenow requires a filename parameter.
0.1.16.0
-
Change how commands should be manually invoked from code, instead of firing a
"invoke-command"custom event, now thehandleCommandsfunction should be used, which returns information about if the command succeeded. -
Added
fetchHandlerfor retrieving the command handler inside a command DSL.
0.1.15.0
-
General cleanup of codebase
-
Enable StrictData by default
0.1.14.9
2020-06-22
- Support manually invoking commands.
0.1.14.8
2020-06-21
- Replace uses of withLowerToIO with interpretFinal (should be more performant)
0.1.14.7
2020-06-21
- Fix missing usage of GetAuditLogOptions in GetAuditLog
0.1.14.6
2020-06-18
- Add command parameter
Parsers forInt,Integer,Word,Natural, andFloat.
0.1.14.5
2020-06-18
-
The
DecodeErrorvariant of theRestErrortype has been renamed toInternalClientErroras all issues in the rest client now end up here. -
We're now using
discord.cominstead ofdiscordapp.com
0.1.14.4
2020-06-11
-
Added
activityto construct Activities -
Added aliases for commands and groups, with new functions to create them (
commandA,groupA, ...). -
The built in help command now shows aliases and checks.
0.1.14.3
2020-06-10
- Fix some bugs in the gateway
0.1.14.2
2020-06-09
-
Fix broken json decoding for DMs
-
Add
mentionChannelstoMessage
0.1.14.1
2020-06-08
- Fix broken json decoding for member's
0.1.14.0
2020-06-08
-
Unpacked the
userfield ofMemberinto itself. -
Add message formatting utilities (
Calamity.Utils.Message). -
Add support for allowed mentions in
Tellable. -
Change Snowflake's show instance to just show the numberic id.
-
Added parsers for RawEmoji and Either.
0.1.13.0
2020-06-06
- Changed event handlers to take tuples instead of being higher arity when there is more than one parameter to the callback.
0.1.12.0
2020-06-06
- Changed some events to take enums instead of booleans:
GuildCreateEvtandGuildDeleteEvt.
0.1.11.2
2020-06-03
- Moved the internal
UpdatedMessagefromCalamity.Types.Model.Channel.MessageintoCalamity.Types.Model.Channel.UpdatedMessage.
0.1.11.0
2020-05-31
- Add command parameter parsers for channel/guild/emoji
- Support allowed mentions
- Support invite events
- Support setting gateway intents
- Add
Calamity.Types.Model.Guild.PermissionandCalamity.Utils.Permissionsand change permissions fields fromWord64toPermissions - Add
Calamity.Utils.Colourand change color fields fromWord64toData.Color.Color Double
0.1.10.0
2020-05-27
-
Renamed
Calamity.Commands.Parser.KleeneConcattoCalamity.Commands.Parser.KleeneStarConcatand addedCalamity.Commands.Parser.KleenePlusConcat -
Added
Calamity.Types.Upgradeable
0.1.9.2
2020-05-23
-
Added a default help command, located in
Calamity.Commands.Help. -
Commands now have the list of parameters they take
0.1.9.1
2020-05-23
-
Added
Calamity.Commands.Parser.Namedfor parameters that have a name. -
General improvements to parser errors
0.1.9.0
2020-05-22
-
Added commands, located in
Calamity.Commands, along with a DSL for declaring commands nicely. -
Renamed
waitUntiltowaitUntilM, and introduced a variant with a pure check function that takes the original name ofwaitUntil.
0.1.8.0
2020-05-15
- Did a large rework of how event handlers are stored internally.
- introduced
waitUntil
0.1.4.0
- Added back extra exports of
Calamity.Types.PartialfromCalamity.Types.Model.Guild.Guild,Calamity.Type.Model.Guild.Emoji, andCalamity.Types.Model.Channel. There is now way to export the constructor without also exporting Partial apparently?
0.1.3.0
2020-04-27
-
Removed extra exports of
Calamity.Types.PartialfromCalamity.Types.Model.Guild.Guild,Calamity.Type.Model.Guild.Emoji, andCalamity.Types.Model.Channel -
Added missing exports of
CreateGuildEmojiOptionsandModifyGuildEmojiOptionsfromCalamity.HTTP.Emoji -
Added missing exports of
CreateGuildDataandModifyGuildDatafromCalamity.HTTP.Guild
0.1.2.0
2020-04-27
- Calamity.Client: runBotIO now has a
Polysemy.Faileffect