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.
WorkerAdapteris no longer the default cache adapter of the WorkerClient.- Changed
Context.guild,Context.channel, andContext.mefunctions to use theflowmode by default. - Removed
outputandtemplateslocations from the configuration file. - Removed
updateOnlyparameter from thepatchmethod in the cache Adapter. - Removed deprecated types and Intents.
- Renamed
VoiceChannelMethods#setVoiceStatetoVoiceChannelMethods#setVoiceStatus
Fixed:
- Fixed issues with zombie connections.
- Fixed the
workerProxyimplementation in theWorkerClient. - Fixed
editmethod inGuildRole. - Fixed
ModalInteraction.member.rolesnot returning the correct data. - Fixed collector
refreshcallback. - Fixed
guildMemberRemoveto get the correctGuildMemberold object.
Additions:
- Added
Client.latencyto get the latency of all shards. cache.disabledCachecan now be a function that dynamically returnstrue/falsebased on thecacheTypeparameter.- Added
addRoleandremoveRolemethods toBaseGuildMember. - Enhanced the error message for “config file not found.”
- Component listeners now include an
onPassfunction. - 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.
attachmentobjects now supportArrayBuffer,Uint8ClampedArray, andUint8Array(types updated).option.valueautomatically infers the specifiedoption.choicesif available.options.valuenow returns the same type as specified in theoption.channel_types.- Introduced
Guild...ContextandContext.inGuild()to ensure guild data for commands not usable in DMs. - Added a
deferUpdatemethod forComponentContexts. - Embed setter methods (e.g.,
addField,setDescription) now supportundefinedas a valid parameter. - Seyfert configuration is now extendable using
ExtendedRCfor types andExtendedRCLocationsforconfig.locations. - Added a
generateOAuth2URLutility in formatters. - Added support for Deno and Bun.
- Introduced a shorter form for
voiceStates, accessible viaclient.voiceStates. - Improved Discord API error messages.
- Added an
onRatelimitcallback in ApiHandler (rest). - Added webhook event types for
applicationAuthorized,entitlementCreated, andquestUserEnrollment. HttpServerAdapternow 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
.setServicesin aWorkerClient
Additions:
EntryPointInteraction,ButtonPointContext,EntryPointCommand- Resharding for
Client(enabled by default) AnyContexttypeWORKER_SHARD_CONNECTEDeventSUBSCRIPTION_DELETE,SUBSCRIPTION_UPDATE,SUBSCRIPTION_CREATE- Now shards logs errors without need of debug mode
- Workers now have a queue to spawn
Breaking Changes:
- Interface
AttachmentDatachanged propertynametoilename
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});disabledCacheoption inWorkerClientis not longer there, usesetServicesinstead
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