Changelog
V2.2.0 Changes
December 28, 2024
Breaking Changes:
- Channel threads are no longer part of the main cache; they are now merged with channels.
WorkerAdapter
is no longer the default cache adapter of the WorkerClient.- Changed
Context.guild
,Context.channel
, andContext.me
functions to use theflow
mode by default. - Removed
output
andtemplates
locations from the configuration file. - Removed
updateOnly
parameter from thepatch
method in the cache Adapter. - Removed deprecated types and Intents.
- Renamed
VoiceChannelMethods#setVoiceState
toVoiceChannelMethods#setVoiceStatus
Fixed:
- Fixed issues with zombie connections.
- Fixed the
workerProxy
implementation in theWorkerClient
. - Fixed
edit
method inGuildRole
. - Fixed
ModalInteraction.member.roles
not returning the correct data. - Fixed collector
refresh
callback. - Fixed
guildMemberRemove
to get the correctGuildMember
old object.
Additions:
- Added
Client.latency
to get the latency of all shards. cache.disabledCache
can now be a function that dynamically returnstrue
/false
based on thecacheType
parameter.- Added
addRole
andremoveRole
methods toBaseGuildMember
. - Enhanced the error message for “config file not found.”
- Component listeners now include an
onPass
function. - Added support for the Soundboard API with functionalities to
get
,upload
,list
, anddelete
. - Added a soundboard shorter in the
Client
. - Added custom events in the
WorkerClient
. - Introduced resharding, enabling automatic shard creation and deletion as needed in the WorkerClient.
attachment
objects now supportArrayBuffer
,Uint8ClampedArray
, andUint8Array
(types updated).option.value
automatically infers the specifiedoption.choices
if available.options.value
now returns the same type as specified in theoption.channel_types
.- Introduced
Guild...Context
andContext.inGuild()
to ensure guild data for commands not usable in DMs. - Added a
deferUpdate
method forComponentContext
s. - Embed setter methods (e.g.,
addField
,setDescription
) now supportundefined
as a valid parameter. - Seyfert configuration is now extendable using
ExtendedRC
for types andExtendedRCLocations
forconfig.locations
. - Added a
generateOAuth2URL
utility in formatters. - Added support for Deno and Bun.
- Introduced a shorter form for
voiceStates
, accessible viaclient.voiceStates
. - Improved Discord API error messages.
- Added an
onRatelimit
callback in ApiHandler (rest). - Added webhook event types for
applicationAuthorized
,entitlementCreated
, andquestUserEnrollment
. HttpServerAdapter
now supports any type ofClient
(HttpClient
,Client
, orWorkerClient
).- Added
channel.messages.list()
to fetch all messages in a channel.
V2.1.0 Changes
September 7, 2024
Fixed:
- Handle http status 429 correctly (ratelimited)
- Could not disable cache with
.setServices
in aWorkerClient
Additions:
EntryPointInteraction
,ButtonPointContext
,EntryPointCommand
- Resharding for
Client
(enabled by default) AnyContext
typeWORKER_SHARD_CONNECTED
eventSUBSCRIPTION_DELETE
,SUBSCRIPTION_UPDATE
,SUBSCRIPTION_CREATE
- Now shards logs errors without need of debug mode
- Workers now have a queue to spawn
Breaking Changes:
- Interface
AttachmentData
changed propertyname
toilename
interface AttachmentData { name: string; filename: string;}
- Now WorkerClient does not send all events to parent (WorkerManager) by default, if you want to enable it, just
new WorkerClient({ sendPayloadToParent: true});
disabledCache
option inWorkerClient
is not longer there, usesetServices
instead
V2.0.0 Changes
August 23, 2024
With this version, we are proud to announce that seyfert now has 0 dependencies including a websocket client built from scratch.
Additions:
- Handle commands Now seyfert handle all commands across the same struct, if you use a custom argsParser o something check it, also, if you have a seyfert plugin or plan to make one, all seyfert structures are modifiable, so just point it where you want it to go.
import { HandleCommand } from 'seyfert'
client.setServices({ handleCommand: class extends HandleCommand { argsParser = yourParser() } })
- Transformers Now seyfert allows you to transform discord data as you want, seyfert will call it and use it in the whole library.
import { Transformers } from 'seyfert';const storage = new Map();class MyPoll extends Poll { storage() { return storage.set(this.id, this); }}
Transformers.Poll = (...args: ConstructorParameters<typeof MyPoll>) => new MyPoll(...args);
declare module 'seyfert' { interface CustomStructures { Poll: MyPoll; }}
- Discord API
Now we support
Monetization
,Polls (with builders)
,Application Emojis
,Get Role
,Get voice states
, etc.
Little changes:
- Now disabledCaches options is a object
- Some events cache bugs resolved
- Fixed permissions bits resolved