Updates
0.1.5
2026-10-02
Fixed
-
Fixed the typing of
Application.events.listenEvents(events.valid). -
Errors thrown by
Application.connect()now useDisfoxErrorinstead of the nativeError. -
Removed unnecessary imports.
-
Fixed the return type of
SlashService.Option.channelTypes()tothis, allowing proper method chaining.
Improved
-
Updated the TypeScript build configuration to target
ES2022and use Node.js-compatible module resolution, improving compatibility with the minimum supported runtime: Node.js 20+. -
Added and reorganized internal error codes:
UNDEFINED_TOKENUNDEFINED_CLIENTAPPLICATION_NOT_READYALREADY_CONNECTED
-
The following getters no longer throw errors when the
ClientorClientUseris unavailable:Application.clientApplication.user
-
Applicationinitialization has been simplified and now supports multiple initialization methods.
An existing discord.js Client can still be provided:
import { Client, GatewayIntentBits } from "discord.js";
import { Application } from "disfox";
const client = new Client({
intents: [GatewayIntentBits.MessageContent]
});
const app = new Application({
token: process.env.TOKEN,
client
});
Disfox can also create the Client automatically:
import { GatewayIntentBits } from "discord.js";
import { Application } from "disfox";
const app = new Application({
token: process.env.TOKEN,
intents: [
GatewayIntentBits.MessageContent
]
});
When no intents are provided, Disfox automatically configures its default intents:
import { Application } from "disfox";
const app = new Application({
token: process.env.TOKEN
});
Applications can now also be initialized directly from a token:
import { Application } from "disfox";
const app = new Application(process.env.TOKEN);
Intents automatically configured by Disfox can later be modified using the new
Applicationintent management methods.
- All initialization examples are available in: Creating an Application
Added
- Added the new
Application.refresh()method.
This method restarts the Client connection to the Discord Gateway by destroying the current connection and reconnecting.
- Added the
Application.addIntent()method for adding a single intent to the configuration used duringIDENTIFY.
- Added the
Application.addIntents()method for adding multiple intents to the configuration used duringIDENTIFY.
- Added the
Application.removeIntent()method for removing an intent from the configuration used duringIDENTIFY.
-
Added the
Application.clearIntents()method for removing all intents currently configured forIDENTIFY. -
See the complete intent configuration documentation in: Configuring Intents
- Added support for Option Choices in
SlashService.Option.
Choices can now be declared directly through the Disfox API:
const option = new SlashService.Option("choice")
.choices({
rock: "rock",
paper: "paper",
scissors: "scissors"
});
Equivalent configuration using discord.js:
.addStringOption(option =>
option
.addChoices(
{ name: "rock", value: "rock" },
{ name: "paper", value: "paper" },
{ name: "scissors", value: "scissors" }
)
)
- See the complete documentation in: Adding Options with Choices
Updated
- Support for the
event.dataproperty in event definitions has been removed.
The following format is no longer supported:
export default {
data: Events.MessageCreate,
async execute(message) {
if (!message.content.startsWith("!mean")) return;
await message.reply({
content: `**@${message.author.displayName}**\n${message.content}.`
});
}
}
Events must now use the name property:
export default {
name: Events.MessageCreate,
async execute(message) {
// Event logic
}
}
Attention: existing event definitions using
event.datamust be updated to use the new API.
0.1.4
2026-10-01
Fixed
-
Fixed issues in
SlashService.extractFile(). -
Cleaned up the
/distbuild directory, removing obsolete directories, legacy APIs, duplicated files, and approximately 340 outdated generated files. -
Fixed the interaction type used by
SlashService.Command.action(), changing it fromCommandInteractiontoChatInputCommandInteractionfromdiscord.js.
Improved
- Deprecated the
FileManage,PathManage, andResponsemodules.
These modules, along with all other deprecated Disfox APIs, are scheduled for removal in a future release.
- Added support for restricting channel options by Discord channel type in
SlashService.Option.
import { ChannelType } from "discord.js";
import {
SlashService,
SlashOptions
} from "disfox";
// Creates a channel option for the slash command.
const channelOption = new SlashService.Option("channel")
.type(SlashOptions.Channel)
.description("Select a channel")
.required(true);
// Restricts the option to specific Discord channel types.
channelOption.channelTypes(
ChannelType.GuildText,
ChannelType.GuildVoice,
ChannelType.GuildForum
);
- Added the new
SlashService.Option.channelTypes(...types: ChannelType[])method for configuring the allowed Discord channel types of a channel option.
0.1.3
2026-08-14
Fixed
- Fixed the NPM Disfox website URL to
https://disfox.netlify.appinpackage.json.
0.1.2
2026-08-14
Fixed
-
The
extractFile()andextractDir()methods from theSlashServiceandEventServiceservices are no longer limited to.jsfiles. Files with other extensions, such as.ts,.cts,.cjs, and similar formats, are now supported. -
Fixed a bug in
SlashService.extractDir()that occurred when the optional second configuration parameter was not provided, which could cause the application to stop responding correctly to theInteractionCreateevent. -
Fixed an issue with
Application.slash.listeningwhere its state was not correctly updated totrue. -
Fixed an issue between
Application.slash.listen()andApplication.slash.deployGlobal()that prevented new commands from being registered after the listener had already started.
app.client.once(Events.ClientReady, async () => {
console.log("Online");
await app.slash.deployGlobal(commands.valid);
app.slash.listen();
// New commands can now be registered
// even after the listener has started.
await app.slash.deployGlobal(gamesCommands.valid);
});
0.1.1
2026-06-18
Fixed
Fixed event listener bugs in the EventService, as well as other issues from the previous version.
Github
Added practical usage examples in separate files, available in the /prototypes directory.
0.1.0
2026-06-18
Added
New Tool: BehaviorTable
We are introducing a new tool designed to automate Slash Command behaviors. Behavior Tables are collections of rules and configurations that can be applied to one or more slash commands to define how they interact with specific users, IDs, and execution contexts.
This tool brings greater simplicity and intelligent automation to your codebase. BehaviorTables is currently in active development, and we plan to introduce additional features to expand its capabilities in future updates.
Updated
SlashService
Command extraction via SlashService.extractDir() has been optimized and now accepts extraction option parameters.
Documentation available at:
Optimizations
Various internal optimizations have been implemented to ensure high performance and low overhead.
Error Handling & Architecture
Enhanced the DisfoxError class to provide better organization and more detailed error reporting.
Removed
Deprecated Features
Legacy and deprecated code paths have been officially discontinued and removed from the framework.
0.0.8
2026-04-20
Fixed
- Fixed 0.0.7 bugs
0.0.7
2026-04-19
Releases
New Disfox Model
We are introducing a new model for structuring application systems, called the Disfox Model.
It is based on a Component-Based Architecture, focusing on reusable and modular components.
New Structure: SlashCommands
Slash commands can now be organized in a more structured and modular way.
We’ve also introduced new concepts like marks/tags to improve how commands are defined and managed.
You can check the full documentation for SlashService Command and the Disfox Model here:
https://disfox.netlify.app/doc?doc=SlashService#topic-6
Internal Optimizations
Several internal improvements have been made, resulting in better performance and overall efficiency.
Official Documentation
Disfox now has its own official documentation website, available at:
https://disfox.netlify.app
0.0.6
2026-04-12
Fixed
- Fixed bugs when deploying and listening Slash Commands.
0.0.5-c
2026-03-13
Fixed
- Fixed unwanted debug logs.
0.0.5-b
2026-03-12
Fixed
- Fixed extraction bugs in SlashService.
- Fixed extraction bugs in EventService.
- Fixed bugs when deploying Slash Commands.
0.0.5
2026-03-11
Updated
Application
-
New method
Application.connect()
Logs the client in and starts the application's WebSocket server. -
Deprecated
slashCommands.listenCommands()
This method is deprecated and may be removed in future releases. -
New method
slashCommands.listen()
Listens for Slash Command interactions with improved control and precision.
Documentation and examples available on GitHub:
https://github.com/FluxoArts/Disfox -
New
Application.eventsclass
Provides access to the application's event system.
Documentation and examples available on GitHub:
https://github.com/FluxoArts/Disfox -
New method
events.listenEvents()
Allows listening to Discord events through the application event system. -
New methods for
Application.actions:.getAvatar().getAvatarUrl()
SlashService
- Deprecated:
SlashService.extractSlashCommands() - New methods:
SlashService.extractFile()SlashService.extractDir()
Added
EventService
- Introduced a service for handling Discord events.
- Structured event extraction ensures valid and well-organized event data.
- Documentation and examples available on GitHub:
https://github.com/FluxoArts/Disfox
DisfoxError (Internal)
- Internal error class still in testing phase.
Disfox is now available on GitHub with documentation, examples, and TypeScript source code:
https://github.com/FluxoArts/Disfox
0.0.4
2026-02-27
Fixed
- Fixed minor bugs from the previous release.
0.0.3
2026-02-26
Added
SlashService
- Introduced a service for managing Slash Commands, including command extraction and other planned features.
Updated
Application
- Added a new object for managing application Slash Commands.
- Added methods to register global commands and register commands for specific guilds.
- Added a method to listen for Slash Command interactions.