Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "XrayCommand.h"
- #include <random>
- #include <string>
- XrayCommand::XrayCommand() : IMCCommand("Xray", "Edit/List Xray IDs", "<add/del/list/default> <string/string>")
- {
- registerAlias("xray");
- }
- XrayCommand::~XrayCommand()
- {
- }
- bool XrayCommand::execute(std::vector<std::string>* args)
- {
- std::string option = args->at(1);
- std::transform(option.begin(), option.end(), option.begin(), ::tolower);
- if (option == "add") {
- if (args->size() == 2) {
- std::vector<short> newIds = moduleMgr->getModule<Xray>()->ids;
- char *charId = const_cast<char*>(args->at(2).c_str());
- short newId;
- sscanf_s(charId, "%hi", &newId);
- newIds.push_back(newId);
- moduleMgr->getModule<Xray>()->ids = newIds;
- clientMessageF("%sAdded %s%s %s to list of blocks!", GREEN, BLUE, args->at(2), GREEN);
- return 1;
- }
- else if (args->size() > 2) {
- clientMessageF("%sToo many arguments!", RED);
- return 0;
- }
- else if (args->size() == 1) {
- clientMessageF("%sToo little arguments!", RED);
- return 0;
- }
- }
- else if (option == "del") {
- if (args->size() == 2) {
- if (args->at(2) == "all") {
- moduleMgr->getModule<Xray>()->ids = {};
- clientMessageF("%sRemoved %severything %s from list of blocks!", GREEN, BLUE, GREEN);
- return 1;
- }
- else {
- std::vector<short> newIds = moduleMgr->getModule<Xray>()->ids;
- char *charId = const_cast<char*>(args->at(2).c_str());
- short delId;
- sscanf_s(charId, "%hi", &delId);
- newIds.erase(std::remove(newIds.begin(), newIds.end(), delId), newIds.end());
- moduleMgr->getModule<Xray>()->ids = newIds;
- clientMessageF("%sRemoved %s%s %s from list of blocks!", GREEN, BLUE, args->at(2), GREEN);
- return 1;
- }
- }
- else if (args->size() > 2) {
- clientMessageF("%sToo many arguments!", RED);
- return 0;
- }
- else if (args->size() == 1) {
- clientMessageF("%sToo little arguments!", RED);
- return 0;
- }
- }
- else if (option == "list") {
- for (std::size_t i = 0; i < moduleMgr->getModule<Xray>()->ids.size(); ++i) {
- std::vector<short> blockIds = moduleMgr->getModule<Xray>()->ids;
- std::ostringstream vts;
- if (!blockIds.empty())
- {
- // Convert all but the last element to avoid a trailing ","
- std::copy(blockIds.begin(), blockIds.end() - 1,
- std::ostream_iterator<int>(vts, ", "));
- // Now add the last element with no delimiter
- vts << blockIds.back();
- }
- clientMessageF("%s%s", BLUE, vts.str());
- return 1;
- }
- }
- else if (option == "default") {
- moduleMgr->getModule<Xray>()->ids = { 8, 9, 10, 11, 14, 15, 16, 21, 56, 73, 74, 129, 153 };
- clientMessageF("%sSet ID List to default settings.", GREEN);
- return 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement