Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. #include "XrayCommand.h"
  2. #include <random>
  3. #include <string>
  4.  
  5. XrayCommand::XrayCommand() : IMCCommand("Xray", "Edit/List Xray IDs", "<add/del/list/default> <string/string>")
  6. {
  7. registerAlias("xray");
  8. }
  9.  
  10. XrayCommand::~XrayCommand()
  11. {
  12. }
  13.  
  14. bool XrayCommand::execute(std::vector<std::string>* args)
  15. {
  16. std::string option = args->at(1);
  17. std::transform(option.begin(), option.end(), option.begin(), ::tolower);
  18. if (option == "add") {
  19. if (args->size() == 2) {
  20. std::vector<short> newIds = moduleMgr->getModule<Xray>()->ids;
  21. char *charId = const_cast<char*>(args->at(2).c_str());
  22. short newId;
  23. sscanf_s(charId, "%hi", &newId);
  24. newIds.push_back(newId);
  25. moduleMgr->getModule<Xray>()->ids = newIds;
  26. clientMessageF("%sAdded %s%s %s to list of blocks!", GREEN, BLUE, args->at(2), GREEN);
  27. return 1;
  28. }
  29. else if (args->size() > 2) {
  30. clientMessageF("%sToo many arguments!", RED);
  31. return 0;
  32. }
  33. else if (args->size() == 1) {
  34. clientMessageF("%sToo little arguments!", RED);
  35. return 0;
  36. }
  37. }
  38. else if (option == "del") {
  39. if (args->size() == 2) {
  40. if (args->at(2) == "all") {
  41. moduleMgr->getModule<Xray>()->ids = {};
  42. clientMessageF("%sRemoved %severything %s from list of blocks!", GREEN, BLUE, GREEN);
  43. return 1;
  44. }
  45. else {
  46. std::vector<short> newIds = moduleMgr->getModule<Xray>()->ids;
  47. char *charId = const_cast<char*>(args->at(2).c_str());
  48. short delId;
  49. sscanf_s(charId, "%hi", &delId);
  50. newIds.erase(std::remove(newIds.begin(), newIds.end(), delId), newIds.end());
  51. moduleMgr->getModule<Xray>()->ids = newIds;
  52. clientMessageF("%sRemoved %s%s %s from list of blocks!", GREEN, BLUE, args->at(2), GREEN);
  53. return 1;
  54. }
  55. }
  56. else if (args->size() > 2) {
  57. clientMessageF("%sToo many arguments!", RED);
  58. return 0;
  59. }
  60. else if (args->size() == 1) {
  61. clientMessageF("%sToo little arguments!", RED);
  62. return 0;
  63. }
  64. }
  65. else if (option == "list") {
  66. for (std::size_t i = 0; i < moduleMgr->getModule<Xray>()->ids.size(); ++i) {
  67. std::vector<short> blockIds = moduleMgr->getModule<Xray>()->ids;
  68. std::ostringstream vts;
  69. if (!blockIds.empty())
  70. {
  71. // Convert all but the last element to avoid a trailing ","
  72. std::copy(blockIds.begin(), blockIds.end() - 1,
  73. std::ostream_iterator<int>(vts, ", "));
  74.  
  75. // Now add the last element with no delimiter
  76. vts << blockIds.back();
  77. }
  78. clientMessageF("%s%s", BLUE, vts.str());
  79. return 1;
  80. }
  81. }
  82. else if (option == "default") {
  83. moduleMgr->getModule<Xray>()->ids = { 8, 9, 10, 11, 14, 15, 16, 21, 56, 73, 74, 129, 153 };
  84. clientMessageF("%sSet ID List to default settings.", GREEN);
  85. return 1;
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement