Set Callbacks

On Command

void discord_set_on_command(struct discord *client, char *command, discord_on_message cb)

Set command/callback pair.

The callback is triggered when a user types the assigned command in a chat visible to the client

Note

The command and any subjacent empty space is left out of the message content

Parameters
  • client – the client created with discord_init()

  • command – the command to trigger the callback

  • callback – the callback to be triggered on event

void discord_set_on_commands(struct discord *client, discord_on_message cb, ...)

Set a variadic series of NULL terminated commands to a callback.

The callback is triggered when a user types one of the assigned commands in a chat visble to the client

Note

The command and any subjacent empty space is left out of the message content

Parameters
  • client – the client created with discord_init()

  • callback – the callback to be triggered on event

  • ... – commands and a NULL terminator

On Discord Events

group DiscordCallbackSet

Set callbacks to be triggered on event detection.

Note

the functions will automatically set the necessary intent(s) to make the callback triggerable

param client

the client created with discord_init()

param callback

the callback to be triggered on event

Functions

void discord_set_on_idle(struct discord *client, discord_on_idle cb)

Triggers at every event-loop iteration.

void discord_set_on_ready(struct discord *client, discord_on_idle cb)

Triggers when the client is ready.

void discord_set_on_application_command_create(struct discord *client, discord_on_application_command cb)

Triggers when a application command is created.

void discord_set_on_application_command_update(struct discord *client, discord_on_application_command cb)

Triggers when a application command is updated.

void discord_set_on_application_command_delete(struct discord *client, discord_on_application_command cb)

Triggers when a application command is deleted.

void discord_set_on_channel_create(struct discord *client, discord_on_channel cb)

Triggers when a channel is created.

void discord_set_on_channel_update(struct discord *client, discord_on_channel cb)

Triggers when a channel is updated.

void discord_set_on_channel_delete(struct discord *client, discord_on_channel cb)

Triggers when a channel is deleted.

void discord_set_on_channel_pins_update(struct discord *client, discord_on_channel_pins_update cb)

Triggers when some channel pins are updated.

void discord_set_on_thread_create(struct discord *client, discord_on_channel cb)

Triggers when a thread is created.

void discord_set_on_thread_update(struct discord *client, discord_on_channel cb)

Triggers when a thread is updated.

void discord_set_on_thread_delete(struct discord *client, discord_on_channel cb)

Triggers when a thread is deleted.

void discord_set_on_guild_create(struct discord *client, discord_on_guild cb)

Triggers when guild information becomes available.

void discord_set_on_guild_update(struct discord *client, discord_on_guild cb)

Triggers when a guild’s information becomes updated.

void discord_set_on_guild_delete(struct discord *client, discord_on_guild_delete cb)

Triggers when removed from a guild.

void discord_set_on_guild_role_create(struct discord *client, discord_on_guild_role cb)

Triggers when a guild role is created.

void discord_set_on_guild_role_update(struct discord *client, discord_on_guild_role cb)

Triggers when a guild role is updated.

void discord_set_on_guild_role_delete(struct discord *client, discord_on_guild_role_delete cb)

Triggers when a guild role is deleted.

void discord_set_on_guild_member_add(struct discord *client, discord_on_guild_member cb)

Triggers when a guild member is added.

void discord_set_on_guild_member_update(struct discord *client, discord_on_guild_member cb)

Triggers when a guild member is updated.

void discord_set_on_guild_member_remove(struct discord *client, discord_on_guild_member_remove cb)

Triggers when a guild member is removed.

void discord_set_on_guild_ban_add(struct discord *client, discord_on_guild_ban cb)

Triggers when a guild ban is added.

void discord_set_on_guild_ban_remove(struct discord *client, discord_on_guild_ban cb)

Triggers when a guild ban is removed.

void discord_set_on_interaction_create(struct discord *client, discord_on_interaction cb)

Triggers when a interaction is created.

void discord_set_on_message_create(struct discord *client, discord_on_message cb)

Triggers when a message is created.

void discord_set_on_message_update(struct discord *client, discord_on_message cb)

Triggers when a message is updated.

void discord_set_on_message_delete(struct discord *client, discord_on_message_delete cb)

Triggers when a message is deleted.

void discord_set_on_message_delete_bulk(struct discord *client, discord_on_message_delete_bulk cb)

Triggers when a bulk of messages are deleted.

void discord_set_on_message_reaction_add(struct discord *client, discord_on_message_reaction_add cb)

Triggers when a message reaction is added.

void discord_set_on_message_reaction_remove(struct discord *client, discord_on_message_reaction_remove cb)

Triggers when a message reaction is removed.

void discord_set_on_message_reaction_remove_all(struct discord *client, discord_on_message_reaction_remove_all cb)

Triggers when all reaction from some message is removed.

void discord_set_on_message_reaction_remove_emoji(struct discord *client, discord_on_message_reaction_remove_emoji cb)

Triggers when all instances of a particular reaction from some message is removed.

void discord_set_on_voice_state_update(struct discord *client, discord_on_voice_state_update cb)

Triggers when a voice state is updated.

void discord_set_on_voice_server_update(struct discord *client, discord_on_voice_server_update cb)

Triggers when a voice server is updated.

Types

group DiscordCallbackTypes

Typedefs

typedef void (*discord_on_idle)(struct discord *client)
typedef void (*discord_on_application_command)(struct discord *client, const struct discord_application_command *app_cmd)
typedef void (*discord_on_channel)(struct discord *client, const struct discord_channel *channel)
typedef void (*discord_on_channel_pins_update)(struct discord *client, u64_snowflake_t guild_id, u64_snowflake_t channel_id, u64_unix_ms_t last_pin_timestamp)
typedef void (*discord_on_guild)(struct discord *client, const struct discord_guild *guild)
typedef void (*discord_on_guild_delete)(struct discord *client, u64_snowflake_t guild_id)
typedef void (*discord_on_guild_role)(struct discord *client, u64_snowflake_t guild_id, const struct discord_role *role)
typedef void (*discord_on_guild_role_delete)(struct discord *client, u64_snowflake_t guild_id, u64_snowflake_t role_id)
typedef void (*discord_on_guild_member)(struct discord *client, u64_snowflake_t guild_id, const struct discord_guild_member *member)
typedef void (*discord_on_guild_member_remove)(struct discord *client, u64_snowflake_t guild_id, const struct discord_user *user)
typedef void (*discord_on_guild_ban)(struct discord *client, u64_snowflake_t guild_id, const struct discord_user *user)
typedef void (*discord_on_interaction)(struct discord *client, const struct discord_interaction *interaction)
typedef void (*discord_on_message)(struct discord *client, const struct discord_message *message)
typedef void (*discord_on_message_delete)(struct discord *client, u64_snowflake_t id, u64_snowflake_t channel_id, u64_snowflake_t guild_id)
typedef void (*discord_on_message_delete_bulk)(struct discord *client, const u64_snowflake_t **ids, u64_snowflake_t channel_id, u64_snowflake_t guild_id)
typedef void (*discord_on_message_reaction_add)(struct discord *client, u64_snowflake_t user_id, u64_snowflake_t channel_id, u64_snowflake_t message_id, u64_snowflake_t guild_id, const struct discord_guild_member *member, const struct discord_emoji *emoji)
typedef void (*discord_on_message_reaction_remove)(struct discord *client, u64_snowflake_t user_id, u64_snowflake_t channel_id, u64_snowflake_t message_id, u64_snowflake_t guild_id, const struct discord_emoji *emoji)
typedef void (*discord_on_message_reaction_remove_all)(struct discord *client, u64_snowflake_t channel_id, u64_snowflake_t message_id, u64_snowflake_t guild_id)
typedef void (*discord_on_message_reaction_remove_emoji)(struct discord *client, u64_snowflake_t channel_id, u64_snowflake_t message_id, u64_snowflake_t guild_id, const struct discord_emoji *emoji)
typedef void (*discord_on_voice_state_update)(struct discord *client, const struct discord_voice_state *voice_state)
typedef void (*discord_on_voice_server_update)(struct discord *client, const char *token, u64_snowflake_t guild_id, const char *endpoint)