forked from Simnation/Main
ed
This commit is contained in:
parent
88ffeb3375
commit
87623c8379
27 changed files with 2865 additions and 1705 deletions
Binary file not shown.
|
@ -0,0 +1,178 @@
|
|||
|
||||
if (GetResourceState("oxmysql") == "missing") then return end
|
||||
|
||||
local tableName, colName = nil, nil
|
||||
local function GetOwnedVehiclesTableName()
|
||||
if (tableName ~= nil) then
|
||||
return tableName
|
||||
end
|
||||
|
||||
tableName = (GetResourceState("es_extended") ~= "missing") and "owned_vehicles" or "player_vehicles"
|
||||
return tableName
|
||||
end
|
||||
local function GetStoredColumnName()
|
||||
if (colName ~= nil) then
|
||||
return colName
|
||||
end
|
||||
|
||||
colName = (GetResourceState("es_extended") ~= "missing") and "stored" or "state"
|
||||
return colName
|
||||
end
|
||||
|
||||
local oxmysql = exports["oxmysql"]
|
||||
|
||||
local function DoesColumnExist(colName)
|
||||
return oxmysql:scalar_async([[
|
||||
SELECT COUNT(*) FROM `INFORMATION_SCHEMA`.`COLUMNS`
|
||||
WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = ? AND `COLUMN_NAME` = ?;
|
||||
]], { "vehicle_parking", colName }) > 0
|
||||
end
|
||||
|
||||
Storage.Create = function()
|
||||
oxmysql:update_async([[
|
||||
CREATE TABLE IF NOT EXISTS `vehicle_parking` (
|
||||
`id` varchar(16) NOT NULL,
|
||||
`model` int(11) NOT NULL,
|
||||
`type` varchar(16) NOT NULL,
|
||||
`status` text NOT NULL,
|
||||
`tuning` text NOT NULL,
|
||||
`extraValues` text NOT NULL DEFAULT '[]',
|
||||
`stateBags` longtext NOT NULL DEFAULT '[]',
|
||||
`bucket` int(11) NOT NULL DEFAULT '0',
|
||||
`posX` float NOT NULL,
|
||||
`posY` float NOT NULL,
|
||||
`posZ` float NOT NULL,
|
||||
`rotX` float NOT NULL,
|
||||
`rotY` float NOT NULL,
|
||||
`rotZ` float NOT NULL,
|
||||
`lastUpdate` int(11) NOT NULL DEFAULT '0',
|
||||
`initialPlayer` varchar(50),
|
||||
`lastPlayer` varchar(50),
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
]])
|
||||
|
||||
-- v3 backwards compatibility
|
||||
if (not DoesColumnExist("bucket")) then
|
||||
oxmysql:update_async([[
|
||||
ALTER TABLE `vehicle_parking`
|
||||
ADD COLUMN `bucket` INT(11) NOT NULL DEFAULT 0 AFTER `stateBags`;
|
||||
]])
|
||||
end
|
||||
if (not DoesColumnExist("initialPlayer")) then
|
||||
oxmysql:update_async([[
|
||||
ALTER TABLE `vehicle_parking`
|
||||
ADD COLUMN `initialPlayer` varchar(50) AFTER `lastUpdate`;
|
||||
]])
|
||||
end
|
||||
if (not DoesColumnExist("lastPlayer")) then
|
||||
oxmysql:update_async([[
|
||||
ALTER TABLE `vehicle_parking`
|
||||
ADD COLUMN `lastPlayer` varchar(50) AFTER `initialPlayer`;
|
||||
]])
|
||||
end
|
||||
if (not DoesColumnExist("extraValues")) then
|
||||
oxmysql:update_async([[
|
||||
ALTER TABLE `vehicle_parking`
|
||||
ADD COLUMN `extraValues` TEXT NOT NULL DEFAULT '[]' AFTER `tuning`;
|
||||
]])
|
||||
end
|
||||
oxmysql:update_async([[
|
||||
ALTER TABLE `vehicle_parking`
|
||||
MODIFY COLUMN `stateBags` longtext NOT NULL DEFAULT '[]';
|
||||
]])
|
||||
end
|
||||
|
||||
Storage.GetAllVehicles = function()
|
||||
return oxmysql:query_async([[
|
||||
SELECT `id`, `model`, `type`, `status`, `tuning`, `extraValues`, `stateBags`, `bucket`, `posX`, `posY`, `posZ`, `rotX`, `rotY`, `rotZ`, `lastUpdate`, `initialPlayer`, `lastPlayer`
|
||||
FROM `vehicle_parking`;
|
||||
]])
|
||||
end
|
||||
|
||||
Storage.DeleteById = function(id)
|
||||
oxmysql:update([[
|
||||
DELETE FROM `vehicle_parking`
|
||||
WHERE `id` = ?;
|
||||
]], { id })
|
||||
end
|
||||
|
||||
Storage.DeleteByIds = function(formattedIds)
|
||||
oxmysql:update(([[
|
||||
DELETE FROM `vehicle_parking`
|
||||
WHERE `id` IN (%s);
|
||||
]]):format(formattedIds))
|
||||
end
|
||||
|
||||
Storage.StoreVehicleInGarage = function(params)
|
||||
oxmysql:update(([[
|
||||
UPDATE `%s` SET `%s` = 1
|
||||
WHERE `plate` = ? OR `plate` = ?;
|
||||
]]):format(GetOwnedVehiclesTableName(), GetStoredColumnName()), params)
|
||||
end
|
||||
|
||||
Storage.InsertVehicle = function(params)
|
||||
oxmysql:insert([[
|
||||
INSERT INTO `vehicle_parking` (`id`, `model`, `type`, `status`, `tuning`, `extraValues`, `stateBags`, `bucket`, `posX`, `posY`, `posZ`, `rotX`, `rotY`, `rotZ`, `lastUpdate`, `initialPlayer`, `lastPlayer`)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
|
||||
]], params)
|
||||
end
|
||||
|
||||
Storage.UpdateVehicle = function(params)
|
||||
oxmysql:update([[
|
||||
UPDATE `vehicle_parking`
|
||||
SET `status` = ?, `tuning` = ?, `extraValues` = ?,
|
||||
`stateBags` = ?,
|
||||
`bucket` = ?,
|
||||
`posX` = ?, `posY` = ?, `posZ` = ?,
|
||||
`rotX` = ?, `rotY` = ?, `rotZ` = ?,
|
||||
`lastUpdate` = ?,
|
||||
`lastPlayer` = ?
|
||||
WHERE `id` = ?;
|
||||
]], params)
|
||||
end
|
||||
|
||||
Storage.UpdateBucket = function(bucket, id)
|
||||
oxmysql:update([[
|
||||
UPDATE `vehicle_parking`
|
||||
SET `bucket` = ?
|
||||
WHERE `id` = ?;
|
||||
]], { bucket, id })
|
||||
end
|
||||
|
||||
Storage.UpdateStatus = function(status, id)
|
||||
oxmysql:update([[
|
||||
UPDATE `vehicle_parking`
|
||||
SET `status` = ?
|
||||
WHERE `id` = ?;
|
||||
]], { status, id })
|
||||
end
|
||||
|
||||
Storage.UpdatePosition = function(position, rotation, id)
|
||||
oxmysql:update([[
|
||||
UPDATE `vehicle_parking`
|
||||
SET `posX` = ?, `posY` = ?, `posZ` = ?,
|
||||
`rotX` = ?, `rotY` = ?, `rotZ` = ?,
|
||||
WHERE `id` = ?;
|
||||
]], { position.x, position.y, position.z, rotation.x, rotation.y, rotation.z, id })
|
||||
end
|
||||
|
||||
Storage.UpdateStateBags = function(params)
|
||||
oxmysql:update([[
|
||||
UPDATE `vehicle_parking`
|
||||
SET `stateBags` = ?
|
||||
WHERE `id` = ?;
|
||||
]], params)
|
||||
end
|
||||
|
||||
Storage.IsVehicleOwned = function(params)
|
||||
return oxmysql:scalar_async(([[
|
||||
SELECT `plate`
|
||||
FROM `%s`
|
||||
WHERE `plate` = ? OR `plate` = ?;
|
||||
]]):format(GetOwnedVehiclesTableName()), params)
|
||||
end
|
||||
|
||||
Storage.DeleteAllVehicles = function()
|
||||
oxmysql:update("DELETE FROM `vehicle_parking`;")
|
||||
end
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue