void CreateTrackerList (void) { int a; ResetTrackerList (); if (!(a = FindArg ("-internal_tracker")) || atoi (pszArgList [a + 1])) { AddTracker (&d2xTracker); AddTracker (&kbTracker); } AddTrackersFromCmdLine (); }
void Tracker::LoadFromDB() { QueryResult *result = CharacterDatabase.Query( "SELECT `Id`, `AcctId`, `Name`, `IP_Address` FROM tracker" ); TrackedPlr * user; if( result != NULL ) { do { Field *fields = result->Fetch(); user = new TrackedPlr; user->Id = fields[0].GetUInt64(); user->AcctId = fields[1].GetUInt32(); user->Name = fields[2].GetString(); user->IP_Address = fields[3].GetString(); AddTracker(user, true); } while( result->NextRow() ); Log.Notice("Tracker", "%u trackers identified.", result->GetRowCount()); delete result; } }
void Tracker::CreateTracker(WorldSession * adder, const char * args) { if(!*args) return; char *pname = strtok((char*)args, " "); if(!pname) { if( adder != NULL ) sChatHandler.RedSystemMessage(adder, "No name specified."); return; } Player *toAdd = objmgr.GetPlayer((const char*)pname, false); if( toAdd && toAdd->GetSession() && toAdd->GetSession()->GetSocket() ) { WorldSession * toAddSession = toAdd->GetSession(); TrackedPlr *user = new TrackedPlr; user->Id = sTracker.GenerateID(); user->AcctId = toAddSession->GetAccountId(); user->Name = toAddSession->GetAccountName(); user->IP_Address = toAddSession->GetSocket()->GetIP(); AddTracker(user, false); char msg[128]; sprintf(msg, "%sTracker:|r User [%s] is now being tracked (Tracker ID: %u)", MSG_COLOR_CYAN, toAddSession->GetAccountName().c_str(), (uint32)user->Id); sWorld.SendGMWorldText( msg ); } else { if( adder != NULL ) sChatHandler.RedSystemMessage(adder, "Server was unable to handle your request, please check your syntax."); } }
void AddTrackersFromCmdLine (void) { int i, j, t; char szKwd [20]; tUdpAddress tracker; if ((t = FindArg ("-test_tracker"))) bTestTracker = 1; if (!(t = FindArg ("-num_trackers"))) return; if (!(i = atoi (pszArgList [t + 1]))) return; if (i > MAX_TRACKER_SERVERS) i = MAX_TRACKER_SERVERS; for (j = 0; j < i; j++) { sprintf (szKwd, "-tracker%d", j + 1); if (!(t = FindArg (szKwd))) continue; if (ParseIpAndPort (pszArgList [t + 1], &tracker)) AddTracker (&tracker); } }