17 if (!
sDatabase.RunQuery(res,
"SELECT categoryID, categoryName, description, published FROM invCategories"))
18 codelog(DATABASE__ERROR,
"Error in GetCategoryData query: %s.", res.
error.
c_str());
20 _log(DATABASE__RESULTS,
"GetCategoryData returned %u items", res.
GetRowCount());
36 " fittableNonSingleton,"
41 _log(DATABASE__RESULTS,
"GetGroupData returned %u items", res.
GetRowCount());
61 " t.chanceOfDuplicating,"
64 " LEFT JOIN invMetaTypes AS m USING (typeID)"))
67 _log(DATABASE__RESULTS,
"GetTypeData returned %u items", res.
GetRowCount());
72 if (!
sDatabase.RunQuery(res,
"SELECT typeID, typeName FROM invTypes WHERE groupID IN (SELECT groupID FROM invGroups WHERE categoryID = 16)"))
75 _log(DATABASE__RESULTS,
"GetSkillList returned %u items", res.
GetRowCount());
80 if (!
sDatabase.RunQuery(res,
"SELECT typeID, attributeID, valueInt, valueFloat FROM dgmTypeAttributes"))
81 codelog(DATABASE__ERROR,
"Error in GetTypeAttributes query: %s", res.
error.
c_str());
83 _log(DATABASE__RESULTS,
"GetTypeAttributes returned %u items", res.
GetRowCount());
88 if (!
sDatabase.RunQuery(res,
"SELECT corporationID, factionID FROM crpNPCCorporations" ))
89 codelog(DATABASE__ERROR,
"Error in LoadCorpFactionData query: %s", res.
error.
c_str());
91 _log(DATABASE__RESULTS,
"LoadCorpFactionData returned %u items", res.
GetRowCount());
96 if (!
sDatabase.RunQuery(res,
"SELECT entryTypeID, entryTypeName, entryTypeNameID FROM jnlEntryTypeIDs")) {
101 _log(DATABASE__RESULTS,
"GetEntryTypes returned %u items", res.
GetRowCount());
108 if (!
sDatabase.RunQuery(res,
"SELECT keyID, keyType, keyName, keyNameID FROM actKeyTypes")) {
113 _log(DATABASE__RESULTS,
"GetKeyMap returned %u items", res.
GetRowCount());
120 if (!
sDatabase.RunQuery(res,
"SELECT billTypeID, billTypeName, description FROM billTypes")) {
125 _log(DATABASE__RESULTS,
"GetBillTypes returned %u items", res.
GetRowCount());
140 " agt.corporationID,"
144 " FROM agtAgents AS agt"
145 " LEFT JOIN chrNPCCharacters AS chr ON chr.characterID = agt.agentID"
146 " LEFT JOIN bloodlineTypes AS bl ON bl.typeID = chr.typeID"
153 _log(DATABASE__RESULTS,
"GetAgents returned %u items", res.
GetRowCount());
160 "SELECT operandID, operandKey, description, format, arg1categoryID, arg2categoryID, resultCategoryID, pythonFormat FROM dgmOperands" )) {
165 _log(DATABASE__RESULTS,
"GetOperands returned %u items", res.
GetRowCount());
172 if (!
sDatabase.RunQuery(res,
"SELECT corporationID,factionID FROM crpNPCCorporations" )) {
182 if (!
sDatabase.RunQuery(res,
"SELECT factionID, COUNT(DISTINCT staStations.stationID) FROM crpNPCCorporations"
183 " LEFT JOIN staStations USING (corporationID)"
184 " GROUP BY factionID"))
196 if (!
sDatabase.RunQuery(res,
"SELECT factionID, COUNT(solarSystemID) FROM mapSolarSystems GROUP BY factionID"))
208 if (!
sDatabase.RunQuery(res,
"SELECT factionID,regionID FROM mapRegions WHERE factionID IS NOT NULL"))
219 if (!
sDatabase.RunQuery(res,
"SELECT factionID,constellationID FROM mapConstellations WHERE factionID IS NOT NULL" ))
230 if (!
sDatabase.RunQuery(res,
"SELECT factionID,solarSystemID FROM mapSolarSystems WHERE factionID IS NOT NULL"))
241 if (!
sDatabase.RunQuery(res,
"SELECT factionID,raceID FROM facRaces WHERE factionID IS NOT NULL"))
253 " crp.corporationName,"
254 " ncrp.corporationID,"
255 " ncrp.size, ncrp.extent, ncrp.solarSystemID,"
256 " ncrp.factionID, ncrp.sizeFactor, ncrp.stationCount, ncrp.stationSystemCount,"
257 " crp.stationID, crp.ceoID, chr.characterName AS ceoName"
258 " FROM crpNPCCorporations AS ncrp"
259 " LEFT JOIN crpCorporation AS crp ON ncrp.corporationID = crp.corporationID"
260 " LEFT JOIN chrNPCCharacters AS chr ON ceoID=chr.characterID"))
273 " divisionID, divisionName, description, leaderType, divisionNameID, leaderTypeID"
274 " FROM crpNPCDivisions" )) {
284 if (!
sDatabase.RunQuery(res,
"SELECT factionID, itemID FROM facSalvage")) {
285 codelog(DATABASE__ERROR,
"Error in GetSalvageGroups query: %s", res.
error.
c_str());
292 if (!
sDatabase.RunQuery(res,
"SELECT systemSec, roidID, percent FROM roidDistribution"))
299 "SELECT mss.solarSystemID, mss.solarSystemName, mss.constellationID, mss.regionID, mss.securityClass, md.security, mss.factionID"
300 " FROM mapSolarSystems AS mss"
301 " LEFT JOIN mapDenormalize AS md ON (md.itemID = mss.solarSystemID)"
309 "SELECT itemID, regionID, constellationID, solarSystemID, typeID, radius, x, y, z FROM mapDenormalize WHERE solarSystemID IS NOT NULL"))
315 if (!
sDatabase.RunQuery(res,
"SELECT agentID, locationID FROM agtAgents"))
316 codelog(DATABASE__ERROR,
"Error in GetAgentLocation query: %s", res.
error.
c_str());
322 codelog(DATABASE__ERROR,
"Error in GetMoonResouces query: %s", res.
error.
c_str());
329 "INSERT INTO sysSignatures"
330 " (sigID,sigItemID,dungeonType,sigName,systemID,sigTypeID,sigGroupID,scanGroupID,scanAttributeID,x,y,z)"
331 " VALUES ('%s', %u, %u, '%s', %u, %u, %u, %u, %u, %f, %f, %f)", \
334 _log(DATABASE__ERROR,
"SaveActiveDungeon - unable to save dungeon");
341 "SELECT sigID,sigItemID,dungeonType,sigName,systemID,sigTypeID,sigGroupID,scanGroupID,scanAttributeID,x,y,z"
342 " FROM sysSignatures"
343 " ORDER BY systemid")) {
344 _log(DATABASE__ERROR,
"Error in GetAnomalyList query: %s", res.
error.
c_str());
351 if (!
sDatabase.RunQuery(res,
"SELECT x,y,z FROM sysSignatures WHERE sigID = '%s'",
string.c_str()))
352 _log(DATABASE__ERROR,
"Error in GetAnomalyPos query: %s", res.
error.
c_str());
356 _log(DATABASE__MESSAGE,
"GetAnomalyPos query returned no items");
360 GPoint pos(row.GetDouble(0), row.GetDouble(1), row.GetDouble(2));
368 "SELECT sigTypeID, scanGroupID, sigGroupID, scanAttributeID, sigName, sigID, x, y, z"
369 " FROM sysSignatures"
370 " WHERE systemID = %u", systemID)) {
371 _log(DATABASE__ERROR,
"Error in GetSystemAnomalies query: %s", res.
error.
c_str());
381 if (!
sDatabase.RunQuery(res,
"SELECT regionID, factionID FROM mapRegions WHERE factionID != 0"))
382 _log(DATABASE__ERROR,
"Error in GetRegionFactionInfo query: %s", res.
error.
c_str());
386 if (!
sDatabase.RunQuery(res,
"SELECT regionID, ratFactionID FROM mapRegions WHERE ratFactionID != 0"))
387 _log(DATABASE__ERROR,
"Error in GetRegionFactionInfo query: %s", res.
error.
c_str());
391 if (!
sDatabase.RunQuery(res,
"SELECT shipClass, groupID, factionID FROM npcClassGroup"))
392 _log(DATABASE__ERROR,
"Error in GetFactionGroups query: %s", res.
error.
c_str());
396 if (!
sDatabase.RunQuery(res,
"SELECT type, sub, f, af, d, c, ac, bc, bs, h, o, cf, cd, cc, cbc, cbs FROM npcSpawnClass"))
397 _log(DATABASE__ERROR,
"Error in GetSpawnClasses query: %s", res.
error.
c_str());
403 std::string name =
"";
408 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
409 name =
"AND typeName LIKE '%Arch%'";
410 name =
"AND typeName NOT LIKE '%Cyber%'";
411 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
412 name =
"AND typeName NOT LIKE '%Arch%'";
413 name =
"AND typeName NOT LIKE '%Cyber%'";
417 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
418 name =
"AND typeName LIKE '%Elder%'";
419 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
420 name =
"AND typeName NOT LIKE '%Elder%'";
424 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
425 name =
"AND typeName LIKE '%Dire%'";
426 name =
"AND typeName NOT LIKE '%Outlaw%'";
427 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
428 name =
"AND typeName NOT LIKE '%Dire%'";
429 name =
"AND typeName NOT LIKE '%Outlaw%'";
433 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
434 name =
"AND typeName LIKE '%Loyal%'";
435 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
436 name =
"AND typeName NOT LIKE '%Loyal%'";
440 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
441 name =
"AND typeName LIKE '%Guardian%'";
442 name =
"AND typeName NOT LIKE '%Crook%'";
443 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
444 name =
"AND typeName NOT LIKE '%Guardian%'";
445 name =
"AND typeName NOT LIKE '%Crook%'";
449 if ((shipClass == 2) or (shipClass == 5) or (shipClass == 16) or (shipClass == 19)) {
450 name =
"AND typeName LIKE '%Strain%'";
451 }
else if ((shipClass == 1) or (shipClass == 4) or (shipClass == 15) or (shipClass == 18)) {
452 name =
"AND typeName NOT LIKE '%Strain%'";
457 if (!
sDatabase.RunQuery(res,
"SELECT typeID FROM invTypes WHERE groupID = %u %s ORDER BY typeID", groupID, name.c_str()))
458 _log(DATABASE__ERROR,
"Error in GetGroupTypeIDs query: %s", res.
error.
c_str());
465 sDatabase.RunQuery(err,
"DELETE FROM entity WHERE customInfo LIKE '%beltrat%'");
472 "INSERT INTO sysAsteroids (itemName,typeID,systemID,beltID,quantity,radius,x, y, z)"
473 " VALUES ('%s', %u, %u, %u, %f, %f, %f, %f, %f)",
482 "SELECT itemName, typeID, systemID, beltID, quantity, radius, x, y, z"
484 " WHERE itemID = %u", asteroidID)) {
485 _log(DATABASE__ERROR,
"Error in GetAsteroidData query: %s", res.
error.
c_str());
491 dbData.
itemID = asteroidID;
512 "SELECT itemID, itemName, typeID, systemID, beltID, quantity, radius, x, y, z"
514 " WHERE systemID = %u"
515 " AND beltID = %u", systemID, beltID)) {
516 _log(DATABASE__ERROR,
"Error in LoadSystemRoids query: %s", res.
error.
c_str());
520 _log(DATABASE__RESULTS,
"LoadSystemRoids returned %u items", res.
GetRowCount());
524 entry.
itemID = row.GetInt(0);
526 entry.
typeID = row.GetInt(2);
528 entry.
beltID = row.GetInt(4);
530 entry.
radius = row.GetDouble(6);
531 GPoint pos(row.GetDouble(7), row.GetDouble(8), row.GetDouble(9));
533 into.push_back(entry);
536 return !into.empty();
542 sDatabase.RunQuery(err,
"DELETE FROM sysAsteroids WHERE itemID = %u", asteroidID);
548 sDatabase.RunQuery(err,
"DELETE FROM sysAsteroids WHERE 1");
549 sDatabase.RunQuery(err,
"ALTER TABLE `sysAsteroids` auto_increment = 450000000");
556 "UPDATE sysAsteroids"
557 " SET quantity = %f,"
559 " WHERE itemID = %u",
562 _log(DATABASE__ERROR,
"SaveSystemRoids - unable to save roids - %s", err.
c_str());
568 std::ostringstream Inserts;
570 Inserts <<
"INSERT INTO sysAsteroids";
571 Inserts <<
" (itemID,itemName,typeID,systemID,beltID,quantity,radius,x, y, z)";
573 for (
auto cur : roids) {
575 Inserts <<
" VALUES ";
581 Inserts <<
"(" << cur.itemID <<
", '" << cur.itemName <<
"', " << cur.typeID <<
", " << systemID <<
", " << cur.beltID <<
", ";
582 Inserts << cur.quantity <<
", " << cur.radius <<
", " << std::to_string(cur.position.x) <<
", " << std::to_string(cur.position.y);
583 Inserts <<
", " << std::to_string(cur.position.z) <<
")";
588 Inserts <<
"ON DUPLICATE KEY UPDATE ";
589 Inserts <<
"quantity=VALUES(quantity), ";
590 Inserts <<
"radius=VALUES(radius)";
594 _log(DATABASE__ERROR,
"SaveSystemRoids - unable to save roids - %s", err.
c_str());
600 if (!
sDatabase.RunQuery(res,
"SELECT locationID, wormholeClassID FROM mapLocationWormholeClasses"))
601 _log(DATABASE__ERROR,
"Error in GetWHSystemClass query: %s", res.
error.
c_str());
606 if (!
sDatabase.RunQuery(res,
"SELECT dunEntryID, dunEntryName, xpos, ypos, zpos FROM dunEntryData"))
607 _log(DATABASE__ERROR,
"Error in GetDunRoomData query: %s", res.
error.
c_str());
612 if (!
sDatabase.RunQuery(res,
"SELECT d.dunGroupID, d.itemTypeID, d.itemGroupID, t.typeName, t.groupID, g.categoryID, t.radius, d.xpos, d.ypos, d.zpos"
613 " FROM dunGroupData AS d"
614 " LEFT JOIN invTypes AS t ON d.itemTypeID = t.typeID"
615 " LEFT JOIN invGroups AS g ON g.groupID = t.groupID" ))
617 _log(DATABASE__ERROR,
"Error in GetDunGroupData query: %s", res.
error.
c_str());
623 if (!
sDatabase.RunQuery(res,
"SELECT dunRoomID, dunGroupID, xpos, ypos, zpos FROM dunRoomData"))
624 _log(DATABASE__ERROR,
"Error in GetDunRoomData query: %s", res.
error.
c_str());
629 if (!
sDatabase.RunQuery(res,
"SELECT dunRoomID, dunRoomType, dunRoomCategory, dunRoomSpawnID, dunRoomSpawnType FROM dunRoomInfo"))
630 _log(DATABASE__ERROR,
"Error in GetDunRoomInfo query: %s", res.
error.
c_str());
635 if (!
sDatabase.RunQuery(res,
"SELECT dunRoomSpawnID, dunRoomSpawnType, xpos, ypos, zpos FROM dunRoomSpawnInfo"))
636 _log(DATABASE__ERROR,
"Error in GetDunSpawnInfo query: %s", res.
error.
c_str());
641 if (!
sDatabase.RunQuery(res,
"SELECT dunTemplateID, dunTemplateName, dunEntryID, dunSpawnID, dunRoomID FROM dunTemplates"))
642 _log(DATABASE__ERROR,
"Error in GetDunTemplates query: %s", res.
error.
c_str());
650 "SELECT systemID, state, dunTemplateID, dunExpiryTime, xpos, ypos, zpos"
652 " WHERE systemID = %u", systemID))
654 _log(DATABASE__ERROR,
"Error in GetSavedDungeons query: %s", res.
error.
c_str());
658 _log(DATABASE__RESULTS,
"GetSavedDungeons returned %u items", res.
GetRowCount());
663 entry.
state = row.GetInt(1);
667 entry.
x = row.GetInt(4);
668 entry.
y = row.GetInt(5);
669 entry.
z = row.GetInt(6);
670 into.push_back(entry);
673 return !into.empty();
680 "INSERT INTO dunActive"
681 " (systemID, dungeonID, state, dunTemplateID, dunExpiryTime, xpos, ypos, zpos)"
683 "(%u, %u, %u, %u, %li, %f, %f, %f)",
686 _log(DATABASE__ERROR,
"SaveActiveDungeon - unable to save dungeon: %s", err.
c_str());
693 sDatabase.RunQuery(err,
"DELETE FROM dunActive WHERE 1");
694 sDatabase.RunQuery(err,
"DELETE FROM sysSignatures WHERE 1");
696 sDatabase.RunQuery(err,
"DELETE FROM entity_attributes WHERE itemID IN (SELECT itemID FROM entity WHERE customInfo LIKE 'Dungeon%%')");
697 sDatabase.RunQuery(err,
"DELETE FROM entity WHERE customInfo LIKE 'Dungeon%%'");
703 sDatabase.RunQuery(err,
"DELETE FROM dunActive WHERE systemID = %u", systemID);
704 sDatabase.RunQuery(err,
"DELETE FROM sysSignatures WHERE systemID = %u", systemID);
706 sDatabase.RunQuery(err,
"DELETE FROM entity_attributes WHERE itemID IN (SELECT itemID FROM entity WHERE locationID = %u AND customInfo LIKE 'Dungeon%%')", systemID);
707 sDatabase.RunQuery(err,
"DELETE FROM entity WHERE locationID = %u AND customInfo LIKE 'Dungeon%%'", systemID);
717 "SELECT pcShots, pcMissiles, ramJobs, shipsSalvaged, pcBounties, npcBounties, oreMined, iskMarket, probesLaunched, sitesScanned"
718 " FROM srvStatisticData"
719 " WHERE timeStamp > %li", starttime))
720 codelog(DATABASE__ERROR,
"Error in GetStatisticData query: %s", res.
error.
c_str());
727 "INSERT INTO srvStatisticData"
728 " (timeStamp, timeSpan, pcShots, pcMissiles, ramJobs, shipsSalvaged, pcBounties, npcBounties, oreMined, iskMarket, probesLaunched, sitesScanned)"
730 "(%f, %u, %u, %u, %u, %u, %f, %f, %f, %f, %u, %u)",
GetFileTimeNow(),
731 data.
span, data.
pcShots, data.
pcMissiles, data.
ramJobs, data.
shipsSalvaged, data.
pcBounties, data.
npcBounties, data.
oreMined, data.
iskMarket, data.
probesLaunched, data.
sitesScanned ))
733 _log(DATABASE__ERROR,
"SaveStatisticData - unable to save data: %s", err.
c_str());
741 "UPDATE srvStatisticHistory"
742 " SET pcShots=%u, pcMissiles=%u, ramJobs=%u, shipsSalvaged=%u, pcBounties=%f, npcBounties=%f, oreMined=%f, iskMarket=%f, probesLaunched=%u, sitesScanned=%u"
747 _log(DATABASE__ERROR,
"srvStatisticHistory - unable to save data: %s", err.
c_str());
static void LoadFactionSolarSystems(std::map< int32, PyRep * > &into)
static void GetSpawnClasses(DBQueryResult &res)
static void GetTypeData(DBQueryResult &res)
static void LoadCorpFactions(std::map< uint32, uint32 > &into)
static PyDict * LoadNPCCorpInfo()
const char * GetText(uint32 index) const
static void GetFactionGroups(DBQueryResult &res)
static void GetStatisticData(DBQueryResult &res, int64 starttime)
#define _log(type, fmt,...)
static void SaveActiveDungeon(Dungeon::ActiveData &dun)
static PyObjectEx * GetAgents()
PyObjectEx * DBResultToCRowset(DBQueryResult &result)
int32 GetInt(uint32 index) const
static void GetDunRoomInfo(DBQueryResult &res)
static void GetDunRoomData(DBQueryResult &res)
static void LoadFactionSystemCounts(std::map< uint32, uint32 > &into)
double GetDouble(uint32 index) const
void GetSystemAnomalies(uint32 systemID, DBQueryResult &res)
static GPoint GetAnomalyPos(std::string &string)
static void GetGroupData(DBQueryResult &res)
static void GetAgentLocation(DBQueryResult &res)
static void GetDunSpawnInfo(DBQueryResult &res)
static void DeleteSpawnedRats()
static void GetWHSystemClass(DBQueryResult &res)
static void LoadFactionRaces(std::map< int32, PyRep * > &into)
static void GetDunGroupData(DBQueryResult &res)
static void GetStaticData(DBQueryResult &res)
PyObjectEx * DBResultToCIndexedRowset(DBQueryResult &result, const char *key)
static PyObject * GetNPCDivisions()
static void LoadFactionConstellations(std::map< int32, PyRep * > &into)
static void LoadFactionRegions(std::map< int32, PyRep * > &into)
bool GetRow(DBResultRow &into)
void GetAnomalyList(DBQueryResult &res)
static void GetSalvageGroups(DBQueryResult &res)
static void GetRegionFaction(DBQueryResult &res)
const char * c_str() const
void DBResultToIntIntlistDict(DBQueryResult &result, std::map< int32, PyRep * > &into)
PyDict * DBResultToIntRowDict(DBQueryResult &result, uint32 key_index, const char *type)
static void GetDunTemplates(DBQueryResult &res)
#define codelog(type, fmt,...)
static const GPoint NULL_ORIGIN(0, 0, 0)
static void CreateRoidItemID(ItemData &idata, AsteroidData &adata)
PyObject * DBResultToRowset(DBQueryResult &result)
static void GetOreBySSC(DBQueryResult &res)
static void GetTypeAttributes(DBQueryResult &res)
static void SaveStatisticData(StatisticData &data)
static void LoadNPCCorpFactionData(DBQueryResult &res)
void SaveAnomaly(CosmicSignature &sig)
static bool GetAsteroidData(uint32 asteroidID, AsteroidData &dbData)
void RemoveAsteroid(uint32 asteroidID)
static PyObjectEx * GetOperands()
static void ClearDungeons()
void SaveSystemRoids(uint32 systemID, std::vector< AsteroidData > &roids)
static void GetCategoryData(DBQueryResult &res)
static void GetGroupTypeIDs(uint8 shipClass, uint16 groupID, uint32 factionID, DBQueryResult &res)
static void GetDunEntryData(DBQueryResult &res)
static void GetSkillList(DBQueryResult &res)
static PyObject * GetBillTypes()
static void GetSystemData(DBQueryResult &res)
static void GetMoonResouces(DBQueryResult &res)
static bool GetSavedDungeons(uint32 systemID, std::vector< Dungeon::ActiveData > &into)
static void LoadFactionStationCounts(std::map< uint32, uint32 > &into)
static PyObject * GetEntryTypes()
void SaveRoid(AsteroidData &data)
bool LoadSystemRoids(uint32 systemID, uint32 &beltID, std::vector< AsteroidData > &into)
static void UpdateStatisticHistory(StatisticData &data)
static PyObject * GetKeyMap()
static void GetRegionRatFaction(DBQueryResult &res)
void DBResultToUIntUIntDict(DBQueryResult &result, std::map< uint32, uint32 > &into)