![]() |
|
[插件] kook-connect - 打印版本 +- samp | open.mp 联机社区论坛 (https://open-mp.cn) +-- 板块: SA-MP (https://open-mp.cn/forumdisplay.php?fid=12) +--- 板块: 发布 (https://open-mp.cn/forumdisplay.php?fid=18) +---- 板块: 插件 (https://open-mp.cn/forumdisplay.php?fid=19) +---- 主题: [插件] kook-connect (/showthread.php?tid=33) |
[插件] kook-connect - siwode - 05-01-2026 samp-kook-connector 插件 Wiki 将 Kook 机器人集成到你的 SA-MP / open.mp 服务器游戏模式中。 目录 1. 安装 1.1 创建 Kook 机器人
1.2 配置令牌 SA-MP(server.cfg): 代码: kook_bot_token YOUR_BOT_TOKEN_HEREopen.mp(config.json): 代码: kook.bot_token YOUR_BOT_TOKEN_HERE也可以使用环境变量代替: 代码: SAMP_KOOK_BOT_TOKEN=YOUR_BOT_TOKEN_HERE引用:注意事项: 2. 重要说明 引用:关于 Kook ID 与内部 ID: 引用:关于发送私信: 3. Natives(原生函数) 3.1 频道 KOOK_FindChannelById 代码: KOOK_FindChannelById(const channel_id[])KCC_GetChannelId 代码: KCC_GetChannelId(KCC_Channel:channel, dest[DCC_ID_SIZE], max_size = sizeof dest)KCC_GetChannelType 代码: KCC_GetChannelType(KCC_Channel:channel, &KCC_ChannelType:type)KCC_GetChannelGuild 代码: KCC_GetChannelGuild(KCC_Channel:channel, &KCC_Guild:guild)KCC_GetChannelName 代码: KCC_GetChannelName(KCC_Channel:channel, dest[], max_size = sizeof dest)KCC_GetChannelTopic 代码: KCC_GetChannelTopic(KCC_Channel:channel, dest[], max_size = sizeof dest)KCC_GetChannelPosition 代码: KCC_GetChannelPosition(KCC_Channel:channel, &position)KCC_SendChannelMessage 代码: KCC_SendChannelMessage(KCC_Channel:channel, const message[], const callback[] = "", const format[] = "", {Float, _}:...)KCC_SetChannelName 代码: KCC_SetChannelName(KCC_Channel:channel, const name[])KCC_SetChannelTopic 代码: KCC_SetChannelTopic(KCC_Channel:channel, const topic[])KCC_DeleteChannel 代码: KCC_DeleteChannel(KCC_Channel:channel)3.2 消息 KCC_GetMessageId 代码: KCC_GetMessageId(KCC_Message:message, dest[KCC_ID_SIZE], max_size = KCC_ID_SIZE)KCC_GetMessageChannel 代码: KCC_GetMessageChannel(KCC_Message:message, &KCC_Channel:channel)KCC_GetMessageAuthor 代码: KCC_GetMessageAuthor(KCC_Message:message, &KCC_User:author)KCC_GetMessageContent 代码: KCC_GetMessageContent(KCC_Message:message, dest[], max_size = sizeof dest)KCC_IsMessageMentioningEveryone 代码: KCC_IsMessageMentioningEveryone(KCC_Message:message, &bool:mentions_everyone)KCC_GetMessageUserMentionCount 代码: KCC_GetMessageUserMentionCount(KCC_Message:message, &mentioned_user_count)KCC_GetMessageUserMention 代码: KCC_GetMessageUserMention(KCC_Message:message, offset, &KCC_User:mentioned_user)KCC_GetMessageRoleMentionCount 代码: KCC_GetMessageRoleMentionCount(KCC_Message:message, &mentioned_role_count)KCC_GetMessageRoleMention 代码: KCC_GetMessageRoleMention(KCC_Message:message, offset, &KCC_Role:mentioned_role)KCC_DeleteMessage 代码: KCC_DeleteMessage(KCC_Message:message)KCC_GetCreatedMessage 代码: KCC_GetCreatedMessage()KCC_DeleteInternalMessage 代码: KCC_DeleteInternalMessage(KCC_Message:message)KCC_EditMessage 代码: KCC_EditMessage(KCC_Message:message, const content[], KCC_Embed:embed = KCC_Embed:0)KCC_SetMessagePersistent 代码: KCC_SetMessagePersistent(KCC_Message:message, bool:persistent)KCC_CacheChannelMessage 代码: KCC_CacheChannelMessage(const channel_id[DCC_ID_SIZE], const message_id[DCC_ID_SIZE], const callback[] = "", const format[] = "", {Float, _}:...)3.3 用户 引用:用户的 discriminator 是附加在 Kook 用户名后的 4 位数字标识。 KCC_FindUserByName 代码: KCC_FindUserByName(const user_name[], const user_discriminator[])KCC_FindUserById 代码: KCC_FindUserById(const user_id[])KCC_GetUserId 代码: KCC_GetUserId(KCC_User:user, dest[DCC_ID_SIZE], max_size = DCC_ID_SIZE)KCC_GetUserName 代码: KCC_GetUserName(KCC_User:user, dest[DCC_USERNAME_SIZE], max_size = sizeof dest)KCC_GetUserDiscriminator 代码: KCC_GetUserDiscriminator(KCC_User:user, dest[], max_size = DCC_ID_SIZE)KCC_IsUserBot 代码: KCC_IsUserBot(KCC_User:user, &bool:is_bot)KCC_IsUserVerified 代码: KCC_IsUserVerified(KCC_User:user, &bool:is_verified)3.4 身份组 引用:dest 字符串大小必须为 DCC_ID_SIZE。 KCC_FindRoleByName 代码: KCC_FindRoleByName(KCC_Guild:guild, const role_name[])KCC_FindRoleById 代码: KCC_FindRoleById(const role_id[])KCC_GetRoleId 代码: KCC_GetRoleId(KCC_Role:role, dest[DCC_ID_SIZE], max_size = sizeof dest)KCC_GetRoleName 代码: KCC_GetRoleName(KCC_Role:role, dest[], max_size = sizeof dest)KCC_GetRoleColor 代码: KCC_GetRoleColor(KCC_Role:role, &color)KCC_GetRolePermissions 代码: KCC_GetRolePermissions(KCC_Role:role, &perm_high, &perm_low)KCC_IsRoleHoist 代码: KCC_IsRoleHoist(KCC_Role:role, &bool:is_hoist)KCC_GetRolePosition 代码: KCC_GetRolePosition(KCC_Role:role, &position)KCC_IsRoleMentionable 代码: KCC_IsRoleMentionable(KCC_Role:role, &bool:is_mentionable)3.5 服务器 引用:dest 字符串大小必须为 DCC_ID_SIZE。 — 查询 — KCC_FindGuildByName 代码: KCC_FindGuildByName(const guild_name[])KCC_FindGuildById 代码: KCC_FindGuildById(const guild_id[])KCC_GetGuildId 代码: KCC_GetGuildId(KCC_Guild:guild, dest[DCC_ID_SIZE], max_size = sizeof dest)KCC_GetGuildName 代码: KCC_GetGuildName(KCC_Guild:guild, dest[], max_size = sizeof dest)KCC_GetGuildOwnerId 代码: KCC_GetGuildOwnerId(KCC_Guild:guild, dest[DCC_ID_SIZE], max_size = sizeof dest)KCC_GetAllGuilds 代码: KCC_GetAllGuilds(KCC_Guild:dest[], max_size = sizeof dest)— 频道 — KCC_GetGuildChannel 代码: KCC_GetGuildChannel(KCC_Guild:guild, offset, &KCC_Channel:channel)KCC_GetGuildChannelCount 代码: KCC_GetGuildChannelCount(KCC_Guild:guild, &count)KCC_CreateGuildChannel 代码: KCC_CreateGuildChannel(KCC_Guild:guild, const name[], DCC_ChannelType:type, const callback[] = "", const format[] = "", {Float, _}:...)KCC_GetCreatedGuildChannel 代码: KCC_GetCreatedGuildChannel()— 成员 — KCC_GetGuildMember 代码: KCC_GetGuildMember(KCC_Guild:guild, offset, &KCC_User:user)KCC_GetGuildMemberCount 代码: KCC_GetGuildMemberCount(KCC_Guild:guild, &count)KCC_GetGuildMemberVoiceChannel 代码: KCC_GetGuildMemberVoiceChannel(KCC_Guild:guild, KCC_User:user, &KCC_Channel:channel)KCC_GetGuildMemberNickname 代码: KCC_GetGuildMemberNickname(KCC_Guild:guild, KCC_User:user, dest[DCC_NICKNAME_SIZE], max_size = sizeof dest)KCC_GetGuildMemberRole 代码: KCC_GetGuildMemberRole(KCC_Guild:guild, KCC_User:user, offset, &KCC_Role:role)KCC_GetGuildMemberRoleCount 代码: KCC_GetGuildMemberRoleCount(KCC_Guild:guild, KCC_User:user, &count)KCC_HasGuildMemberRole 代码: KCC_HasGuildMemberRole(KCC_Guild:guild, KCC_User:user, KCC_Role:role, &bool:has_role)KCC_SetGuildMemberNickname 代码: KCC_SetGuildMemberNickname(KCC_Guild:guild, KCC_User:user, const nickname[])KCC_AddGuildMemberRole 代码: KCC_AddGuildMemberRole(KCC_Guild:guild, KCC_User:user, KCC_Role:role)KCC_RemoveGuildMemberRole 代码: KCC_RemoveGuildMemberRole(KCC_Guild:guild, KCC_User:user, KCC_Role:role)KCC_RemoveGuildMember 代码: KCC_RemoveGuildMember(KCC_Guild:guild, KCC_User:user)KCC_CreateGuildMemberBan 代码: KCC_CreateGuildMemberBan(KCC_Guild:guild, KCC_User:user, const reason[] = "")KCC_RemoveGuildMemberBan 代码: KCC_RemoveGuildMemberBan(KCC_Guild:guild, KCC_User:user)— 身份组管理 — KCC_GetGuildRole 代码: KCC_GetGuildRole(KCC_Guild:guild, offset, &KCC_Role:role)KCC_GetGuildRoleCount 代码: KCC_GetGuildRoleCount(KCC_Guild:guild, &count)KCC_CreateGuildRole 代码: KCC_CreateGuildRole(KCC_Guild:guild, const name[], const callback[] = "", const format[] = "", {Float, _}:...)KCC_GetCreatedGuildRole 代码: KCC_GetCreatedGuildRole()KCC_DeleteGuildRole 代码: KCC_DeleteGuildRole(KCC_Guild:guild, KCC_Role:role)KCC_SetGuildRoleName 代码: KCC_SetGuildRoleName(KCC_Guild:guild, KCC_Role:role, const name[])KCC_SetGuildRolePermissions 代码: KCC_SetGuildRolePermissions(KCC_Guild:guild, KCC_Role:role, perm_high, perm_low)KCC_SetGuildRoleColor 代码: KCC_SetGuildRoleColor(KCC_Guild:guild, KCC_Role:role, color)KCC_SetGuildRoleHoist 代码: KCC_SetGuildRoleHoist(KCC_Guild:guild, KCC_Role:role, bool:hoist)KCC_SetGuildRoleMentionable 代码: KCC_SetGuildRoleMentionable(KCC_Guild:guild, KCC_Role:role, bool:mentionable)3.6 机器人 KCC_CreatePrivateChannel 代码: KCC_CreatePrivateChannel(KCC_User:user, const callback[], const format[] = "", {Float, _}:...)KCC_GetCreatedPrivateChannel 代码: KCC_GetCreatedPrivateChannel()3.7 嵌入消息 嵌入消息(Embed)允许向 Kook 频道发送富文本内容消息。 KCC_CreateEmbed 代码: KCC_CreateEmbed(const title[] = "", const description[] = "", const url[] = "", const timestamp[] = "", color = 0, const footer_text[] = "", const footer_icon_url[] = "", const thumbnail_url[] = "", const image_url[] = "")KCC_DeleteEmbed 代码: KCC_DeleteEmbed(KCC_Embed:embed)KCC_SendChannelEmbedMessage 代码: KCC_SendChannelEmbedMessage(KCC_Channel:channel, KCC_Embed:embed, const message[] = "", const callback[] = "", const format[] = "", {Float, _}:...)KCC_AddEmbedField 代码: KCC_AddEmbedField(KCC_Embed:embed, const name[], const value[], bool:inline = false)KCC_SetEmbedTitle 代码: KCC_SetEmbedTitle(KCC_Embed:embed, const title[])KCC_SetEmbedDescription 代码: KCC_SetEmbedDescription(KCC_Embed:embed, const description[])KCC_SetEmbedUrl 代码: KCC_SetEmbedUrl(KCC_Embed:embed, const url[])KCC_SetEmbedTimestamp 代码: KCC_SetEmbedTimestamp(KCC_Embed:embed, const timestamp[])KCC_SetEmbedColor 代码: KCC_SetEmbedColor(KCC_Embed:embed, color)KCC_SetEmbedFooter 代码: KCC_SetEmbedFooter(KCC_Embed:embed, const footer_text[], const footer_icon_url[] = "")KCC_SetEmbedThumbnail 代码: KCC_SetEmbedThumbnail(KCC_Embed:embed, const thumbnail_url[])KCC_SetEmbedImage 代码: KCC_SetEmbedImage(KCC_Embed:embed, const image_url[])3.8 表情 引用:dest 字符串大小必须为 DCC_EMOJI_NAME_SIZE。 KCC_CreateEmoji 代码: KCC_CreateEmoji(const name[DCC_EMOJI_NAME_SIZE], const snowflake[DCC_ID_SIZE] = "")KCC_DeleteEmoji 代码: KCC_DeleteEmoji(KCC_Emoji:emoji)KCC_GetEmojiName 代码: KCC_GetEmojiName(KCC_Emoji:emoji, dest[DCC_EMOJI_NAME_SIZE], maxlen = DCC_EMOJI_NAME_SIZE)3.9 反应 KCC_CreateReaction 代码: KCC_CreateReaction(KCC_Message:message, KCC_Emoji:reaction_emoji)KCC_DeleteMessageReaction 代码: KCC_DeleteMessageReaction(KCC_Message:message, KCC_Emoji:reaction_emoji = KCC_Emoji:0)3.10 其他 KCC_EscapeMarkdown 代码: KCC_EscapeMarkdown(const src[], dest[], max_size = sizeof dest)4. Callbacks(回调函数) 4.1 频道回调 KCC_OnChannelCreate 代码: public KCC_OnChannelCreate(KCC_Channel:channel)KCC_OnChannelUpdate 代码: public KCC_OnChannelUpdate(KCC_Channel:channel)KCC_OnChannelDelete 代码: public KCC_OnChannelDelete(KCC_Channel:channel)4.2 消息回调 KCC_OnMessageCreate 代码: public KCC_OnMessageCreate(KCC_Message:message)KCC_OnMessageDelete 代码: public KCC_OnMessageDelete(KCC_Message:message)KCC_OnMessageReaction 代码: public KCC_OnMessageReaction(KCC_Message:message, KCC_User:reaction_user, KCC_Emoji:emoji, DCC_MessageReactionType:reaction_type)
4.3 用户回调 KCC_OnUserUpdate 代码: public KCC_OnUserUpdate(KCC_User:user)4.4 服务器回调 KCC_OnGuildCreate 代码: public KCC_OnGuildCreate(KCC_Guild:guild)KCC_OnGuildUpdate 代码: public KCC_OnGuildUpdate(KCC_Guild:guild)KCC_OnGuildDelete 代码: public KCC_OnGuildDelete(KCC_Guild:guild)KCC_OnGuildMemberAdd 代码: public KCC_OnGuildMemberAdd(KCC_Guild:guild, KCC_User:user)KCC_OnGuildMemberUpdate 代码: public KCC_OnGuildMemberUpdate(KCC_Guild:guild, KCC_User:user)KCC_OnGuildMemberVoiceUpdate 代码: public KCC_OnGuildMemberVoiceUpdate(KCC_Guild:guild, KCC_User:user, KCC_Channel:channel)
KCC_OnGuildMemberRemove 代码: public KCC_OnGuildMemberRemove(KCC_Guild:guild, KCC_User:user)KCC_OnGuildRoleCreate 代码: public KCC_OnGuildRoleCreate(KCC_Guild:guild, KCC_Role:role)KCC_OnGuildRoleUpdate 代码: public KCC_OnGuildRoleUpdate(KCC_Guild:guild, KCC_Role:role)KCC_OnGuildRoleDelete 代码: public KCC_OnGuildRoleDelete(KCC_Guild:guild, KCC_Role:role) |