Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.06 KB | None | 0 0
  1. #ifdef ENABLE_BAN_SYSTEM
  2. void CHARACTER::Ban_System_Ban(const char* arg1, int arg2, const char* arg3)
  3. {
  4. std::string anyone = arg1;
  5. std::string anytwo = arg3;
  6. std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
  7. std::size_t anywo = anytwo.find_first_of("!?%&/()=\?'|");
  8. while (anyne!=std::string::npos || anywo!=std::string::npos)
  9. {
  10. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine Sonderzeichen benutzen.");
  11. return;
  12. }
  13. const char* name_check;
  14. if (!arg2 >= 1)
  15. {
  16. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Zeit des Bannes muss höher als 0 sein.");
  17. #ifdef _BANSYSTEM_DEBUG_
  18. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
  19. #endif
  20. return;
  21. }
  22. name_check = GetName();
  23.  
  24. if (name_check == arg1)
  25. {
  26. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst dich nicht selber Bannen.");
  27. #ifdef _BANSYSTEM_DEBUG_
  28. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
  29. #endif
  30. return;
  31. }
  32.  
  33. LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(arg1);
  34. LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
  35. if (!LCHARACTER)
  36. {
  37. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Player %s is not online.", arg1);
  38. #ifdef _BANSYSTEM_DEBUG_
  39. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
  40. #endif
  41. return;
  42. }
  43. if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
  44. {
  45. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine GM´s Bannen!");
  46. #ifdef _BANSYSTEM_DEBUG_
  47. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
  48. #endif
  49. return;
  50. }
  51. LCHARACTER = CHARACTER_MANAGER::instance().FindPC(arg1);
  52.  
  53. if (arg2 == 9999)
  54. std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("UPDATE account.account SET status = 'BLOCK', availDt = '2065-12-31 00:00:00', reason = '%s' WHERE id = %d" , arg3, LCHARACTER->GetAID()));
  55. else
  56. std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("UPDATE account.account SET status = 'BLOCK', availDt = FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) + %i), reason = '%s' WHERE id = %d", arg2 * 3600 , arg3, LCHARACTER->GetAID()));
  57. #ifdef _BANSYSTEM_DEBUG_
  58. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
  59. #endif
  60. LDESC->DelayedDisconnect(5);
  61. LDESC->ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du wirst in 5 Sekunden vom Server gekickt. Grund des Bannes: %s",arg3);
  62. }
  63.  
  64. void CHARACTER::Ban_System_Unban(const char* arg1)
  65. {
  66.  
  67. std::string anyone = arg1;
  68. std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
  69. while (anyne!=std::string::npos)
  70. {
  71. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine Sonderzeichen benutzen.");
  72. return;
  73. }
  74. std::auto_ptr<SQLMsg> msg0(DBManager::instance().DirectQuery("SELECT * FROM player.player WHERE name = '%s'", arg1));
  75. if (msg0->Get()->uiNumRows == 0)
  76. {
  77. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s existiert nicht.",arg1);
  78. return;
  79. }
  80. std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("SELECT * FROM player.player WHERE name = '%s'", arg1));
  81. if (msg->Get()->uiNumRows == 0)
  82. {
  83. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s existiert nicht.",arg1);
  84. return;
  85. }
  86. std::auto_ptr<SQLMsg> msg2(DBManager::instance().DirectQuery("SELECT status FROM account.account INNER JOIN player.player ON player.account_id=account.id WHERE player.name='%s' and account.status = 'BLOCK'", arg1));
  87. if (msg2->Get()->uiNumRows == 0)
  88. {
  89. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s ist nicht gebannt.",arg1);
  90. return;
  91. }
  92. std::auto_ptr<SQLMsg> msg3(DBManager::instance().DirectQuery("UPDATE account.account INNER JOIN player.player ON player.account_id=account.id SET status='OK' WHERE player.name='%s'", arg1));
  93. std::auto_ptr<SQLMsg> msg4(DBManager::instance().DirectQuery("SELECT ban_ip FROM account.account INNER JOIN player.player ON player.account_id=account.id WHERE player.name = '%s'", arg1));
  94. if (msg4->Get()->uiNumRows == 0)
  95. {
  96. return;
  97. }
  98. std::auto_ptr<SQLMsg> msg5(DBManager::instance().DirectQuery("UPDATE account.account INNER JOIN player.player ON player.account_id=account.id SET reason = '' WHERE player.name = '%s'", arg1));
  99. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s entbannt.",arg1);
  100.  
  101. }
  102.  
  103. void CHARACTER::Ban_System_IPBan(const char* arg1,const char* arg2)
  104. {
  105. LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(arg1);
  106. LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
  107. std::string anyone = arg1;
  108. std::string anytwo = arg2;
  109. std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
  110. std::size_t anywo = anytwo.find_first_of("!?%&/()=\?'|\"");
  111. while (anyne!=std::string::npos || anywo!=std::string::npos)
  112. {
  113. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst keine Sonderzeichen benutzen.");
  114. return;
  115. }
  116. const char* name_check;
  117. name_check = GetName();
  118.  
  119. if (name_check == arg1)
  120. {
  121. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst dich nicht selber Bannen.");
  122. #ifdef _BANSYSTEM_DEBUG_
  123. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler Name: %s", arg1);
  124. #endif
  125. return;
  126. }
  127. if (!LCHARACTER)
  128. {
  129. ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s ist nicht online.", arg1);
  130. #ifdef _BANSYSTEM_DEBUG_
  131. ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Reason: %s", arg1,arg2);
  132. #endif
  133. return;
  134. }
  135. if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
  136. {
  137. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst keine GM´s Bannen.");
  138. #ifdef _BANSYSTEM_DEBUG_
  139. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler Name: %s Grund: %s", arg1,arg2);
  140. #endif
  141. return;
  142. }
  143. std::auto_ptr<SQLMsg> msg2(DBManager::instance().DirectQuery("INSERT INTO account.account(ban_ip,reason) VALUES('%s','%s')", inet_ntoa(LDESC->GetAddr().sin_addr),arg2));
  144. if (msg2->Get()->uiNumRows == 0)
  145. {
  146. return;
  147. }
  148. #ifdef _BANSYSTEM_DEBUG_
  149. ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler: %s. Grund %s", arg1,arg2);
  150. #endif
  151. }
  152. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement