Skip to content

Instantly share code, notes, and snippets.

@AgentRev
Last active March 19, 2017 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AgentRev/4d9c9edc2d3ba0522d8c522f197d22d3 to your computer and use it in GitHub Desktop.
Save AgentRev/4d9c9edc2d3ba0522d8c522f197d22d3 to your computer and use it in GitHub Desktop.
A3W extDB3 ini - untested
[Default]
Version = 1
;; Used incase there is ever a breaking change, or to inform user in log about a new feature.
Strip Chars = /\|;{}<>
;; List of characters to strip out
Strip Chars Mode = 0
;; 0 = Strip Bad Chars, 1 = Strip + Log Bad Chars, 2 = Return Error & Log Bad Chars
;; Note: Logging on works when sending data to database.
; --------------------------------------------------------------------------------
; DB INFO
; --------------------------------------------------------------------------------
[getDBVersion]
SQL1_1 = SELECT IFNULL ((SELECT Value FROM DBInfo WHERE Name = 'Version'), '2.0');
; --------------------------------------------------------------------------------
; SERVER INSTANCE & MAP
; --------------------------------------------------------------------------------
[checkServerInstance]
SQL1_1 = SELECT IF ((SELECT 1 FROM ServerInstance WHERE ID = ?), 'true', 'false');
SQL1_INPUTS = 1
[insertServerInstance]
SQL1_1 = INSERT INTO ServerInstance SET ID = ?;
SQL1_INPUTS = 1
[getServerMapID]
SQL1_1 = SELECT IFNULL ((SELECT ID FROM ServerMap WHERE WorldName = ? AND Environment = ?), 0);
SQL1_INPUTS = 1,2
[insertServerMap]
SQL1_1 = INSERT INTO ServerMap SET WorldName = ?, Environment = ?;
SQL1_INPUTS = 1,2
; --------------------------------------------------------------------------------
; PLAYER SAVING
; --------------------------------------------------------------------------------
[checkPlayerSave]
SQL1_1 = SELECT IF ((SELECT 1 FROM PlayerSave WHERE PlayerUID = ? AND MapID = ?), 'true', 'false');
SQL1_INPUTS = 1,2
[checkPlayerSaveXMap]
SQL1_1 = SELECT IF ((SELECT 1 FROM PlayerSave ps INNER JOIN (SELECT ID AS ServerMapID FROM ServerMap WHERE Environment = ?) sm
SQL1_2 = WHERE PlayerUID = ? AND ps.MapID = sm.ServerMapID GROUP BY 1), 'true', 'false');
SQL1_INPUTS = 2,1
[getPlayerSave]
SQL1_1 = SELECT $CUSTOM_3$ FROM PlayerSave WHERE PlayerUID = '$CUSTOM_1$' AND MapID = $CUSTOM_2$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[getPlayerSaveXMap]
SQL1_1 = SELECT $CUSTOM_3$ FROM PlayerSave ps INNER JOIN (SELECT ID AS ServerMapID FROM ServerMap WHERE Environment = '$CUSTOM_2$') sm
SQL1_2 = WHERE PlayerUID = '$CUSTOM_1$' AND ps.MapID = sm.ServerMapID
SQL1_3 = ORDER BY LastModified DESC LIMIT 1;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[getPlayerBankMoney]
SQL1_1 = SELECT BankMoney FROM PlayerInfo WHERE UID = ?;
SQL1_INPUTS = 1
[getPlayerBounty]
SQL1_1 = SELECT Bounty, BountyKills FROM PlayerInfo WHERE UID = ?;
SQL1_INPUTS = 1
[getTimeSinceServerSwitch]
SQL1_1 = SELECT TIMESTAMPDIFF(SECOND, LastModified, NOW()), LastServerID FROM PlayerSave
SQL1_2 = WHERE PlayerUID = ? AND MapID = ? AND LastServerID != ? AND LastServerID IS NOT NULL;
SQL1_INPUTS = 1,2,3
[getTimeSinceServerSwitchXMap]
SQL1_1 = SELECT TIMESTAMPDIFF(SECOND, LastModified, NOW()), LastServerID, WorldName
SQL1_2 = FROM PlayerSave ps INNER JOIN (SELECT ID AS ServerMapID, WorldName FROM ServerMap WHERE Environment = ?) sm
SQL1_3 = WHERE PlayerUID = ? AND ps.MapID = sm.ServerMapID AND LastServerID != ? AND LastServerID IS NOT NULL
SQL1_4 = ORDER BY LastModified DESC LIMIT 1;
SQL1_INPUTS = 2,1,3
[insertOrUpdatePlayerInfo]
SQL1_1 = INSERT INTO PlayerInfo SET UID = '$CUSTOM_1$', BattlEyeGUID = REPLACE('$CUSTOM_2$','"',''), $CUSTOM_3$
SQL1_2 = ON DUPLICATE KEY UPDATE $CUSTOM_4$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 1-BEGUID, 2-STRIP, 3-STRIP
Prepared Statement = false
[insertOrUpdatePlayerSave]
SQL1_1 = INSERT INTO PlayerSave SET PlayerUID = '$CUSTOM_1$', MapID = $CUSTOM_2$, LastServerID = $CUSTOM_3$, CreationDate = NOW(), $CUSTOM_4$
SQL1_2 = ON DUPLICATE KEY UPDATE LastServerID = VALUES(LastServerID), $CUSTOM_5$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP-MYSQL_ESCAPE, 4-STRIP, 5-STRIP
Prepared Statement = false
Strip Chars = /|;{}<>
[deletePlayerSave]
SQL1_1 = DELETE FROM PlayerSave WHERE PlayerUID = ? AND MapID = ?;
SQL1_INPUTS = 1,2
[deletePlayerSaveXMap]
SQL1_1 = DELETE ps FROM PlayerSave ps INNER JOIN (SELECT ID AS ServerMapID FROM ServerMap WHERE Environment = ?) sm
SQL1_2 = WHERE PlayerUID = ? AND ps.MapID = sm.ServerMapID;
SQL1_INPUTS = 2,1
[getPlayerStats]
SQL1_1 = SELECT $CUSTOM_2$ FROM PlayerStats WHERE PlayerUID = '$CUSTOM_1$';
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP
Prepared Statement = false
[insertOrUpdatePlayerStats]
SQL1_1 = INSERT INTO PlayerStats SET PlayerUID = '$CUSTOM_1$', $CUSTOM_2$ = $CUSTOM_3$
SQL1_2 = ON DUPLICATE KEY UPDATE $CUSTOM_2$ = $CUSTOM_2$ + $CUSTOM_3$;
SQL2_1 = INSERT INTO PlayerStatsMap SET PlayerUID = '$CUSTOM_1$', ServerID = $CUSTOM_2$, MapID = $CUSTOM_3$, $CUSTOM_4$ = $CUSTOM_5$
SQL2_2 = ON DUPLICATE KEY UPDATE $CUSTOM_4$ = $CUSTOM_4$ + $CUSTOM_5$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 4-STRIP-MYSQL_ESCAPE, 5-STRIP-MYSQL_ESCAPE
SQL2_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP-MYSQL_ESCAPE, 4-STRIP-MYSQL_ESCAPE, 5-STRIP-MYSQL_ESCAPE
Prepared Statement = false
; --------------------------------------------------------------------------------
; PRIVATE STORAGE
; --------------------------------------------------------------------------------
[getPlayerStorage]
SQL1_1 = SELECT $CUSTOM_3$ FROM PlayerStorage WHERE PlayerUID = '$CUSTOM_1$' AND MapID = $CUSTOM_2$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[getPlayerStorageXMap]
SQL1_1 = SELECT $CUSTOM_3$ FROM PlayerStorage ps INNER JOIN (SELECT ID AS ServerMapID FROM ServerMap WHERE Environment = '$CUSTOM_2$') sm
SQL1_2 = WHERE PlayerUID = '$CUSTOM_1$' AND ps.MapID = sm.ServerMapID
SQL1_3 = ORDER BY LastModified DESC LIMIT 1;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[insertOrUpdatePlayerStorage]
SQL1_1 = INSERT INTO PlayerStorage SET PlayerUID = '$CUSTOM_1$', MapID = $CUSTOM_2$, CreationDate = NOW(), $CUSTOM_3$
SQL1_2 = ON DUPLICATE KEY UPDATE $CUSTOM_4$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP, 4-STRIP
Prepared Statement = false
; --------------------------------------------------------------------------------
; WARCHEST
; --------------------------------------------------------------------------------
[getWarchestMoney]
SQL1_1 = SELECT WarchestMoneyBLUFOR, WarchestMoneyOPFOR FROM ServerInstance WHERE ID = ?;
SQL1_INPUTS = 1
[updateWarchestMoney]
SQL1_1 = UPDATE ServerInstance SET WarchestMoneyBLUFOR = ?, WarchestMoneyOPFOR = ? WHERE ID = ?;
SQL1_INPUTS = 2,3,1
; --------------------------------------------------------------------------------
; SERVER TIME
; --------------------------------------------------------------------------------
[getServerTime]
SQL1_1 = SELECT DayTime, Fog, Overcast, Rain, Wind FROM ServerTime WHERE ServerID = ? AND MapID = ?;
SQL1_INPUTS = 1,2
[insertOrUpdateServerTime]
SQL1_1 = INSERT INTO ServerTime SET ServerID = ?, MapID = ?, DayTime = ?, Fog = ?, Overcast = ?, Rain = ?, Wind = ?
SQL1_2 = ON DUPLICATE KEY UPDATE DayTime = VALUES(DayTime), Fog = VALUES(Fog), Overcast = VALUES(Overcast), Rain = VALUES(Rain), Wind = VALUES(Wind);
SQL1_INPUTS = 1,2,3,4,5,6,7
; --------------------------------------------------------------------------------
; OBJECT SAVING
; --------------------------------------------------------------------------------
[getServerObjects]
SQL1_1 = SELECT CONCAT('"',ID,'"') $CUSTOM_3$ FROM ServerObjects WHERE ServerID = $CUSTOM_1$ AND MapID = $CUSTOM_2$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[newServerObject]
SQL1_1 = INSERT INTO ServerObjects SET ServerID = ?, MapID = ?, CreationDate = NOW();
SQL2_1 = SELECT CONCAT('"',LAST_INSERT_ID(),'"');
SQL1_INPUTS = 1,2
[updateServerObject]
SQL1_1 = UPDATE ServerObjects SET $CUSTOM_2$ WHERE ID = $CUSTOM_1$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP
Prepared Statement = false
[deleteServerObjects]
SQL1_1 = DELETE FROM ServerObjects WHERE ID IN ($CUSTOM_1$);
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE
Prepared Statement = false
[deleteExpiredServerObjects]
SQL1_1 = DELETE FROM ServerObjects WHERE ServerID = ? AND MapID = ?
SQL1_2 = AND ((? > 0 AND TIMESTAMPDIFF(HOUR, LastInteraction, NOW()) > ?)
SQL1_3 = OR (? <= 0 AND Locked < 1 AND Deployable < 1)
SQL1_4 = OR Damage >= 1);
SQL1_INPUTS = 1,2,3,3,4
; --------------------------------------------------------------------------------
; VEHICLE SAVING
; --------------------------------------------------------------------------------
[getServerVehicles]
SQL1_1 = SELECT CONCAT('"',ID,'"') $CUSTOM_3$ FROM ServerVehicles WHERE ServerID = $CUSTOM_1$ AND MapID = $CUSTOM_2$ AND Parked < 1;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[newServerVehicle]
SQL1_1 = INSERT INTO ServerVehicles SET ServerID = ?, MapID = ?, CreationDate = NOW();
SQL2_1 = SELECT CONCAT('"',LAST_INSERT_ID(),'"');
SQL1_INPUTS = 1,2
[updateServerVehicle]
SQL1_1 = UPDATE ServerVehicles SET $CUSTOM_2$ WHERE ID = $CUSTOM_1$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP
Prepared Statement = false
Strip Chars = /|;{}<>
[deleteServerVehicles]
SQL1_1 = DELETE FROM ServerVehicles WHERE ID IN ($CUSTOM_1$);
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE
Prepared Statement = false
[deleteExpiredServerVehicles]
SQL1_1 = DELETE FROM ServerVehicles WHERE ServerID = ? AND MapID = ? AND Parked < 1
SQL1_2 = AND ((? > 0 AND TIMESTAMPDIFF(HOUR, CreationDate, NOW()) > ?)
SQL1_3 = OR (? > 0 AND TIMESTAMPDIFF(HOUR, LastUsed, NOW()) > ?)
SQL1_4 = OR Damage >= 0.99);
SQL1_INPUTS = 1,2,3,3,4,4
[getParkedVehicles]
SQL1_1 = SELECT CONCAT('"',ID,'"') $CUSTOM_3$ FROM ServerVehicles sv INNER JOIN (SELECT ID AS ServerMapID FROM ServerMap WHERE Environment = '$CUSTOM_2$') sm
SQL1_2 = WHERE OwnerUID = '"$CUSTOM_1$"' AND Parked > 0 AND sv.MapID = sm.ServerMapID;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
; --------------------------------------------------------------------------------
; MINE SAVING
; --------------------------------------------------------------------------------
[getServerMines]
SQL1_1 = SELECT CONCAT('"',ID,'"') $CUSTOM_3$ FROM ServerMines WHERE ServerID = $CUSTOM_1$ AND MapID = $CUSTOM_2$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP-MYSQL_ESCAPE, 3-STRIP
Prepared Statement = false
[newServerMine]
SQL1_1 = INSERT INTO ServerMines SET ServerID = ?, MapID = ?, CreationDate = NOW();
SQL2_1 = SELECT CONCAT('"',LAST_INSERT_ID(),'"');
SQL1_INPUTS = 1,2
[updateServerMine]
SQL1_1 = UPDATE ServerMines SET $CUSTOM_2$ WHERE ID = $CUSTOM_1$;
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE, 2-STRIP
Prepared Statement = false
[deleteServerMines]
SQL1_1 = DELETE FROM ServerMines WHERE ID IN ($CUSTOM_1$);
SQL1_INPUTS = 1-STRIP-MYSQL_ESCAPE
Prepared Statement = false
[deleteExpiredServerMines]
SQL1_1 = DELETE FROM ServerMines WHERE ServerID = ? AND MapID = ?
SQL1_2 = AND (? > 0 AND TIMESTAMPDIFF(HOUR, LastInteraction, NOW()) > ?);
SQL1_INPUTS = 1,2,3,3
; --------------------------------------------------------------------------------
; LOGGING
; --------------------------------------------------------------------------------
[addAdminLog]
SQL1_1 = INSERT INTO AdminLog (ServerID, PlayerName, PlayerUID, BattlEyeGUID, ActionType, ActionValue)
SQL1_2 = VALUES (?, ?, ?, REPLACE(?,'"',''), ?, ?);
SQL1_INPUTS = 1,2,3, 3-BEGUID, 4-STRING, 5-STRING
[addAntihackLog]
SQL1_1 = INSERT INTO AntihackLog (ServerID, PlayerName, PlayerUID, BattlEyeGUID, HackType, HackValue)
SQL1_2 = VALUES (?, ?, ?, REPLACE(?,'"',''), ?, ?);
SQL1_INPUTS = 1,2,3, 3-BEGUID, 4-STRING, 5-STRING
[getAntihackEntry]
SQL1_1 = SELECT CONCAT('"',PlayerName,'"'), HackType FROM AntihackLog WHERE PlayerUID = ? AND KickOnJoin > 0 LIMIT 1;
SQL1_INPUTS = 1
[addBankTransferLog]
SQL1_1 = INSERT INTO BankTransferLog (ServerID, SenderName, SenderUID, SenderSide, RecipientName, RecipientUID, RecipientSide, Amount, Fee)
SQL1_2 = VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);
SQL1_INPUTS = 1,2,3,4,5,6,7,8,9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment