Sunar

Working with signals

Learn how to effectively use signals in Sunar to handle various events and interactions in your discord bot. This guide covers the basics of creating, managing, and responding to signals for a more interactive and responsive bot experience.

What are signals?

Signals are event emitters that allow different parts of your bot to communicate with each other in a decoupled manner. By using signals, you can easily manage and respond to events without tightly coupling your code components. This promotes cleaner code architecture and easier maintenance.

Creating a signal

Begin by defining a new signal using Sunar. Signals in Sunar are used to signify specific events or states within your bot's operation. For example, you can create a signal named ready to indicate when your bot has finished initializing and is ready to start processing commands.

src/signals/ready.js
import { Signal } from 'sunar';
 
const signal = new Signal('ready', { once: true });

The once option indicates that the signal should only be executed once.

Handle the execution

Now, to manage what happens when a signal is emitted, we use the execute mutator. This involves passing our signal as the first parameter and providing a callback function that will be executed when the signal is triggered.

src/signals/ready.js
import { Signal, execute } from 'sunar';
 
const signal = new Signal('ready', { once: true });
 
execute(signal, () => { 
    console.log('Bot is ready!'); 
}); 

Export the signal

To ensure Sunar can properly load and utilize the signal you've defined, it must be exported from its file.

src/signals/ready.js
import { Signal, execute } from 'sunar';
 
const signal = new Signal('ready', { once: true });
 
execute(signal, () => {
    console.log('Bot is ready!');
});
 
export { signal }; 

The file names do not affect the behavior of your bot. You can use any name you prefer, as long as it matches the glob pattern specified when loading the Sunar modules.

Conclusion

Working with signals in Sunar offers a flexible and powerful way to manage events and interactions within your Discord bot. Signals enable you to decouple different parts of your bot's functionality, promoting a modular and maintainable codebase. By defining and handling signals, you can efficiently respond to various events such as bot initialization, user interactions, or external triggers.

Throughout this guide, you've learned how to create signals, handle their execution using callbacks, and ensure they are properly exported for Sunar to utilize. Additionally, you explored the concept of using signals alongside middleware for enhanced control and validation of interactions.

Whether you're building a simple bot or a complex application, mastering signals empowers you to design scalable and responsive bot architectures. As you continue to explore Sunar, consider further integrating signals into your bot's workflows to streamline development and enhance user experiences.

Start leveraging signals today and discover new possibilities for your Discord bot development with Sunar!

Last updated on

On this page

GitHubEdit on Github ↗