Creación de un Bot
Paso 1. Crea una aplicación (sigue el enlace).
Paso 2. Añade un bot (haz clic en el botón "Añadir Bot").

Paso 2.1. En la sección Instalación, selecciona Enlace de instalación → Ninguno.

Paso 2.2. En la sección Bot, desactiva Bot público, luego activa los siguientes Intents:
- Message Content Intent
- Server Members Intent
También puedes activar Presence Intent para uso futuro.


Paso 3. Obtén el token (Restablecer Token).
Paso 4. Añade el bot al servidor:
- Ve a OAuth2 → Generador de URL.
- En Ámbitos, selecciona bot.
- En Permisos del Bot, elige Enviar mensajes, Leer historial de mensajes y cualquier otro permiso necesario.
Luego abre el enlace generado, selecciona el servidor donde deseas añadir el bot y confirma la autorización.


Para obtener el webhook completo de Discord, simplemente asigna cualquier valor a la variable save_webhook.
Si la variable está configurada, el webhook se guardará en discord_webhook.
Conexión del Bot de Discord en MaviBot
Ahora ve a la sección "Mensajería" en tu proyecto en MaviBot:

Luego pega el token copiado de Discord.

Haz clic en el botón Listo.
Funciones de la Calculadora
Responder a un Mensaje
discord_reply_to_message(message_id, text) - Esta función se utiliza para responder a un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje al que deseas responder. |
| ! text | El texto del mensaje de respuesta. |
Eliminar un Mensaje
discord_delete_message(message_id) - Esta función se utiliza para eliminar un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje a eliminar. |
Editar un Mensaje
discord_edit_message(message_id, text) - Esta función se utiliza para editar un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje a editar. |
| ! text | El nuevo texto del mensaje. |
Fijar un Mensaje
discord_pin_message(message_id) - Esta función se utiliza para fijar un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje a fijar. |
Desfijar un Mensaje
discord_unpin_message(message_id) - Esta función se utiliza para desfijar un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje a desfijar. |
Enviar una Reacción a un Mensaje
discord_send_reaction(message_id, reaction) - Esta función se utiliza para enviar una reacción a un mensaje.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje al que enviar una reacción. |
| ! reaction | La reacción a enviar. Puedes proporcionar un emoji simple (por ejemplo, ❤️) o el ID de un emoji personalizado en el servidor. A continuación se proporciona información sobre cómo obtener el ID de un emoji personalizado. |
Eliminar una Reacción de un Mensaje en un Canal
discord_delete_reaction(message_id, reaction, user_id) - Esta función se utiliza para eliminar una reacción de un mensaje en un canal.
| Parámetros | Descripción |
|---|---|
| ! message_id | El ID del mensaje del cual eliminar la reacción. |
| ! reaction | La reacción a eliminar. Puedes proporcionar un emoji simple (por ejemplo, ❤️) o el ID de un emoji personalizado en el servidor. A continuación se proporciona información sobre cómo obtener el ID de un emoji personalizado. |
| user_id | El ID del usuario cuya reacción deseas eliminar. Este parámetro es opcional si deseas eliminar la reacción del bot actual. |
Funciones de Discord
Las siguientes funciones te permiten gestionar servidores de Discord, miembros, canales, roles, mensajes e invitaciones.
Moderación de Miembros
Banear a un Miembro
discord_ban_member(user_id, delete_message_seconds) - Esta función se utiliza para banear a un miembro del servidor de Discord.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord del miembro a banear. |
| delete_message_seconds | (Opcional) Elimina los mensajes anteriores del miembro desde el número de segundos especificado antes del baneo. Establece 0 para conservar todos los mensajes. |
Desbanear a un Miembro
discord_unban_member(user_id) - Esta función se utiliza para eliminar un baneo de un miembro.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord del miembro a desbanear. |
Expulsar a un Miembro
discord_kick_member(user_id) - Esta función se utiliza para eliminar a un miembro del servidor sin banearlo.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord del miembro a eliminar. |
Un miembro expulsado puede volver a unirse al servidor usando un enlace de invitación válido.
Silenciar a un Miembro
discord_timeout_member(user_id, seconds) - Esta función se utiliza para poner a un miembro en tiempo de espera (silencio).
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord del miembro. |
| ! seconds | Duración del tiempo de espera en segundos. |
Eliminar Tiempo de Espera
discord_remove_timeout(user_id) - Esta función se utiliza para eliminar el tiempo de espera de un miembro antes de que expire.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord del miembro. |
Eliminar Mensajes en Masa
discord_bulk_delete_messages(channel_id, message_ids) - Esta función se utiliza para eliminar múltiples mensajes de un canal.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
| ! message_ids | Una lista de IDs de mensajes a eliminar. |
Mensajes
Enviar un Mensaje
discord_send_message(channel_id, text) - Esta función se utiliza para enviar un mensaje a un canal de Discord.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
| ! text | El texto del mensaje. |
Obtener un Mensaje
discord_get_message(channel_id, message_id) - Esta función se utiliza para recuperar información sobre un mensaje.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
| ! message_id | El ID del mensaje. |
La función devuelve:
- Contenido del mensaje
- Información del autor
- Archivos adjuntos
Enviar un Mensaje Directo
discord_send_dm(user_id, text) - Esta función se utiliza para enviar un mensaje directo a un miembro del servidor.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord. |
| ! text | El texto del mensaje. |
Roles
Añadir un Rol
discord_add_role(user_id, role_id) - Esta función se utiliza para asignar un rol a un miembro.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord. |
| ! role_id | El ID del rol de Discord. |
Eliminar un Rol
discord_remove_role(user_id, role_id) - Esta función se utiliza para eliminar un rol de un miembro.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord. |
| ! role_id | El ID del rol de Discord. |
Cambiar Apodo de Miembro
discord_set_nickname(user_id, nickname) - Esta función se utiliza para cambiar el apodo de un miembro en el servidor.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord. |
| ! nickname | El nuevo apodo. |
Obtener Roles del Servidor
discord_get_roles() - Esta función se utiliza para recuperar la lista de roles del servidor.
La función devuelve:
- ID del rol
- Nombre del rol
Miembros
Obtener Información del Miembro
discord_get_member(user_id) - Esta función se utiliza para recuperar información sobre un miembro del servidor.
| Parámetros | Descripción |
|---|---|
| ! user_id | El ID de usuario de Discord. |
La función devuelve:
- Roles del miembro
- Apodo del servidor
- Fecha de ingreso
- Permisos
Canales
Crear un Canal
discord_create_channel(name, type, parent_id, permission_overwrites) - Esta función se utiliza para crear un nuevo canal de Discord.
| Parámetros | Descripción |
|---|---|
| ! name | El nombre del canal. |
| ! type | El tipo de canal (por ejemplo, texto o voz). |
| parent_id | El ID de la categoría donde se creará el canal. |
| permission_overwrites | Configuraciones de permisos del canal que definen qué usuarios o roles pueden acceder al canal. |
Eliminar un Canal
discord_delete_channel(channel_id) - Esta función se utiliza para eliminar un canal de Discord.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
Establecer Permisos del Canal
discord_set_channel_permission(channel_id, target_id, allow, deny) - Esta función se utiliza para configurar los permisos del canal para un usuario o rol.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
| ! target_id | El ID de usuario o ID de rol cuyos permisos se cambiarán. |
| ! allow | Permisos a conceder. |
| ! deny | Permisos a denegar. |
Invitaciones
Crear una Invitación
discord_create_invite(channel_id, max_age, max_uses) - Esta función se utiliza para crear un enlace de invitación.
| Parámetros | Descripción |
|---|---|
| ! channel_id | El ID del canal de Discord. |
| max_age | Duración de la invitación en segundos. Usa 0 para que no expire. |
| max_uses | Número máximo de usos. Usa 0 para usos ilimitados. |
Obtener Invitaciones del Servidor
discord_get_invites() - Esta función se utiliza para recuperar todos los enlaces de invitación del servidor.
La función devuelve:
- URL de la invitación
- Número de usos
- Duración restante (si aplica)
Eventos de Webhook
Los siguientes eventos de Discord pueden reenviarse al flujo del chat:
- Miembro se unió al servidor
- Miembro abandonó el servidor
- Miembro fue expulsado
- Miembro fue baneado
- Miembro fue desbaneado
- Roles del miembro cambiaron
- Mensaje editado
- Mensaje eliminado
- Reacción añadida
- Reacción eliminada
- Comando de barra ejecutado
- Botón clickeado
Payload del Webhook
Los datos del webhook están disponibles en:
discord_webhook["data"]
| Campo | Descripción |
|---|---|
| author_id | ID de usuario de Discord del autor del mensaje. |
| username | Nombre de usuario de Discord. |
| nickname | Apodo en el servidor. |
| channel_id | ID del canal de Discord. |
| guild_id | ID del servidor de Discord. |
| message_id | ID del mensaje de Discord. |
| content | Texto del mensaje. |
| roles | Lista de IDs de roles del miembro. |
| is_admin | Indica si el miembro tiene privilegios de administrador. |
Callbacks
Cuando un usuario envía una reacción, se recibe un callback en el chat con el siguiente formato:
new_like ❤️ uid413984787162726410

Donde uid413984787162726410 es el ID del usuario que envió la reacción.
Cómo obtener el ID de un emoji personalizado
Si envías una reacción personalizada a un mensaje en un canal de Discord, se recibirá un callback con el siguiente formato:
new_like beer:1479419477396291696 uid413984787162726410

Donde beer:1479419477396291696 es el ID de la reacción. Puedes copiarlo para usarlo en funciones relacionadas con reacciones.
Cómo obtener el ID del Mensaje
Puedes obtener el ID del mensaje del cliente desde el webhook si save_webhook está habilitado. Ejemplo:
data = discord_webhook["data"]
msg_id = data["id"]
result = discord_reply_to_message(msg_id, "Esto es una respuesta a un mensaje")
Callbacks Adicionales
Además de new_like, están disponibles los siguientes callbacks:
| Callback | Descripción |
|---|---|
new_like {emoji} uid{user_id} |
Un usuario añadió una reacción a un mensaje. |
reaction_remove {emoji} uid{user_id} |
Un usuario eliminó una reacción de un mensaje. |
message_delete mid{message_id} |
Un mensaje fue eliminado. |
message_edit mid{message_id} |
Un mensaje fue editado. El texto actualizado del mensaje está disponible en los datos del webhook. |
member_join uid{user_id} |
Un miembro se unió al servidor. |
member_leave uid{user_id} |
Un miembro abandonó el servidor. |
member_update uid{user_id} |
La información de un miembro (como roles o apodo) fue actualizada. |
member_ban uid{user_id} |
Un miembro fue baneado del servidor. |
member_unban uid{user_id} |
Un miembro fue desbaneado del servidor. |
Variables de Callback
Para mantener la coherencia con el formato existente de eventos de Discord, los identificadores de usuario y mensaje utilizan prefijos históricos:
- Los IDs de usuario se devuelven como
uid{user_id}. - Los IDs de mensaje se devuelven como
mid{message_id}.
Las siguientes variables también utilizan estos identificadores con prefijo:
message_frominternal_iddiscord_webhook["data"]