From b452415d9d2a458812644a484733ee295b3b57ab Mon Sep 17 00:00:00 2001 From: Johann <76482511+Primexz@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:26:04 +0100 Subject: [PATCH] fix(commands): fix crashes on invalid commands (#1081) --- src/gui/components/components.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/components/components.hpp b/src/gui/components/components.hpp index ac93b98b..581e0134 100644 --- a/src/gui/components/components.hpp +++ b/src/gui/components/components.hpp @@ -35,6 +35,9 @@ namespace big static void command_button(const std::vector args = {}, std::optional label_override = std::nullopt) { static command* command = command::get(rage::consteval_joaat(cmd_str.value)); + if (command == nullptr) + return ImGui::Text("INVALID COMMAND"); + if (ImGui::Button(label_override.value_or(command->get_label()).data())) command->call(args); if (ImGui::IsItemHovered()) @@ -45,6 +48,9 @@ namespace big static void player_command_button(player_ptr player = g_player_service->get_selected(), const std::vector args = {}, std::optional label_override = std::nullopt) { static player_command* command = (player_command*)command::get(rage::consteval_joaat(cmd_str.value)); + if (command == nullptr) + return ImGui::Text("INVALID COMMAND"); + if (ImGui::Button(label_override.value_or(command->get_label()).data())) command->call(player, args); if (ImGui::IsItemHovered()) @@ -55,6 +61,9 @@ namespace big static void command_checkbox(std::optional label_override = std::nullopt) { static bool_command* command = (bool_command*)command::get(rage::consteval_joaat(cmd_str.value)); + if (command == nullptr) + return ImGui::Text("INVALID COMMAND"); + if (ImGui::Checkbox(label_override.value_or(command->get_label()).data(), &command->is_enabled())) command->refresh(); if (ImGui::IsItemHovered())