Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. bool setUserMode(const std::string& name, const std::string& chan, const std::string& mode, std::string output)
  2. {
  3.     Database *db = Database::instance();
  4.     if (!db->connect()) {
  5.         output = "Unable to connect, please try again later.";
  6.         return false;
  7.     }
  8.  
  9.     Query q;
  10.     Result r;
  11.     std::string channels = "";
  12.     std::string modes = "";
  13.     q << "SELECT `modes`, `channels` FROM `channel_auths` WHERE `auth_name` = '" << name << "';";
  14.     db->storeQuery(q, r);
  15.  
  16.     q.reset();
  17.     if (r.numRows() != 0) {
  18.         output = "r.numRows() > 0";
  19.         for (int i = 0; i < r.numRows(); ++i) {
  20.             if (r.getDataString("channels", i) != "") {
  21.                 output = "Found channels";
  22.                 channels += r.getDataString("channels", i) + " ";
  23.                 modes += r.getDataString("modes", i);
  24.                 if (channels.find(chan) != std::string::npos) {
  25.                     modes += mode;
  26.                     q << "UPDATE `channel_auths` SET `modes` = '" << modes << "' WHERE `channels` = '" << channels << "';";
  27.                     if (!db->executeQuery(q)) {
  28.                         output = "Unable to save auth. #1";
  29.                         return false;
  30.                     }
  31.                 }
  32.             }
  33.         }
  34.     } else {
  35.         q << "INSERT INTO `channel_auths` VALUES ('" << name << "', '" << chan << "', '" << mode << "');";
  36.         if (!db->executeQuery(q)) {
  37.             output = "Could not save auth. #2";
  38.             return false;
  39.         }
  40.     }
  41.     output = "Done. Flags for: " + name + " in " + chan + " are now " + modes + ".";
  42.     return true;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement