/** * Inicia conexión al webhook de un canal de discord. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szWebhook Url del webhook de tu canal de discord * * @return Curl handle */ stock CURL:Discord_Open(dc_data[FOR_DISCORD], const szWebhook[])
/** * Cambia la imagen del bot. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szBotImage Url de la imagen * * @noreturn */ stock Discord_SetBotImage(dc_data[FOR_DISCORD], const szBotImage[])
/** * Cambia el nombre del bot. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szBotName Nombre del bot * * @noreturn */ stock Discord_SetBotName(dc_data[FOR_DISCORD], const szBotName[])
/** * Envia un mensage al canal del webhook inicializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szMessage Mensaje a enviar * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock Discord_SendMsg(dc_data[FOR_DISCORD], const szMessage[], const szHandler[] = "", const data[] = {}, const len = 0)
/** * Inicializa un mensaje Embed de discord. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_EmbedInit(dc_data[FOR_DISCORD])
/** * Establece un parámetro del embed a enviar. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param iField Parametro Embed (mira el enum EmbedParam) * @param szValue Valor del parametro especificado * * @noreturn */ stock Discord_EmbedSet(dc_data[FOR_DISCORD], EmbedParam:iField, const szValue[])
/** * Inicializa el agregar un campo dendro del embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_AddFieldStart(dc_data[FOR_DISCORD])
/** * Agrega un campo dendro del embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szFieldName Nombre del campo * @param szValue Valor del campo * @param bInline Si deseas el campo en una sola linea, establece en true * * @noreturn */ stock Discord_AddField(dc_data[FOR_DISCORD], const szFieldName[], const szValue[], bool:bInline = false)
/** * Finaliza el agregar campos al embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_AddFieldEnd(dc_data[FOR_DISCORD])
/** * Elimina todos los parametros agregados anteriormente al embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @noreturn */ stock Discord_EmbedReset(dc_data[FOR_DISCORD])
/** * Envia el embed al webhook del canal de discord inizializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock Discord_SendEmbed(dc_data[FOR_DISCORD], const szHandler[] = "", const data[] = {}, const len = 0)
/** * Cierra la conexion al webh1ook inicializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_Close(dc_data[FOR_DISCORD])
Ejemplo de uso de la api:
Código PHP:
#include <amxmodx> #include <discord_webhook>
#define PLUGIN "Ejemplo de uso Discord WebHook" #define VERSION "2.5" #define AUTHOR "[N]drs"
new const szUrl[] = "url_webhook"
new g_Channel[FOR_DISCORD]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)
public SendMessage(id) { Discord_SendMsg(g_Channel, "Mensaje desde el cs")
/*new Data[1] Data[0] = id Discord_SendMsg(g_Channel, "Mensaje desde el cs", "DiscordCustomHandler", Data, 1)*/ }
public SendEmbed(id) { Discord_EmbedInit(g_Channel)
Discord_EmbedSet(g_Channel, CONTENT, "@here Holaaaaaa") Discord_EmbedSet(g_Channel, AUTHOR_NAME, "[N]drs") Discord_EmbedSet(g_Channel, AUTHOR_URL, "https://amxmodx-es.com/N-drs") Discord_EmbedSet(g_Channel, AUTHOR_ICON_URL, "https://amxmodx-es.com/uploads/avatars/avatar_7615.jpeg") Discord_EmbedSet(g_Channel, TITLE, "[API] Discord WebHook v2.5") Discord_EmbedSet(g_Channel, TITLE_URL, "https://amxmodx-es.com/Thread-API-Discord-WebHook-v2-5") Discord_EmbedSet(g_Channel, DESCRIPTION, "Esta api te permite enviar mensajes desde tu servidor de Counter-Strike a un canal de discord mediante webhooks") Discord_EmbedSet(g_Channel, COLOR, "114 137 218")
/** * Inicializa un mensaje Embed de discord. * * @noreturn */ stock DiscordOneInitEmbed()
/** * Establece un parámetro del embed a enviar. * * @param iField Parametro Embed (mira el enum EmbedParam) * @param szValue Valor del parametro especificado * * @noreturn */ stock DiscordOneSetEmbed(EmbedParam:iField, const szValue[])
/** * Inicializa el agregar un campo dendro del embed. * * @noreturn */ stock DiscordOneEmbedAddFieldStart()
/** * Agrega un campo dendro del embed. * * @param szFieldName Nombre del campo * @param szValue Valor del campo * @param bInline Si deseas el campo en una sola linea, establece en true * * @noreturn */ stock DiscordOneEmbedAddField(const szFieldName[], const szValue[], bool:bInline = false)
/** * Finaliza el agregar campos al embed. * * @noreturn */ stock DiscordOneEmbedAddFieldEnd()
/** * Elimina todos los parametros agregados anteriormente al embed. * * @noreturn */ stock DiscordOneResetEmbed()
/** * Envia el embed al webhook del canal de discord inizializado. * * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock DiscordOneSendEmbed(const szHandler[] = "", const data[] = {}, const len = 0)
/** * Inicializa un mensaje Embed de discord. * * @param jObjEmbed Object JSON handle (Para el Embed) * * @noreturn */ stock DiscordMultiInitEmbed(&JSON:jObjEmbed)
/** * Establece un parámetro del embed a enviar. * * @param jObjEmbed Object JSON handle (Del Embed Inicializado) * @param iField Parametro Embed (mira el enum EmbedParam) * @param szValue Valor del parametro especificado * * @noreturn */ stock DiscordMultiSetEmbed(&JSON:jObjEmbed, EmbedParam:iField, const szValue[])
/** * Inicializa el agregar un campo dendro del embed. * * @param jarrFields Array JSON handle (Para los campos del embed) * * @noreturn */ stock DiscordMultiEmbedAddFieldStart(&JSON:jarrFields)
/** * Agrega un campo dendro del embed. * * @param jarrFields Array JSON handle (De los campos Inicializado) * @param szFieldName Nombre del campo * @param szValue Valor del campo * @param bInline Si deseas el campo en una sola linea, establece en true * * @noreturn */ stock DiscordMultiEmbedAddField(&JSON:jarrFields, const szFieldName[], const szValue[], bool:bInline = false)
/** * Elimina todos los parametros agregados anteriormente al embed. * * @param jObjEmbed Object JSON handle (Del Embed) * @noreturn */ stock DiscordMultiResetEmbed(&JSON:jObjEmbed)
/** * Envia el embed al webhook del canal de discord inizializado. * * @param cHandle Curl handle * @param jObj Object JSON handle (Inicilizado al principio) * @param jObjEmbed Object JSON handle (Del embed) * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock DiscordMultiSendEmbed(CURL:cHandle, JSON:jObj, JSON:jObjEmbed, const szHandler[] = "", const data[] = {}, const len = 0)
new const szUrlWebhook[] = "https://discord.com/api/webhooks/$numeros%/%codigos%" new const szDcName[] = "[N]drs" new const szDcImage[] = "https://amxmodx-es.com/uploads/avatars/avatar_7615.jpeg"
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_send", "SendEmbed")
/** * Inicia conexión al webhook de un canal de discord. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szWebhook Url del webhook de tu canal de discord * * @return Curl handle */ stock CURL:Discord_Open(dc_data[FOR_DISCORD], const szWebhook[])
/** * Cambia la imagen del bot. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szBotImage Url de la imagen * * @noreturn */ stock Discord_SetBotImage(dc_data[FOR_DISCORD], const szBotImage[])
/** * Cambia el nombre del bot. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szBotName Nombre del bot * * @noreturn */ stock Discord_SetBotName(dc_data[FOR_DISCORD], const szBotName[])
/** * Envia un mensage al canal del webhook inicializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szMessage Mensaje a enviar * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock Discord_SendMsg(dc_data[FOR_DISCORD], const szMessage[], const szHandler[] = "", const data[] = {}, const len = 0)
/** * Inicializa un mensaje Embed de discord. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_EmbedInit(dc_data[FOR_DISCORD])
/** * Establece un parámetro del embed a enviar. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param iField Parametro Embed (mira el enum EmbedParam) * @param szValue Valor del parametro especificado * * @noreturn */ stock Discord_EmbedSet(dc_data[FOR_DISCORD], EmbedParam:iField, const szValue[])
/** * Inicializa el agregar un campo dendro del embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_AddFieldStart(dc_data[FOR_DISCORD])
/** * Agrega un campo dendro del embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szFieldName Nombre del campo * @param szValue Valor del campo * @param bInline Si deseas el campo en una sola linea, establece en true * * @noreturn */ stock Discord_AddField(dc_data[FOR_DISCORD], const szFieldName[], const szValue[], bool:bInline = false)
/** * Finaliza el agregar campos al embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_AddFieldEnd(dc_data[FOR_DISCORD])
/** * Elimina todos los parametros agregados anteriormente al embed. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @noreturn */ stock Discord_EmbedReset(dc_data[FOR_DISCORD])
/** * Envia el embed al webhook del canal de discord inizializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * @param szHandler El forward a llamar después de completar la solicitud * @param data Cualquier dato para pasar al callback forward * @param len Tamaño máximo de los datos * * @noreturn */ stock Discord_SendEmbed(dc_data[FOR_DISCORD], const szHandler[] = "", const data[] = {}, const len = 0)
/** * Cierra la conexion al webh1ook inicializado. * * @param dc_data[FOR_DISCORD] Variable creada con el enum FOR_DISCORD * * @noreturn */ stock Discord_Close(dc_data[FOR_DISCORD])
Ejemplo de uso de la api:
Código PHP:
#include <amxmodx> #include <discord_webhook>
#define PLUGIN "Ejemplo de uso Discord WebHook" #define VERSION "2.5" #define AUTHOR "[N]drs"
new const szUrl[] = "url_webhook"
new g_Channel[FOR_DISCORD]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)
public SendMessage(id) { Discord_SendMsg(g_Channel, "Mensaje desde el cs")
/*new Data[1] Data[0] = id Discord_SendMsg(g_Channel, "Mensaje desde el cs", "DiscordCustomHandler", Data, 1)*/ }
public SendEmbed(id) { Discord_EmbedInit(g_Channel)
Discord_EmbedSet(g_Channel, CONTENT, "@here Holaaaaaa") Discord_EmbedSet(g_Channel, AUTHOR_NAME, "[N]drs") Discord_EmbedSet(g_Channel, AUTHOR_URL, "https://amxmodx-es.com/N-drs") Discord_EmbedSet(g_Channel, AUTHOR_ICON_URL, "https://amxmodx-es.com/uploads/avatars/avatar_7615.jpeg") Discord_EmbedSet(g_Channel, TITLE, "[API] Discord WebHook v2.5") Discord_EmbedSet(g_Channel, TITLE_URL, "https://amxmodx-es.com/Thread-API-Discord-WebHook-v2-5") Discord_EmbedSet(g_Channel, DESCRIPTION, "Esta api te permite enviar mensajes desde tu servidor de Counter-Strike a un canal de discord mediante webhooks") Discord_EmbedSet(g_Channel, COLOR, "114 137 218")
Hola [N]drs. Esta perfecto el plugin y te felicito, pero yo quiero que cuando pongan /llamaradmin (Que es para que llame a un admin en un server de mix) se envie un mensaje predeterminado. Como no se mucho de code en AMXX, me podrias ayudar?. Si quieres te paso ejemplos por aqui mismo. Gracias!.
(18/06/2021, 12:58 AM)invisibleok escribió: Hola [N]drs. Esta perfecto el plugin y te felicito, pero yo quiero que cuando pongan /llamaradmin (Que es para que llame a un admin en un server de mix) se envie un mensaje predeterminado. Como no se mucho de code en AMXX, me podrias ayudar?. Si quieres te paso ejemplos por aqui mismo. Gracias!.
El ejemplo de uso está dado en la publicación, si quieres que te hagan un plugin, tienes que publicar en el foro de * pedido de plugins *