• v3.0.5 3cc3b373e5

    🔧 Patch 3.0.5 — Исправление Discord slash-команд после рестарта бота
    Deploy Telegram Bot / build-and-push (push) Successful in 4m59s
    Deploy Telegram Bot / scan-images (push) Successful in 2m20s
    Deploy Telegram Bot / deploy (push) Successful in 28s
    Stable

    Toutsu released this 2026-05-25 18:21:32 +03:00 | 147 commits to main since this release

    🔧 Patch 3.0.5 — Исправление "This command can only be used in a guild" в Discord

    Discord slash-команды (/listsessions, /newsession, /reschedule) и кнопки сессий возвращали ошибку "This command can only be used in a guild", даже когда вызывались внутри канала сервера.

    Root cause: Context.Guild в NetCord берется из gateway client cache (cache.Guilds.GetValueOrDefault(guildId)), а не из JSON payload интеракции. После рестарта бота guild может еще не быть в кэше, и Context.Guild = null.

    Fix: Используем Context.Interaction.GuildId из payload + REST API GetGuildAsync/GetGuildUserAsync.

    🧩 Что вошло в релиз

    • DiscordListSessionsCommand.csContext.Interaction.GuildId вместо Context.Guild.Id
    • DiscordNewSessionCommand.cs — REST запросы для guild/member, GetResolvedPermissions на RestGuild + GuildUser
    • DiscordRescheduleCommand.cs — аналогично
    • DiscordSessionInteractionModule.cs — фикс CreateInput для кнопок (тот же баг)
    • Добавлен null guard в GetResolvedPermissions
    • Синхронизированы версии → 3.0.5

    🗡 Что это даёт

    • Discord slash-команды и кнопки работают корректно сразу после рестарта бота, независимо от состояния gateway cache.

    📦 Версия и деплой

    • версия обновлена до 3.0.5
    • Docker-образы используют тег 3.0.5
    • Gitea Actions run #244 (PR checks) — success
    • Gitea Actions run #245 (deploy) — success
    Downloads