02.11.2024
02.11.2024
- maintenance: Update github actions (
#723
) - (5d60dcc3
) - bug: Properly expose soundboard (
#727
) - (f8be20f1
) - bug: Fix missing imports (
#728
) - (8ba1f41a
) - docs: More docs and typos (
#724
) - (b3c242bd
) - bug: Move logging when connecting (
#726
) - (3cd8c773
)
22.10.2024
- feature: Add new member flags. (
#715
) - (e10d0ffb
) - feature: Add new fields on message snapshot. (
#716
) - (57dc3282
) - bug: Fix serialization of
before
parameter. (#717
) - (091c376f
) - feature: Recurrence rule can be set to null when updating. (
#720
) - (aaef80ac
) - feature: Add support for soundboard. (
#708
) - (d93aa122
) - feature: Allow polls to be constructed in a interation response. (
#719
) - (db27c54d
) - feature: Add banner property to member. (
#676
) - (4041b556
) - feature: Fix user avatar decoration, add member avatar decoration. (
#718
) - (b8e5ba7c
) - maintenance: Update integration_tests.yml. (
527eed5a
)
08.10.2024
05.10.2024
04.10.2024
- bug: Fix exports (
d2312de
)
04.10.2024
- feat: Add new permissions (
#679
) - (c91f050
) - bug: Make webhook execute apply name/avatar when message doesn't contain any attachments (
#681
) - (cac408e
) - bug: Add missing
approximateUserInstallCount
toApplication
(#683
) - (3e2de40
) - feat: Add missing audit log event types (
#684
) - (b1b6414
) - feat: Add auditLogReason to followChannel (
#685
) - (8f7f629
) - feat: Add recurrence rules for scheduled events (
#686
) - (ffc0c08
) - bug: Add missing fields to Message (
#689
) - (8a469c4
) - feat: Add type field to Invite (
#688
) - (e38dbf8
) - bug: Delete any commands left over in tests (
#693
) - (7022767
) - feat: Add fetch voice state endpoints (
#692
) - (b91d782
) - feat: Add support for subscriptions (
#690
) - (8e50682
) - feat: Add update onboarding endpoint to GuildManager (
#687
) - (002cdfc
) - feat: Add application emojis (
#678
) - (56ec264
) - feat: Improve cache implementation (
#694
) - (59c0b39
) - bug: Don't modify Cache.keys during iteration (
#698
) - (8b4b451
)
11.07.2024
07.07.2024
- feat: Add one time purchase SKUs support. (
#651
) - (b874066
) - bug: Include query parameters in CDN requests. (
#653
) - (f2c33ce
) - feat: Add warning logs for rate limits. (
#654
) - (976d290
) - feat: Add
deleteMessages
parameter toMember.ban
. (#656
) - (55c94c3
) - bug: Ensure
client.close()
cleans up all pending operations. (#655
) - (e8d9d5d
) - feat: Add polls support. (
#644
) - (7908853
) - bug: Allow non-ascii characters in audit log reasons. (
#659
) - (27b74b5
) - feat: Add
memberUpdate
automod type. (#662
) - (a502121
) - feat: Add
blockMemberInteraction
automod action type. (#664
) - (50f3377
) - feat: Add support for premium buttons. (
#690
) - (8e50682
) - bug: Allow parsing unknown enum values. (
#655
) - (0a212fd
) - bug: Fix parsing of message interaction metadata user. (
#688
) - (9eb5569
)
03.04.2024
20.03.2024
- feat: Add support for Group DM endpoints when using an OAuth client. (
#600
) - (6ed9657
) - feat: Add support for
username
andavatarUrl
parameters for webhooks. (#611
) - (982e0d9
) - feat: Add
Spanish, LATAM
locale. (#610
) - (896004a
) - bug: Fix events being dropped when plugins had async initialization. (
#612
) - (bb54de1
) - bug: Return an empty list instead of throwing when fetching the permission overrides of a command that has none. (
#613
) - (1a4ed82
) - feat: Add ratelimits when sending Gateway events. (
#614
) - (f6ef61b
) - bug: Allow any
Flags<Permissions>
inRoleUpdateBuilder.permissions
. (#617
) - (4c7f7fa
) - bug: Export types that were previously kept private. ([
#616
])(#616) - (a1b2bc6
) - feat: Allow plugins to intercept HTTP requests and Gateway events. (
#615
) - (ff92f86
) - bug: Fix
MessageManager.bulkDelete
not serializing the request correctly. (#618
) - (797579b
) - bug: Fix
GuildDeleteEvent
s not being parsed whenunavailable
was not explicitly set. (#619
) - (7ea4070
) - bug: Correct serialization of guild builders. (
#621
) - (d9593c5
) - bug: Correct value of
TriggerType.spam
. (#623
) - (463cda9
) - docs: Hide constructors from documentation. (
#624
) - (3e0ecdf
) - bug: Fix parsing role flags in guild templates. (
#625
) - (495b88f
) - bug: Fix
isHoisted
attribute in role builders. (#627
) - (bb62547
) - bug: Fix all audit log parameters in
StickerManager
,EmojiManager
andWebhookManager.update
(#628
) - (4ece7f7
) - bug: Fix
interactionsEndpointUrl
being ignored inApplicationUpdateBuilder
(#628
) - (4ece7f7
) - feat: Add more shortcut methods on models. (
#628
) - (4ece7f7
) - feat: Add
enforceNonce
toMessageBuilder
. (#631
) - (7407767
) - feat: Add missing role tags fields. (
#632
) - (0deacf8
) - bug: Correct the default
User-Agent
header. (#633
) - (a1d89ca
) - bug: Don't require OAuth2 identify scope when using
NyxxOauth2
. (#634
) - (408fe03
) - feat: Add field to delete events containing the cached entity before it was deleted. (
#635
) - (1e8d5e5
) - feat: Add builders for auto moderation actions. (
#636
) - (2e09030
) - bug: Initialize login sooner to avoid dropping logs. (
#637
) - (02ee8a6
) - feat: Add
banner
toUserUpdateBuilder
. (#638
) - (42f7bef
) - feat: Add
SkuFlags.available
. (#638
) - (42f7bef
) - feat: Add bungie, domain and roblox connection types. (
#639
) - (70c9d04
) - feat: Add support for user applications. (
#641
) - (10181ac
) - feat: Add
bulkBan
toGuildManager
. (#640
) - (6adc5ff
)
09.12.2023
- feat: Add payload to
EntitlementDeleteEvent
. (#599
) - (7a0f346
) - feat: Add
flags
field toSku
. (#602
) - (74bf507
) - feat: Add support for select menu default values. (
#601
) - (5a833f3
) - feat: Add
GuildUpdateBuilder.safetyAlertsChannelId
. (#596
) - (c1eab88
) - docs: Enable link to source in package documentation. (
#607
) - (57ce193
) - feat: Add AutoMod message types. (
#597
) - (3ba7e7e
) - bug: Fix
ButtonBuilder
serialization. (#595
) - (a81ee15
) - bug: Fix
GuildUpdateBuilder
not being able to unset certain settings. (#596
) - (c1eab88
) - bug: Fix incorrect
PermissionOverwriteBuilder
serialization when creating/updating channels. (#596
) - (c1eab88
) - bug: Fix
GuildManager.listBans
ignoring the provided parameters. (#598
) - (d04db1a
) - bug: Correctly export
Credentials
frompackage:oauth2
for OAuth2 support. (#604
) - (f23cfd2
) - bug: Fix members in message interactions not having their guild set. (
#603
) - (c12ba89
)
26.11.2023
- bug: Fix incorrect serialization of autocompletion interaction responses (again). (
#591
) - (573c9bc
) - bug: Try to fix invalid sessions triggered by Gateway reconnects. (
#592
) - (46f128c
)
16.11.2023
- bug: Fix incorrect assertions in interaction.respond. (
#584
) - (f7abb73
) - bug: Fix incorrect serialization of autocompletion interaction responses. (
#585
) - (55a8c76
)
01.11.2023
- bug: Fix incorrect serialization of CommandOptionBuilder. (
#571
) - (9728833
) - bug: Fix customId missing from ButtonBuilder constructor. (
#570
) - (31ab26d
) - bug: Fix voice states not being cached correctly. (
#575
) - (758648c
) - bug: Fix incorrect parsing of scheduled events. (
#576
) - (a78b1f8
) - bug: Fix
ephemeral
parameter not working when responding to message component interactions. (#577
) - (2afc142
) - bug: Fix parsing button labels when they are not set. (
#578
) - (1919613
) - bug: Fix incorrect serialization of TextInputBuilder. (
#579
) - (08a14be
) - bug: Fix some entities not being cached. (
#580
) - (ab35012
) - bug: Fix entities getting "stuck" in cache due to momentary high use. (
#580
) - (ab35012
) - feat: Add more places entities can be cached from. (
#580
) - (ab35012
)
16.10.2023
- rewrite: The entire library has been rewritten from the ground up. No pre-
6.0.0
code is compatible. - To explore the rewrite, check out the API documentation or the documentation website. For help migrating, use the migration tool or join our Discord server for additional help.
- bug: Fix
ModalBuilder
having the incorrect data type. (#535
) - (d130e4c
) - feat: Add the new
state
field toActivityBuilder
. (#556
) - (3630696
) - bug: Fix
activities
not being sent in the presence update payload. (#557
) - (650ee17
) - bug: Fix casts when parsing
Snowflake
s triggering errors when using ETF. (#559
) - (3402435
) - bug: Fix incorrect payload preventing the client from muting/deafening itself. (
#561
) - (c31514b
) - bug: Correctly export
NyxxPluginState
. (#561
) - (c31514b
) - feat: Implement all new features since the start of the rewrite (including premium subscriptions). (
#562
) - (141e444
) - bug: Fix incorrect parsing of
MessageUpdateEvent
s. (#564
) - (17dfca5
) - feat: Add
logger
to plugins and makename
inferred fromruntimeType
by default. (#565
) - (32507f3
)
16.09.2023
- rewrite: Interaction responses now throw errors instead of using assertions. (
#529
) - (0108748
) - rewrite: Improved plugin interface with support for plugin state and a simpler API. (
#545
) - (e2cd7b4
) - feat: Added constructors to most builders with multiple configurations. (
#531
) - (d5fd47d
) - feat: Added support for authenticating via OAuth2. (
0a41de7
) - feat: Added
HttpHandler.onRateLimit
for tracking client rate limiting. (#532
) - (76209f8
) - feat: Parse emoji in reaction events. (
#533
) - (9d79001
) - feat: Allow specifying
stdout
andstderr
inLogging
. (#549
) - (cf5c17d
) - feat: Add
NyxxRest.user
to get the current user. (#551
) - (18bafed
) - feat:
Attachment
now implementsCdnAsset
for easier fetching. (#547
) - (e1d7679
) - bug: Fixed emoji in SelectMenuBuilder not being sent correctly. (
#528
) - (e4f62ab
) - bug: Fixed parsing members in interaction data. -
- bug:
DiscordColor
did not allow a value of0xffffff
(white). (#550
) - (e30a8ea
) - bug: Fixed parsing role mentions as role objects in messages. (
#552
) - (7410c78
)
24.08.2023
- rewrite: Changed
MessageBuilder.embeds
andMessageUpdateBuilder.embeds
to use a newEmbedBuilder
instead ofEmbed
objects. (#525
) - (28e6ab1
) - rewrite: Changed all builders to be mutable. (
#524
) - (7b414b8
) - rewrite: Implement the interactions & message components API. (#694) - (59c0b39)
- rewrite:
ActivityBuilder
is now exported. (#513
) - (8989abc
) - rewrite: Fixed some typos:
ChannelManager.parseForumChanel
->ChannelManager.parseForumChannel
andchanel
->channel
in the docs forVoiceChannel.videoQualityMode
. (#514
) - (1533c76
) - rewrite: Added wrappers around CDN endpoints and assets. (
#511
) - (05c021c
) - feat: Added
Permissions.allPermissions
, the set of permission flags with all permissions. (#522
) - (b4ea059
) - feat: Added
HttpHandler.latency
,HttpHandler.realLatency
,Gateway.latency
andShard.latency
for tracking the client's latency. (#517
) - (fd56dbc
) - feat:
Flags
now has the~
and the^
operators. (#510
) - (ebbf2a9
) - feat: Added
HttpHandler.onRequest
andHttpHandler.onResponse
streams for tracking HTTP requests and responses. (#507
) - (f83aa06
) - bug: Fixed
MessageUpdateEvent
s causing a parsing error. (#521
) - (bce7eaa
) - bug: Fixed classes creating uncaught async errors when
toString()
was invoked on them. (#520
) - (4ad3c76
) - bug: Empty caches are no longer stored. (
#518
) - (0e96354
) - bug: Fixed stickers causing a parsing error. (
#509
) - (6ebc790
) - bug: Fixed rate limits not applying correctly when multiple requests were queued. (
#507
) - (f83aa06
) - bug: Fixed
applyGlobalRatelimit
inHttpRequest
not doing anything. (#507
) - (f83aa06
)
03.07.2023
- rewrite: The entire library has been rewritten from the ground up. No pre-
6.0.0-dev.1
code is compatible. - Join our Discord server for updates concerning the migration path and help upgrading. For now, check out the new examples and play around with the rewrite to get a feel for it.
11.08.2023
- bug: Error on ThreadMemberUpdateEvent due invalid event deserialization. (
c7d1fa5
)
16.06.2023
- feature: Support the new unique username system with global display names. (
#497
) - (9e7b2e8
) - bug: remove the
!
in the mention string as it has been deprecated. (#497
) - (9e7b2e8
)
04.06.2023
- bug: Fix invalid casts.
11.04.2023
- bug: Always initialize guild caches. (
b982753
)
08.04.2023
- bug: TextChannelBuilder and VoiceChannel builder had rateLimitPerUser and videoQualityMode swapped
- documentation: Guild members (
#470
) - (e165414
)
18.03.2023
- documentation: Channel invites (
#448
) - (f54390d
) - bug: Correctly dispose all resources on bot stop (
#451
) - (3d79b2b
)
19.03.2023
04.03.2023
- feature: Add named arguments anywhere we can (
#396
) - (3ec4562
) - feature: Make CDN urls more reliable (
#373
) - (1f68eeb
) - feature: Dispatch raw events (
#447
) - (d9b373a
) - feature: Implement missing thread features (
#433
) - (cdb95a7
) - feature: Add avatar decorations to cdn endpoints (
#410
) - (e9256a4
)
18.02.2023
- feature: New message types (
#431
) - (3e7d33a
) - feature: Thread members details (
#432
) - (8377c8a
) - feature: Implement guild active threads endpoint (
#434
) - (ee5f7f2
) - feature: Implement missing forum features (
#433
) - (cdb95a7
) - feature: ETF Encoding (
#420
) - (c7d3816
) - feature: ETF encoding stability and payload compression (
#421
) - (440b6cd
) - feature: Implement @silent messages (
#442
) - (44b172d
) - feature: Implement newly created and member fields in thread create event (
#441
) - (10c36c5
) - feature: Add flags property to member (
#437
) - (1da4c0d
) - feature: Audit log create event (
#436
) - (b55e85d
) - bug: hasMore is optional for guild.fetchActiveThreads() (
#443
) - (8895684
) - bug: Mirror fix #352 to multipart request (
#445
) - (7121638
) - bug: bug: Fix forum channel available tags deserialization
- bug: Fix update member roles equality (
#438
) - (01f29c7
) - documentation: Fix comments and nullability in examples (
#416
) - (24a85ec
) - documentation: Add message intent to readme (
#428
) - (e3a6730
)
26.01.2023
- sync with dev branch (up to 4.5.0-dev.0) -
26.01.2023
- feature: New message types (
#431
) - (3e7d33a
) - feature: Thread members details (
#432
) - (8377c8a
) - feature: Implement guild active threads endpoint (
#434
) - (ee5f7f2
) - feature: Implement missing forum features (
#433
) - (cdb95a7
) - feature: ETF Encoding (
#420
) - (c7d3816
) - feature: ETF encoding stability and payload compression (
#421
) - (440b6cd
) - documentation: Fix comments and nullability in examples (
#416
) - (24a85ec
) - documentation: Add message intent to readme (
#428
) - (e3a6730
)
22.01.2023
12.12.2022
- feature: Improve error handling and logging (
#403
) - (8b7e67b
) - bug: Fix build() for GuildEventBuilder
- bug: Update exports
20.11.2022
19.11.2022
- feature: Add retry with backoff to network operations (gateway and http) (
#395
) - (0c666f1
) - feature: automoderation regexes (
#393
) - (6f27937
) - feature: add support for interaction webhooks (
#397
) - (a255e3a
) - feature: Forward
RetryOptions
(#402
) - (fb6a902
) - bug: Fixed bug when getting IInviteWithMeta -
- bug: Emit bot start to plugins only when ready (
#392
) - (8b47436
) - bug: fix builder not building when editing a guild member (
#405
) - (ffbfadf
)
15.11.2022
This version also includes fixes from 4.2.1
15.11.2022
This version also includes fixes from 4.2.1
15.11.2022
- hotfix: fix component deserialization failing when
customId
isnull
14.11.2022
- feature: Add retry with backoff to network operations (gateway and http) (
#395
) - (0c666f1
) - feature: automoderation regexes (
#393
) - (6f27937
) - bug: Emit bot start to plugins only when ready (
#392
) - (8b47436
)
13.11.2022
- feature: missing forum channel features (
#433
) - (cdb95a7
) - feature: Add
activeDeveloper
flag (#388
) - (d6f692e
) - feature: Add support for new select menus components feature: Prefer using throw over returning Future.error -
- bug: Fix null-assert error on shard disposal; don't reconnect shard after disposing (
#386
) - (ac38200
) - bug: Cache user when fetching (
#384
) - (2bca86e
) - bug: add message content to client (
#389
) - (6cb667a
)
11.11.2022
- feature: missing forum channel features (
#433
) - (cdb95a7
) - bug: Cache user when fetching (
#384
) - (2bca86e
)
01.11.2022
- bug: Combine decompressed gateway payloads before parsing them
30.10.2022
23.10.2022
25.09.2022
- feature: Add
invitesDisabled
feature (#370
) - (93140c0
) - feature: Add pending for member screening (
#371
) - (ef9adef
) - feature: member screening events (
#372
) - (5a5af0e
) - feature: Cache guild events (
#369
) - (b5cdb98
) - feature: Refactor internal shard system (
#368
) - (6ea3bcf
) - feature: Event to notify change of connection status (
#364
) - (e3a35ff
) - feature: feature: auto moderation (
#393
) - (6f27937
) - bug: Fixup shard disconnect event
20.09.2022
15.09.2022
- feature: Add
invitesDisabled
feature (#370
) - (93140c0
) - feature: Add pending for member screening (
#371
) - (ef9adef
) - feature: member screening events (
#372
) - (5a5af0e
)
03.09.2022
28.08.2022
- bug: Fixup shard disconnect event
28.08.2022
- feature: Refactor internal shard system (
#368
) - (6ea3bcf
) - feature: Event to notify change of connection status (
#364
) - (e3a35ff
)
20.08.2022
29.07.2022
- breaking: Fix typo in
IHttpResponseSucess
- breaking: Remove
threeDayThreadArchive
andsevenDayThreadArchive
guild features - breaking: Remove all deprecated members -
- bug: Fix ratelimiting
- breaking: All calls to the API are now made via
IHttpRoute
s instead ofString
s. - Construct routes by creating an
IHttpRoute()
andadd
ingHttpRoutePart
s or by calling the helper methods on the route.
- breaking: All calls to the API are now made via
- feature: Move to Gateway & API v10 (
#325
) - (c134c64
)- Added the Message Content privileged intent
- feature: Add guild Audit Log options
- feature: Implement forum channels (
#332
) - (4f58d70
) - feature: Implement guild Welcome Screen & Channel
- feature: Add missing Audit log types
- feature: Implement guild Banners
- feature: Implement partial presences
- feature: Add missing guild properties
- feature: Add missing reaction endpoints
- feature: Handle websocket disconnections
- feature: Implement clean client shutdown
- feature: Add
limitLength
toMessageBuilder
(#356
) - (763b054
) - feature: Add paginated bans (
#326
) - (6ebe590
) - feature: Remove dollar prefix for identify payload (
#361
) - (362adcb
) - bug: Fix mention string, and use a better approach to retrieve everyone role -
- bug: Fix incorrect guild URLs
- bug: Fix incorrect file encoding
- bug: Fix member editing
- bug: Fix serialization issues (
#351
) - (405cffb
) - bug: Fix uninitialized fields
12.06.2022
- feature: Add missing emoji endpoints (
#346
) - (b9afdeb
) - feature: Add
threadName
onIWebhook#execute()
(#348
) - (cfc7820
) - feature: Implement graceful shutdown (
#347
) - (6444aae
) - feature: Implement forum channels (
#332
) - (4f58d70
) - feature: Implement Dynamic Bucket Rate Limits (
#316
) - (866fa57
) - feature: Implement paginated bans (
#326
) - (6ebe590
) - feature: Implement missing guild properties
- bug: Fixed disconnecting user from voice
- bug: failed to edit guild members (
#328
) - (e242892
) - bug: Invalid serialization of query params (
#352
) - (ed867d6
) - bug: Fix some serialization bugs (
#351
) - (405cffb
)
09.05.2022
- feature: Handle no internet on websocket
- bug: Remove Error form IHttpResponseError (
#324
) - (fc438e4
)- Fixup field names on IHttpResponseError
- Fixup IHttpResponseSuccess name
- feature: Move to API v10 (
#325
) - (c134c64
)
31.03.2022
22.04.2022
- bug: Fix setting
channel
tonull
in MemberBuilder causing errors
10.04.2022
- bug: bugfix: failed to edit guild members
09.04.2022
- feature: Add
@bannerUrl()
method - feature: Implement paginated bans
30.03.2022
- bug: Fix member not being initialized in IMessage
15.03.2022
- feature: Guild emoji improvements
- Added missing properties on
IBaseGuildEmoji
. - Partial emoji can be now resolved to it's full instance with
resolve()
method - Author of emoji can be now resolved with
fetchCreator()
- Added missing properties on
- feature: Allow editing messages to remove content
- feature: Add previous state to *UpdateEvents
- bug: fix: initialize name and format values for PartialSticker
- bug: Make IHttpResponseError subclass Exception
- bug: Update documentation
05.03.2022
- feature: Guild emoji improvements
- Added missing properties on
IBaseGuildEmoji
. - Partial emoji can be now resolved to it's full instance with
resolve()
method - Author of emoji can be now resolved with
fetchCreator()
- Added missing properties on
- bug: Make IHttpResponseError subclass Exception
- bug: Update documentation
08.02.2022
- feature: Implement TextInput component type
08.02.2022
- bugfix: Remove noop constructor parameters. Deprecate old parameters on INyxxFactory
01.02.2022
- bugfix: Fix permission serialisation
30.01.2022
- bugfix: Serialization error with permissions on ChannelBuilder. Fixes #294
- bugfix: Fix MemberBuilder serialization json error
23.01.2022
- bugfix: Properly serialize member edit payload. Fixes #291
- bugfix: Improve shard searching mechanism. Fixes #290
- bugfix: Fix message deserialization bug with roleMentions. Fixes #289
10.01.2022
- Fixup invalid formatting of emoji in BaseGuildEmoji.formatForMessage
08.01.2022
- Fix message edit behavior
- Fix
addEmbed
behavior on message builder
01.01.2022
- Fixup bug with deserialization of new field on voice guild channel introduced in previous release
31.12.2021
- Add missing ActivityTypes
- Fix deserialization of presence update event
- Implement voice channel region
29.12.2021
- Correctly expose
builder
parameter inIMember#edit
28.12.2021
- Implement patches needed for external sharding feature
- Implement boost progress bar
- Implement timeouts
- deprecation of edit method parameters in favor of
MemberBuilder
class. In next major release all parameters exceptbuilder
andauditReason
will be removed
- deprecation of edit method parameters in favor of
- Fix incorrectly initialised onDmReceived and onSelfMention streams
21.12.2021
- Fix CliItegration plugin not working with IgnoreExceptions
- Use logger instead of print
- Fix typo in file name
- Nullable close code
- Missing ActivityBuilder
19.12.2021
- Implemented new interface-based entity model.
All concrete implementations of entities are now hidden behind interfaces which exports only behavior which is intended for end developer usage. For example: User is now not exported and its interface
IUser
is available for developers. This change shouldn't have impact of end developers. - Implemented basic plugin system for reusable framework plugins (Currently available plugins: Logging, CliIntegration, IgnoreExceptions)
INyxx now implements
IPluginManager
inteface which allows registering plugin viaregisterPlugin
. Developers can create their own plugins which can access various hooks inside INyxx instance. For now plugins system allows hooking up toonRegister
,onBotStart
andonBotStop
. - Improved cache system. Cache abstractions provided by nyxx are now compatible with
MapMixin<Snowflake, T>
SnowflakeCache
now implementsMapMixin<Snowflake, T>
and is compatibile with Map - Allowed running bot as REST only. It enables extensions that only require nyxx entities and http capabilities.
Internals of nyxx were rewritten to allow running entirely in REST mode without websocket connection. Previously similar behavior was available but wasn't working as intended.
- Implemented ITextVoiceTextChannel.
Discords beta feature
chat in voice channels
was implemented in form ofITextVoiceTextChannel
interface - Added support for Guild Scheduled Events
- Do not send auth header when it's not needed
- Added support for Dart 2.15
- Fixup message update payload deserialization
- Implement multiple files uploads. Fixes #226
- Implement missing webhook endpoints. Fixes #235
- Implement get thread member endpoint; Fixes #234
- Implement edit thread channel functionality; Fixes #247
- Fix few message update event deserialization bugs
- Fix TODOs and all analyzer issues
Other changes are initial implementation of unit and integration tests to assure correct behavior of internal framework
processes. Also added Makefile
with common commands that are run during development.
02.12.2021
- Fixup message update payload deserialization
02.12.2021
- Implement multiple files uploads. Fixes #226
- Implement missing webhook endpoints. Fixes #235
- Implement get thread member endpoint; Fixes #234
- Implement edit thread channel functionality; Fixes #247
- Fix few message update event deserialization bugs
- Fix TODOs and all analyzer issues
24.11.2021
- Implemented new interface-based entity model.
All concrete implementations of entities are now hidden behind interfaces which exports only behavior which is intended for end developer usage. For example: User is now not exported and its interface
IUser
is available for developers. This change shouldn't have impact of end developers. - Implemented basic plugin system for reusable framework plugins (Currently available plugins: Logging, CliIntegration, IgnoreExceptions)
INyxx now implements
IPluginManager
inteface which allows registering plugin viaregisterPlugin
. Developers can create their own plugins which can access various hooks inside INyxx instance. For now plugins system allows hooking up toonRegister
,onBotStart
andonBotStop
. - Improved cache system. Cache abstractions provided by nyxx are now compatible with
MapMixin<Snowflake, T>
SnowflakeCache
now implementsMapMixin<Snowflake, T>
and is compatibile with Map - Allowed running bot as REST only. It enables extensions that only require nyxx entities and http capabilities.
Internals of nyxx were rewritten to allow running entirely in REST mode without websocket connection. Previously similar behavior was available but wasn't working as intended.
- Implemented ITextVoiceTextChannel.
Discords beta feature
chat in voice channels
was implemented in form ofITextVoiceTextChannel
interface - Do not send auth header when it's not needed
- Added support for Dart 2.15
Other changes are initial implementation of unit and integration tests to assure correct behavior of internal framework
processes. Also added Makefile
with common commands that are run during development.
02.11.2021
- Fix #236
- Fix #237
22.10.2021
- Add pending to member
- use case-insensitive name comparison in _registerCommandHandlers
15.10.2021
- Move to Apache 2 license
09.10_2021
- Fix #215 - invalid application url was generated with zero permissions (592c4dcc)
04.10.2021
- Fix #214 - Invalid date in embed timestamp (07d855f1)
03.10.2021
- fix deserialization of autocomplete interaction
03.10.2021
- Fix editMember function declaration
03.10.2021
Second major stable version of nyxx. Since 1.0 changed a lot - internal are completely rewritten, bots should work faster and more stable and reliable
- Implemented message components
- Reworked rate limits implementation
- Reworked sharding
- Reworked http internals. Now all raw api calls are accessible.
- Rework entity structure allowing more flexibility and partial instantiating
- Slash commands implementation
25.04.2021
Release Candidate 2 for stable version. Requires dart sdk 2.12
- Removed
w_transport
and replaced it withhttp
package for http module and websockets fromdart:io
(18d0163, 5644937, 9b863a4, 06482f9) - Fix replacing embed field. Order of fields is now preserved (f667c2a)
- Dart2native support (1c6a4f3)
- Rewrite of internal object structure (ff8953d)
- Expose raw api call api (f297cc0)
- Add support for gateway transport compression (fd090dd)
- Moved to v8 on REST and gateway (423173d)
- Intents value is now required and added to Nyxx constructor (2b3e002)
- Added ability to configure cache (163eca9)
- Implemented stickers (16f2b79)
- Implemented inline replies (e412ec9)
- Added raw shard event stream (627f4a0)
- Fix message reaction events were not triggered when cache misses message (fedbd88)
- New utils related to slash commands (8e46b71) @HarryET
- Fixed bug where message with only files cannot be sent (1092624)
- Fixed setPresence method (fbb9c39) @One-Nub
- Added missing delete() method to IChannel (131ecc0)
- Added support for stage channels
- Added cache options for user
08.09.2020
- Fix guild embed channel deserialization
- Fix store and news channel deserialization
29.08.2020
- Fix voice state cache being not initialized properly.
24.08.2020
Stable release - breaks with previous versions - this version required Dart 2.9 stable and non-nullable experiment to be enabled to function
1.0.0
drops support for browser. Nyxx will now run only on VM
nyxx
package contains only basic functionality - everything else is getting own packagemain lib package
- Fixed errors and exceptions to be more self-explanatory
- Added new and fixed old examples. Added additional documentation, fixed code to be more idiomatic
- Logger fixes. User is now able to use their logger implementation. Or disable logging whatsover
- New internal http submodule - errors got from discord are always returned to end user. Improved ratelimits and errors hadling
- Now initial presence can be specified
- Added support for conneting to voice channel. No audio support by now tho
- Cache no longer needed for bot to function properly
- There is now difference between cached and uncached objects
- Events will provide objects if cache but also raw data received from websocket (etc. snowflakes)
- Better cache handling with better events performance
- Implemented missing API features
- Added support for sharding. Bot now spawn isolate per shard to handle incoming data
- Fixed websocket connectin issues. Now lib should reliably react to websocket errors
- Added
MemberChunkEvent
to client. Invoked when event is received on websocket. - Lib will try to properly close ws connections when process receives SIGTERM OR SIGINT.
- Added support to shutdown hooks. Code in these hooks will be run before disposing and closed shards and/or client
- Fixed and moved around docs
- New internal structure of lib
- Added extensions for
String
andint
for more convenient way to convert them toSnowflake
- Added support for gateway intents
Snowflake
objects are now ints- Implemented member search endpoints for websocket and API
- Added missing wrappers for data from discord
==
operator fixes for objects
Tue 07.02.2019
This version drops support for Dart SDK 1.x; Nyxx now only supports Dart 2.0+ including dev sdk.
Changelog can be incomplete - it's hard to track changes across few months
- Features added
- SUPPORT FOR DART 2.0+
- ADDED SUPPORT FOR VOICE via Lavalink
- PERMISSIONS OVERHAUL
- Proper permissions handling
- COMMANDS FRAMEWORK REWRITTEN
- Dispatch pipe is completely rewritten. Bot should operate about 2-8x faster
- Allowed to declare single method commands without using classes
- Added support for specify custom restrictions to commands handlers
- Classes now have to be annotated with
Module
instead ofCommand
Remainder
can now called data toList<String>
orString
- Added
Preprocessor
andPosprocessor
- Removed help system
- COMMANDS PARSER
- Allows to define simple commands handlers
- Nyxx can be now used in browser
- Many additions to
Member
andUser
classes - Changed internal library structure
- Implemented Iterable for Channel to query messages
- Added typing event per channel
- Using
v7
api endpoint - Added support for zlib compressed gateway payload
- Added endpoints for Guild, Emoji, Role, Member
- Added utils module
- Allowed to download attachments. (
Downloadable
interface) - Implemented new Discord features (Priority speaker, Slowmode)
- Added
DiscordColor
class - Added
Binder
util - Added
Cache
- Added
MessageBuilder
- Added interfaces
Downloadable
,Mentionable
,Debugable
,Disposable
,GuildEntity
- Bug fixes
- Lowered memory usage
- Websocket fixed
- Fixed Emojis comparing
- Fixed searching in Emojis unicode
- Code cleanup and style fixes
- Proper error handling for
CommandsFramework
- Gateway fixes
- Object deserializing fixes
- Memory and performance improvements
- Random null exceptions
- Emojis CDN fixes
- Few fixes for ratelimitter
- Changes
- Docs are rewritten
- Faster deserialization
- Embed builders rewritten
- Removed autosharding.
- Every object which has id is now subclass of
SnowflakeEntity
. - Snowflakes are default id entities
- Internal nyxx API changes
- Cooldown cache rewritten
- Presence sending fixes
- Title is not required for EmbedBuilder
- Removed unnecessary dependencies
Tue 03.08.2018
-
Changes
- nyxx now supports Dart 2.0
- Added Interactivity module
- Added few methods to
CommandContext
- Rewritten
CooldownCache
-
Bug fixes
- Fixed
Command
help generating error - Fixed Emojis equals operator
- Fixed
Tue 31.07.2018
- Bug fixes
- Fixed
MessageDeleteEvent
deserializing error - Fixed checking for channel nsfw for CommandsFramework
- Fixed
Mon 30.07.2018
- New features
- Support for services - DEPENDENCY INJECTION
- Support for type parsing
- Logging support
- Listener for messages for channel
- Automatic registering Services and Commands
Remainder
annotation which captures all remaining text- Permissions are now READ/WRITE - added PermissionsBuilder
- Checking for topics and if channel is nsfw for commands
- Bug fixes
- Fixed error throwing
- Text in quotes is one String
- Fixed StreamControllers to be broadcast
- Removed unnecessary fields from DMChannel and GroupDMChannel
- Big performance improvement of CommandFramework
- Fixed Permissions opcode
delay()
changed tonextMessage()
- Deprecations
- Deprecated browser target
- Removed MirrorsCommandFramework and InstanceCommandFramework
Wed 11.07.2018
- Bug fixes
- Fixed bug with sending Emoji.
toString()
now return proper representation ready to send via message
- Fixed bug with sending Emoji.
- New features
- Searching in
EmojisUnicode
is now handled by future. - toString() in
User
,Channel
,Role
now returns mention instead of content, name etc.
- Searching in
Wed 11.07.2018
- Bug fixes
- Next serialization bug fixes
- New features
- Added support for audit logs
- Searching in
EmojisUnicode
based on shortcode
Fri 09.07.2018
- Bug fixes
- Fixed embed serialization
Fri 09.07.2018
- Bug fixes
- Fixed embed serialization
Fri 08.07.2018
- Bug fixes
- Fixed embed serialization
- Added few Docs
Fri 06.07.2018
- Bug fixes
- Added overrides
- Implemented hashCode
- Fixed return type for
delay()
in Command class
Fri 06.07.2018
- Bug fixes
- Fixed constructors in MessageChannel and TextChannel
Fri 06.07.2018
- New features
- Support for sending files, attaching files in embed
- Added missing gateway events
- Replaced String ids with
Snowflake
type
- Bug fixes