Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
open_web_url.hpp
Go to the documentation of this file.
1 #include "../console.h"
4 
5 #include <Strings/components/utils/string/string.h>
6 #include <Strings/components/utils/web/web.h>
7 
9 {
16  {
17  public:
19  {
20  name = "open_web_url";
21  description = "Opens a URL in the user's preferred web browser.";
22  syntax = "open_web_url <string>";
23  aliases = { "url" };
24 
26  }
27 
28  BlamResult Execute(std::vector<std::string> arguments)
29  {
30  if (arguments.size() == 0)
31  {
32  return BlamResult::Error_Command_WrongArgumentCount;
33  }
34  else
35  {
36  std::string url = "";
37 
38  for (int i = 0; i < arguments.size(); i++)
39  {
40  url += arguments.at(i);
41 
42  if (i != (arguments.size() - 1))
43  {
44  url += " ";
45  }
46  }
47 
48  if (!BlamStrings::Utils::String::StartsWith(url, "http://", true) && !BlamStrings::Utils::String::StartsWith(url, "https://", true)
49  && !BlamStrings::Utils::String::StartsWith(url, "file://", true) && !BlamStrings::Utils::String::StartsWith(url, "ftp://", true))
50  {
51  url = "http://" + url;
52  }
53 
55  Blam::Logger::LogEventForce("opening web browser at url '" + url + "'", WSV_NONE);
56  }
57 
58  return BlamResult::Success_OK;
59  }
60  };
61 }
BlamConsoleCommand::description
std::string description
An optional description of the command. Shown when using the classify command.
Definition: console.h:36
logger.h
keystone.h
Blam::Resources::Console::OpenWebURLCommand::Execute
BlamResult Execute(std::vector< std::string > arguments)
Called upon command execution.
Definition: open_web_url.hpp:28
BlamConsoleCommand
Class used to represent a console command.
Definition: console.h:33
BlamConsoleCommand::name
std::string name
The name of the console command.
Definition: console.h:35
BlamConsoleCommand::syntax
std::string syntax
The syntax information for the command. Shown to the user when using the help command with an argumen...
Definition: console.h:37
BlamConsoleCommand::type
BlamCommandType type
The type of command this is. See #Blam::Resources::Console::BlamCommandType for more information.
Definition: console.h:40
Blam::API::v1::HS::OpenWebURL
void OpenWebURL(std::string url)
Definition: hs.cpp:114
Blam::Logger::LogEventForce
BLAM void LogEventForce(std::string message)
Forcibly logs a message to the log and/or console.
Definition: aliases.cpp:262
BlamConsoleCommand::aliases
std::vector< std::string > aliases
A list of aliases for the command. Executing any of these instead of the command name will behave the...
Definition: console.h:38
Blam::Resources::Console::OpenWebURLCommand
Class for the open_web_url command.
Definition: open_web_url.hpp:15
Blam::Resources::Console
Namespace for things relating to the debug console.
Definition: abort.hpp:5
Blam::Resources::Console::OpenWebURLCommand::OpenWebURLCommand
OpenWebURLCommand()
Definition: open_web_url.hpp:18
BlamCommandType::Builtin
@ Builtin
A command that is hard-coded into the engine.