A list of all Discord events supported by disco can be found [here](https://b1naryth1ef.github.io/disco/api/disco_gateway_events.html) including event attributes and functions you can use on the event property.# Listeners
Listeners are a way to execute custom actions when a certain Discord event happens. For example, on message creation, when a member joins or leaves a guild, or when someone changes user or nickname.
## Listeners in disco
Listeners are easy to use and implement in Disco. First of all, we'll create a [plugin](https://b1naryth1ef.github.io/disco/bot_tutorial/building_block_plugins.html) like so:
```py
class MyPlugin(Plugin):
```
Now, inside this plugin, we'll create our first listener. A listener is built up following this syntax:
```py
@Plugin.listen('EventName')
def on_event_name(self, event):
# Do something with the event
```
Change the `'EventName'` in the `.listen()` method to the event name you want to listen to, and give the `on_event_name` method a more descriptive name and you're all set!
Now, on to adding the first listener to our plugin.
The listener will listen for a new message and will reply with the exact same message every time.
```py
@Plugin.listen('MesageCreate')
def on_message_create(self, event):
event.reply(event.message.content)
```
Let's create a nother listener, this time one that listens for a member that's added to the guild, when this happens, it will send a welcome message in a welcome channel. For this example, we'll asume the ID for that channel's ID is stored in a constant named `WELCOME_CHANNEL`:
```py
@Plugin.listen('GuildMemberAdd')
def on_member_add(self, event):
self.bot.client.api.channels_messages_create(
WELCOME_CHANNEL,
'Welcome to the server {}'.format(event.member.user.mention())
)
```
A list of all Discord events supported by disco can be found [here](https://b1naryth1ef.github.io/disco/api/disco_gateway_events.html) including event attributes and functions you can use on the event property.
A list of all Discord events supported by disco can be found [here](https://b1naryth1ef.github.io/disco/api/disco_gateway_events.html) including event attributes and functions you can use on the event property.