Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef ENABLE_BAN_SYSTEM
- void CHARACTER::Ban_System_Ban(const char* arg1, int arg2, const char* arg3)
- {
- std::string anyone = arg1;
- std::string anytwo = arg3;
- std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
- std::size_t anywo = anytwo.find_first_of("!?%&/()=\?'|");
- while (anyne!=std::string::npos || anywo!=std::string::npos)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine Sonderzeichen benutzen.");
- return;
- }
- const char* name_check;
- if (!arg2 >= 1)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Zeit des Bannes muss höher als 0 sein.");
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
- #endif
- return;
- }
- name_check = GetName();
- if (name_check == arg1)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst dich nicht selber Bannen.");
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
- #endif
- return;
- }
- LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(arg1);
- LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
- if (!LCHARACTER)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Player %s is not online.", arg1);
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
- #endif
- return;
- }
- if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine GM´s Bannen!");
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
- #endif
- return;
- }
- LCHARACTER = CHARACTER_MANAGER::instance().FindPC(arg1);
- if (arg2 == 9999)
- 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()));
- else
- 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()));
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Zeit: %d, Grund: %s", arg1,arg2,arg3);
- #endif
- LDESC->DelayedDisconnect(5);
- LDESC->ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du wirst in 5 Sekunden vom Server gekickt. Grund des Bannes: %s",arg3);
- }
- void CHARACTER::Ban_System_Unban(const char* arg1)
- {
- std::string anyone = arg1;
- std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
- while (anyne!=std::string::npos)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Du kannst keine Sonderzeichen benutzen.");
- return;
- }
- std::auto_ptr<SQLMsg> msg0(DBManager::instance().DirectQuery("SELECT * FROM player.player WHERE name = '%s'", arg1));
- if (msg0->Get()->uiNumRows == 0)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s existiert nicht.",arg1);
- return;
- }
- std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("SELECT * FROM player.player WHERE name = '%s'", arg1));
- if (msg->Get()->uiNumRows == 0)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s existiert nicht.",arg1);
- return;
- }
- 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));
- if (msg2->Get()->uiNumRows == 0)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s ist nicht gebannt.",arg1);
- return;
- }
- 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));
- 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));
- if (msg4->Get()->uiNumRows == 0)
- {
- return;
- }
- 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));
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s entbannt.",arg1);
- }
- void CHARACTER::Ban_System_IPBan(const char* arg1,const char* arg2)
- {
- LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(arg1);
- LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
- std::string anyone = arg1;
- std::string anytwo = arg2;
- std::size_t anyne = anyone.find_first_of("!?%&/()=\?'|");
- std::size_t anywo = anytwo.find_first_of("!?%&/()=\?'|\"");
- while (anyne!=std::string::npos || anywo!=std::string::npos)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst keine Sonderzeichen benutzen.");
- return;
- }
- const char* name_check;
- name_check = GetName();
- if (name_check == arg1)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst dich nicht selber Bannen.");
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler Name: %s", arg1);
- #endif
- return;
- }
- if (!LCHARACTER)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban System> Spieler %s ist nicht online.", arg1);
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban System Debug> Spieler Name: %s , Reason: %s", arg1,arg2);
- #endif
- return;
- }
- if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
- {
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System> Du kannst keine GM´s Bannen.");
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler Name: %s Grund: %s", arg1,arg2);
- #endif
- return;
- }
- 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));
- if (msg2->Get()->uiNumRows == 0)
- {
- return;
- }
- #ifdef _BANSYSTEM_DEBUG_
- ChatPacket(CHAT_TYPE_INFO, "<Ban IP System Debug> Spieler: %s. Grund %s", arg1,arg2);
- #endif
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement