| 581 | } |
| 582 | |
| 583 | command_result channel_safely(color_ostream &out, std::vector<std::string> ¶meters) { |
| 584 | if (!Core::getInstance().isMapLoaded() || !World::IsSiteLoaded()) { |
| 585 | outs without a loaded fort.\n", plugin_name); |
| 586 | return CR_FAILURE; |
| 587 | } |
| 588 | |
| 589 | if (!parameters.empty()) { |
| 590 | if (parameters[0] == "runonce") { |
| 591 | CSP::UnpauseEvent(true); |
| 592 | return DFHack::CR_OK; |
| 593 | } else if (parameters[0] == "rebuild") { |
| 594 | ChannelManager::Get().destroy_groups(); |
| 595 | ChannelManager::Get().build_groups(true); |
| 596 | } |
| 597 | if (parameters.size() >= 2 && parameters.size() <= 3) { |
| 598 | bool state = false; |
| 599 | bool set = false; |
| 600 | if (parameters[0] == "enable") { |
| 601 | state = true; |
| 602 | } else if (parameters[0] == "disable") { |
| 603 | state = false; |
| 604 | } else if (parameters[0] == "set") { |
| 605 | set = true; |
| 606 | } else { |
| 607 | return DFHack::CR_WRONG_USAGE; |
| 608 | } |
| 609 | try { |
| 610 | if(parameters[1] == "monitoring"){ |
| 611 | if (state != config.monitoring) { |
| 612 | config.monitoring = state; |
| 613 | // if this is a fresh start |
| 614 | if (state && !config.resurrect) { |
| 615 | // we need a fresh start |
| 616 | CSP::active_workers.clear(); |
| 617 | } |
| 618 | } |
| 619 | } else if (parameters[1] == "risk-averse") { |
| 620 | config.riskaverse = state; |
| 621 | } else if (parameters[1] == "require-vision") { |
| 622 | config.require_vision = state; |
| 623 | } else if (parameters[1] == "insta-dig") { |
| 624 | //config.insta_dig = state; |
| 625 | config.insta_dig = false; |
| 626 | } else if (parameters[1] == "resurrect") { |
| 627 | if (state != config.resurrect) { |
| 628 | config.resurrect = state; |
| 629 | // if this is a fresh start |
| 630 | if (state && !config.monitoring) { |
| 631 | // we need a fresh start |
| 632 | CSP::active_workers.clear(); |
| 633 | } |
| 634 | } |
| 635 | } else if (parameters[1] == "refresh-freq" && set && parameters.size() == 3) { |
| 636 | config.refresh_freq = std::abs(std::stol(parameters[2])); |
| 637 | } else if (parameters[1] == "monitor-freq" && set && parameters.size() == 3) { |
| 638 | config.monitor_freq = std::abs(std::stol(parameters[2])); |
| 639 | } else if (parameters[1] == "ignore-threshold" && set && parameters.size() == 3) { |
| 640 | config.ignore_threshold = std::abs(std::stol(parameters[2])); |
no test coverage detected