forked from Simnation/Main
ed
This commit is contained in:
parent
a2990fe815
commit
30bf7c8604
120 changed files with 0 additions and 0 deletions
244
resources/[inventory]/tgiann-inventory/server/commands.lua
Normal file
244
resources/[inventory]/tgiann-inventory/server/commands.lua
Normal file
|
@ -0,0 +1,244 @@
|
|||
local adminPerm = config.tgiannServer and { "tgi" } or config.framework == "qb" and "god" or "admin"
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.giveitem, "Give An Item (Admin Only)", { { name = "id", help = "Player ID" }, { name = "item", help = "Name of the item (not a label)" }, { name = "amount", help = "Amount of items" } }, false, function(source, args)
|
||||
local src = source
|
||||
local id = tonumber(args[1])
|
||||
local Player = config.tgiannServer and tgiCore.getPlayerById(id) or tgiCore.getPlayer(id)
|
||||
local amount = tonumber(args[3]) or 1
|
||||
local itemData = itemList[tostring(args[2]):lower()]
|
||||
if not Player then return tgiCore.notif(src, "Player Offline", "error") end
|
||||
local targetSrc = tgiCore.getSource(Player)
|
||||
if not itemData then return tgiCore.notif(src, "There is no such item", "error") end
|
||||
if not AddItem(targetSrc, itemData.name, amount) then return tgiCore.notif(src, "Player Is Full", "error") end
|
||||
|
||||
tgiCore.notif(src, "Item Given ID:" .. tgiCore.getCid(Player) .. " | " .. amount .. "x " .. itemData.name .. "", "success")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/giveitem %s %s %s", id, args[2], amount), src, targetSrc)
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.setitem, "Set An Item (Admin Only)", { { name = "id", help = "Player ID" }, { name = "item", help = "Name of the item (not a label)" }, { name = "amount", help = "Amount of items" } }, false, function(source, args)
|
||||
local src = source
|
||||
local id = tonumber(args[1])
|
||||
local Player = config.tgiannServer and tgiCore.getPlayerById(id) or tgiCore.getPlayer(id)
|
||||
local amount = tonumber(args[3]) or 1
|
||||
local itemData = itemList[tostring(args[2]):lower()]
|
||||
if not Player then return tgiCore.notif(src, "Player Offline", "error") end
|
||||
local targetSrc = tgiCore.getSource(Player)
|
||||
local pInventory = GetInventory(targetSrc, "player")
|
||||
if not itemData then return tgiCore.notif(src, "There is no such item", "error") end
|
||||
if not pInventory.Functions.SetItem(itemData.name, amount) then return tgiCore.notif(src, "Player Is Full", "error") end
|
||||
|
||||
pInventory.Functions.Save()
|
||||
tgiCore.notif(src, "Item Given ID:" .. tgiCore.getCid(Player) .. " | " .. amount .. "x " .. itemData.name .. "", "success")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/giveitem %s %s %s", id, args[2], amount), src, targetSrc)
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.clearinv, 'Clear Players Inventory (Admin Only)', { { name = 'id', help = 'Player ID' } }, false, function(source, args)
|
||||
local src = source
|
||||
if args[1] then
|
||||
local Player = config.tgiannServer and tgiCore.getPlayerById(tonumber(args[1])) or tgiCore.getPlayer(tonumber(args[1]))
|
||||
if Player then
|
||||
local targetSrc = tgiCore.getSource(Player)
|
||||
local pInventory = GetInventory(targetSrc, "player")
|
||||
pInventory.Functions.ClearInventory()
|
||||
tgiCore.notif(src, "Player's Inventory Deleted", "error")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/clearinv %s (Target Online)", args[1]), src, targetSrc)
|
||||
else
|
||||
local row = MySQL.single.await('SELECT `inventory`, `citizenid` FROM `tgiann_inventory_player` WHERE `citizenid` = ? LIMIT 1', { args[1] })
|
||||
if row then
|
||||
MySQL.update('UPDATE tgiann_inventory_player SET inventory = ? WHERE citizenid = ?', { "[]", row.citizenid })
|
||||
tgiCore.notif(src, "Player's Inventory Deleted", "error")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/clearinv %s (Target Offline)", args[1]), src)
|
||||
else
|
||||
tgiCore.notif(src, "There is no such player", "error")
|
||||
end
|
||||
end
|
||||
else
|
||||
local Player = tgiCore.getPlayer(src)
|
||||
if not Player then return tgiCore.notif(src, "Player Offline", "error") end
|
||||
local pInventory = GetInventory(tgiCore.getSource(Player), "player")
|
||||
pInventory.Functions.ClearInventory()
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, "/clearinv (Self Inventory)", src)
|
||||
end
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.backpack, "Set Backpack Level", { { name = "id", help = "Player ID" }, { name = "level", help = "1-2-3" } }, true, function(source, args)
|
||||
local src = source
|
||||
local backpack = tonumber(args[2])
|
||||
if not backpack then return tgiCore.notif(src, "You Have To Write a Level", "error") end
|
||||
local max = #config.backpack
|
||||
if backpack <= 0 and backpack > max then return tgiCore.notif(src, string.format("Backpack Level Can Be Max %s Min 1", max), "error") end
|
||||
local xPlayer = config.tgiannServer and tgiCore.getPlayerById(tonumber(args[1])) or tgiCore.getPlayer(tonumber(args[1]))
|
||||
if not xPlayer then return tgiCore.notif(src, "Player Offline", "error") end
|
||||
local targetSrc = tgiCore.getSource(xPlayer)
|
||||
MySQL.insert('INSERT INTO tgiann_inventory_player (citizenid, lvl) VALUES (:citizenid, :lvl) ON DUPLICATE KEY UPDATE citizenid = :citizenid, lvl = :lvl', {
|
||||
citizenid = tgiCore.getCid(xPlayer),
|
||||
lvl = backpack,
|
||||
})
|
||||
local pInventory = GetInventory(targetSrc, "player")
|
||||
if pInventory then
|
||||
local data = config.backpack[backpack]
|
||||
pInventory.Functions.UpdateData({
|
||||
MaxSlots = data.slots,
|
||||
MaxWeight = data.weight
|
||||
})
|
||||
end
|
||||
tgiCore.notif(src, "Backpack Level Seted", "success")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/backpack %s %s", args[1], backpack), src, targetSrc)
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.deleteinv, "Deletes Inventory", { { name = "id", help = "Inventory Name/Plate" }, { name = "invType", help = "Inventory Type(trunk, glovebox, stash)" } }, true, function(source, args)
|
||||
local src = source
|
||||
local invType = args[2]
|
||||
local invId = args[1]
|
||||
if DeleteInventory(invType, invId) then
|
||||
tgiCore.notif(src, "Inventory Deleted! " .. secondInventoryId, "success")
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/deleteinv %s %s", invType, invId), src)
|
||||
else
|
||||
tgiCore.notif(src, "There Is No Such Inventory!", "error")
|
||||
end
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.openinv, "Open a Inventory", { { name = "id", help = "Inventory Name/Plate" }, { name = "invType", help = "Inventory Type(trunk, glovebox, stash)" } }, true, function(source, args)
|
||||
local src = source
|
||||
local invType = args[2]
|
||||
local invId = args[1]
|
||||
OpenInventory(src, invType, invId, {
|
||||
maxweight = 999999999999,
|
||||
slots = 1000,
|
||||
})
|
||||
TriggerEvent("tgiann-core:discordLog", webhooks.adminLog, string.format("/openinv %s %s", invType, invId), src)
|
||||
end, adminPerm)
|
||||
|
||||
local checkItemAmount = 0
|
||||
local checkItemTotalAmount = 0
|
||||
local function checkItemListAdd(name, amount, findItem)
|
||||
if name == findItem then
|
||||
checkItemAmount = checkItemAmount + amount
|
||||
end
|
||||
end
|
||||
|
||||
local function checkItemListPrint(inventoryType, inventoryName, findItem, findAmount)
|
||||
if checkItemAmount > findAmount then
|
||||
tgiCore.DebugLog(string.format("Env Type: %s | %s | Item: %s | Amount: %s", inventoryType, inventoryName, findItem, checkItemAmount))
|
||||
checkItemTotalAmount = checkItemTotalAmount + checkItemAmount
|
||||
end
|
||||
checkItemAmount = 0
|
||||
end
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.checkitem, "Checks One Item in All Inventories", { { name = "item", help = "Item Name" }, { name = "minamount", help = "Min Amount" } }, true, function(source, args)
|
||||
local findItem = args[1]
|
||||
local findAmount = tonumber(args[2])
|
||||
local src = source
|
||||
checkItemTotalAmount = 0
|
||||
if itemList[findItem] then
|
||||
local result = MySQL.query.await('SELECT inventory, citizenid, citizenid FROM tgiann_inventory_player')
|
||||
if result then
|
||||
for i = 1, #result do
|
||||
local resultData = result[i]
|
||||
resultData.inventory = json.decode(resultData.inventory)
|
||||
if resultData.inventory then
|
||||
for _, data in pairs(resultData.inventory) do
|
||||
checkItemListAdd(data.name, data.amount, findItem)
|
||||
end
|
||||
checkItemListPrint("Player", resultData.citizenid, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local result = MySQL.query.await('SELECT * FROM tgiann_inventory_stashitems')
|
||||
if result then
|
||||
for i = 1, #result do
|
||||
local resultData = result[i]
|
||||
resultData.items = json.decode(resultData.items)
|
||||
for _, data in pairs(resultData.items) do
|
||||
checkItemListAdd(data.name, data.amount, findItem)
|
||||
end
|
||||
checkItemListPrint("stash", resultData.stash, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
|
||||
local result = MySQL.query.await('SELECT * FROM tgiann_inventory_trunkitems')
|
||||
if result then
|
||||
for i = 1, #result do
|
||||
local resultData = result[i]
|
||||
resultData.items = json.decode(resultData.items)
|
||||
for _, data in pairs(resultData.items) do
|
||||
checkItemListAdd(data.name, data.amount, findItem)
|
||||
end
|
||||
checkItemListPrint("trunk", resultData.plate, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
|
||||
local result = MySQL.query.await('SELECT * FROM tgiann_inventory_gloveboxitems')
|
||||
if result then
|
||||
for i = 1, #result do
|
||||
local resultData = result[i]
|
||||
resultData.items = json.decode(resultData.items)
|
||||
for _, data in pairs(resultData.items) do
|
||||
checkItemListAdd(data.name, data.amount, findItem)
|
||||
end
|
||||
checkItemListPrint("glovebox", resultData.plate, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
|
||||
--[[ local result = MySQL.query.await('SELECT id, item, amount FROM tgiann_market_sell')
|
||||
if result then
|
||||
for i=1, #result do
|
||||
local resultData = result[i]
|
||||
checkItemListAdd(resultData.item, resultData.amount, findItem)
|
||||
checkItemListPrint("tgiann_market_sell", resultData.id, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
|
||||
local result = MySQL.query.await('SELECT id, item, amount FROM tgiann_market_item_storage')
|
||||
if result then
|
||||
for i=1, #result do
|
||||
local resultData = result[i]
|
||||
checkItemListAdd(resultData.item, resultData.amount, findItem)
|
||||
checkItemListPrint("tgiann_market_item_storage", resultData.id, findItem, findAmount)
|
||||
end
|
||||
end
|
||||
]]
|
||||
tgiCore.DebugLog(string.format("Total Amount: %s", checkItemTotalAmount))
|
||||
else
|
||||
tgiCore.notif(src, "There is no such item!", "error")
|
||||
end
|
||||
end, adminPerm)
|
||||
|
||||
tgiCore.CommandsAdd(config.commands.admin.items, "Lists all Items available in the server", {}, false, function(source, args)
|
||||
OpenShop(source, "admin")
|
||||
end, adminPerm)
|
||||
|
||||
-- PLAYER COMMANDS
|
||||
|
||||
-- https://github.com/qbcore-framework/qb-banking/blob/main/server.lua#L493
|
||||
if config.commands.player.givecash.active then
|
||||
tgiCore.CommandsAdd(config.commands.player.givecash.command, 'Give Cash', { { name = 'id', help = 'Player ID' }, { name = 'amount', help = 'Amount' } }, true, function(source, args)
|
||||
local src = source
|
||||
local xPlayer = tgiCore.getPlayer(src)
|
||||
if not xPlayer then return end
|
||||
local playerPed = GetPlayerPed(src)
|
||||
local playerCoords = GetEntityCoords(playerPed)
|
||||
local tPlayer = tgiCore.getPlayer(tonumber(args[1]))
|
||||
if not tPlayer then return tgiCore.notif(src, lang.giveCashNoUser, 'error') end
|
||||
local targetPed = GetPlayerPed(tonumber(args[1]))
|
||||
local targetCoords = GetEntityCoords(targetPed)
|
||||
local amount = tonumber(args[2])
|
||||
if not amount then return tgiCore.notif(src, lang.giveCashInvalidAmount, 'error') end
|
||||
if amount <= 0 then return tgiCore.notif(src, lang.giveCashInvalidAmount, 'error') end
|
||||
if #(playerCoords - targetCoords) > 5 then return tgiCore.notif(src, lang.giveCashToofar, 'error') end
|
||||
if tgiCore.getMoney(xPlayer, "cash") < amount then return tgiCore.notif(src, lang.giveCashNoMoney, 'error') end
|
||||
tgiCore.removeMoney(xPlayer, 'cash', amount, 'cash transfer')
|
||||
tgiCore.addMoney(tPlayer, 'cash', amount, 'cash transfer')
|
||||
tgiCore.notif(src, string.format(lang.giveCashSuccesGive, amount), 'success')
|
||||
tgiCore.notif(tgiCore.getSource(tPlayer), string.format(lang.giveCashSuccesGet, amount), 'success')
|
||||
end)
|
||||
end
|
||||
|
||||
if config.commands.player.rob.active then
|
||||
tgiCore.CommandsAdd(config.commands.player.rob.command, 'Rob Closest Player', {}, false, function(source, args)
|
||||
local targetPlayer = lib.callback.await("tgiann-inventory:robPlayer", source)
|
||||
if not targetPlayer then return end
|
||||
OpenInventoryById(source, targetPlayer, true)
|
||||
end)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue