mirror of
https://github.com/Syping/dtranslatebot.git
synced 2026-04-01 05:20:22 +02:00
slashcommands: check my language command target language
This commit is contained in:
parent
b6a5142755
commit
60c91d0e4f
3 changed files with 25 additions and 8 deletions
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
cmake_policy(VERSION 3.16...3.27)
|
cmake_policy(VERSION 3.16...3.27)
|
||||||
project(dtranslatebot VERSION 0.3.0 LANGUAGES CXX)
|
project(dtranslatebot VERSION 0.3.1 LANGUAGES CXX)
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
# dtranslatebot Source files
|
# dtranslatebot Source files
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: dtranslatebot
|
Name: dtranslatebot
|
||||||
Version: 0.3.0
|
Version: 0.3.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Discord Translation Bot
|
Summary: Discord Translation Bot
|
||||||
License: BSD-2-Clause
|
License: BSD-2-Clause
|
||||||
|
|
|
||||||
|
|
@ -191,14 +191,31 @@ void slashcommands::process_my_command(dpp::cluster *bot, bot::settings::setting
|
||||||
if (interaction.options[0].name == "language") {
|
if (interaction.options[0].name == "language") {
|
||||||
const std::string target = std::get<std::string>(event.get_parameter("target"));
|
const std::string target = std::get<std::string>(event.get_parameter("target"));
|
||||||
|
|
||||||
const std::lock_guard<bot::settings::settings> guard(*settings);
|
const auto languages = settings->get_translator()->get_languages();
|
||||||
settings->set_user_target(event.command.usr.id, target);
|
|
||||||
|
|
||||||
auto database = settings->get_database();
|
std::ostringstream language_codes;
|
||||||
database->set_user_target(event.command.usr.id, target);
|
bool target_valid = false;
|
||||||
database->sync();
|
for (const bot::translator::language &language : languages) {
|
||||||
|
if (language.code == target) {
|
||||||
|
target_valid = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
language_codes << ' ' << language.code;
|
||||||
|
}
|
||||||
|
|
||||||
event.reply(dpp::message("Your target language has being set!").set_flags(dpp::m_ephemeral));
|
if (target_valid) {
|
||||||
|
const std::lock_guard<bot::settings::settings> guard(*settings);
|
||||||
|
settings->set_user_target(event.command.usr.id, target);
|
||||||
|
|
||||||
|
auto database = settings->get_database();
|
||||||
|
database->set_user_target(event.command.usr.id, target);
|
||||||
|
database->sync();
|
||||||
|
|
||||||
|
event.reply(dpp::message("Your target language has being set!").set_flags(dpp::m_ephemeral));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
event.reply(dpp::message("Target language is not valid!\nAvailable languages are:" + language_codes.str()).set_flags(dpp::m_ephemeral));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw std::invalid_argument("Option " + interaction.options[0].name + " is not known");
|
throw std::invalid_argument("Option " + interaction.options[0].name + " is not known");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue