Add setdiscordimage command

This commit is contained in:
Federico Cecchetto 2022-09-02 01:31:02 +02:00
parent 34e3a57b57
commit db908d1012

View File

@ -17,6 +17,7 @@ namespace discord
DiscordRichPresence discord_presence; DiscordRichPresence discord_presence;
std::string state; std::string state;
std::optional<std::string> details{}; std::optional<std::string> details{};
std::optional<std::string> image{};
void update_discord() void update_discord()
{ {
@ -26,6 +27,7 @@ namespace discord
{ {
state = {}; state = {};
details.reset(); details.reset();
image.reset();
discord_presence.details = game::UI_SafeTranslateString("MENU_MAIN_MENU"); discord_presence.details = game::UI_SafeTranslateString("MENU_MAIN_MENU");
discord_presence.state = ""; discord_presence.state = "";
@ -37,7 +39,17 @@ namespace discord
} }
else else
{ {
const auto map = game::Dvar_FindVar("mapname")->current.string; static char map[0x1000] = {0};
if (image.has_value())
{
strncpy_s(map, image.value().data(), sizeof(map));
}
else
{
const auto mapname = game::Dvar_FindVar("mapname")->current.string;
strncpy_s(map, mapname, sizeof(map));
}
const auto mapname = game::UI_SafeTranslateString(utils::string::va("PRESENCE_SP_%s", map)); const auto mapname = game::UI_SafeTranslateString(utils::string::va("PRESENCE_SP_%s", map));
discord_presence.largeImageKey = map; discord_presence.largeImageKey = map;
@ -112,6 +124,16 @@ namespace discord
update_discord(); update_discord();
}, scheduler::pipeline::async); }, scheduler::pipeline::async);
}); });
command::add("setdiscordimage", [](const command::params& params)
{
const std::string image_ = params.join(1);
scheduler::once([=]()
{
image = image_;
update_discord();
}, scheduler::pipeline::async);
});
} }
private: private: