| 869 | } |
| 870 | |
| 871 | static command_result do_command(color_ostream &out, vector<string> ¶meters) { |
| 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 | |
| 917 | static command_result do_unsuspend_command(color_ostream &out, vector<string> ¶meters) { |
| 918 | auto ok = Lua::CallLuaModuleFunction(out, "plugins.suspendmanager", "unsuspend_command", parameters); |