server/commands.lua
local adminPerm = config.tgiannServer and { "tgi" } or config.framework == "qb" and "god" or "admin"
tgiCore.CommandsAdd("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)
local pInventory = GetInventory(targetSrc, "player")
if not itemData then return tgiCore.notif(src, "There is no such item", "error") end
if not pInventory.Functions.AddItem(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("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('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("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("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("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
print(string.format("Env Tip: %s | %s | Item: %s | Adet: %s", inventoryType, inventoryName, findItem, checkItemAmount))
checkItemTotalAmount = checkItemTotalAmount + checkItemAmount
end
checkItemAmount = 0
end
tgiCore.CommandsAdd("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 slot, 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 slot, 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
]]
print(string.format("Total Amount: %s", checkItemTotalAmount))
else
tgiCore.notif(src, "There is no such item!", "error")
end
end, adminPerm)
tgiCore.CommandsAdd("items", "Lists all Items available in the server", {}, false, function(source, args)
OpenInventory(source, "shop", "admin", "admin")
end, adminPerm)
Last updated