MCPcopy Create free account
hub / github.com/DFHack/dfhack / do_command

Function do_command

plugins/suspendmanager.cpp:871–915  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

869}
870
871static command_result do_command(color_ostream &out, vector<string> &parameters) {
872 if (!Core::getInstance().isMapLoaded() || !World::isFortressMode()) {
873 out.printerr("Cannot run {} without a loaded fort.\n", plugin_name);
874 return CR_FAILURE;
875 }
876
877 if (parameters.size() == 0) {
878 if (!is_enabled) {
879 out.print("{} is disabled\n", plugin_name);
880 } else {
881 out.print(
882 "{} is enabled {} suspending blocking jobs\n", plugin_name,
883 suspendmanager_instance->prevent_blocking ? "and" : "but not");
884 }
885 return CR_OK;
886 } else if (parameters[0] == "now") {
887 do_cycle(out);
888 return CR_OK;
889 } else if (parameters[0] == "enable") {
890 return plugin_enable(out,true);
891 } else if (parameters[0] == "disable") {
892 return plugin_enable(out,false);
893 } else if (parameters[0] == "set" && parameters[1] == "preventblocking") {
894 if (parameters[2] == "true") {
895 suspendmanager_instance->prevent_blocking = true;
896 config.set_bool(CONFIG_PREVENT_BLOCKING, true);
897 if (is_enabled) {
898 do_cycle(out);
899 out.print("{}", suspendmanager_instance->getStatus(out));
900 }
901 return CR_OK;
902 } else if (parameters[2] == "false") {
903 suspendmanager_instance->prevent_blocking = false;
904 config.set_bool(CONFIG_PREVENT_BLOCKING, false);
905 if (is_enabled) {
906 do_cycle(out);
907 out.print("{}", suspendmanager_instance->getStatus(out));
908 }
909 return CR_OK;
910 } else
911 return CR_WRONG_USAGE;
912 } else {
913 return CR_WRONG_USAGE;
914 }
915}
916
917static command_result do_unsuspend_command(color_ostream &out, vector<string> &parameters) {
918 auto ok = Lua::CallLuaModuleFunction(out, "plugins.suspendmanager", "unsuspend_command", parameters);

Callers

nothing calls this directly

Calls 4

getStatusMethod · 0.80
do_cycleFunction · 0.70
sizeMethod · 0.45
printMethod · 0.45

Tested by

no test coverage detected