-- Ban Player RegisterNetEvent('ps-adminmenu:server:BanPlayer', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local player = selectedData["Player"].value local reason = selectedData["Reason"].value or "" local time = selectedData["Duration"].value local banTime = tonumber(os.time() + time) local timeTable = os.date('*t', banTime) MySQL.insert('INSERT INTO bans (name, license, discord, ip, reason, expire, bannedby) VALUES (?, ?, ?, ?, ?, ?, ?)', { GetPlayerName(player), QBCore.Functions.GetIdentifier(player, 'license'), QBCore.Functions.GetIdentifier( player, 'discord'), 'ip:0.0.0.0', reason, banTime, GetPlayerName(source) }) if time == 2147483647 then DropPlayer(player, locale("banned") .. '\n' .. locale("reason") .. reason .. locale("ban_perm")) else DropPlayer(player, locale("banned") .. '\n' .. locale("reason") .. reason .. '\n' .. locale("ban_expires") .. timeTable['day'] .. '/' .. timeTable['month'] .. '/' .. timeTable['year'] .. ' ' .. timeTable['hour'] .. ':' .. timeTable['min']) end QBCore.Functions.Notify(source, locale("playerbanned", player, banTime, reason), 'success', 7500) end) RegisterNetEvent('ps-adminmenu:server:ServerMessage' , function(data, selectedData) local target = -1 local from = 'Staff' local message = selectedData["Message"].value local time = selectedData["Duration"].value or 10 if message == "" then return end if selectedData["Player"] then target = selectedData["Player"].value from = GetPlayerName(source) QBCore.Functions.Notify(source, 'Besked sendt til '..GetPlayerName(target).."!") end TriggerClientEvent('ox_lib:notify', -1, { id = 'AdminNotification', title = 'Info fra '..from, description = message, -- type = 'inform', duration = (time * 1000), position = 'top', iconColor = '#ffffff', iconAnimation = 'beatFade', style = { backgroundColor = '#3377ff', color = '#ffffff', ['.description'] = { color = '#ffffff' } }, }) TriggerClientEvent('InteractSound_CL:PlayOnAll', target, "announcement", 0.4) end) -- Warn Player RegisterNetEvent('ps-adminmenu:server:WarnPlayer', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local targetId = selectedData["Player"].value local target = QBCore.Functions.GetPlayer(targetId) local reason = selectedData["Reason"].value local sender = QBCore.Functions.GetPlayer(source) local warnId = 'ADVAR-' .. math.random(1000, 9999) if target ~= nil then QBCore.Functions.Notify(target.PlayerData.source, locale("warned") .. ", for: " .. locale("reason") .. ": " .. reason, 'info', 10000) QBCore.Functions.Notify(source, locale("warngiven") .. GetPlayerName(target.PlayerData.source) .. ", for: " .. reason) MySQL.insert('INSERT INTO player_warns (senderIdentifier, targetIdentifier, reason, warnId) VALUES (?, ?, ?, ?)', { sender.PlayerData.license, target.PlayerData.license, reason, warnId }) else TriggerClientEvent('QBCore:Notify', source, locale("not_online"), 'error') end end) RegisterNetEvent('ps-adminmenu:server:KickPlayer', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local target = QBCore.Functions.GetPlayer(selectedData["Player"].value) local reason = selectedData["Reason"].value if not target then QBCore.Functions.Notify(src, locale("not_online"), 'error', 7500) return end DropPlayer(target.PlayerData.source, locale("kicked") .. '\n' .. locale("reason") .. reason) end) -- Revive Player RegisterNetEvent('ps-adminmenu:server:Revive', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local player = selectedData["Player"].value TriggerClientEvent('hospital:client:Revive', player) end) -- Revive All RegisterNetEvent('ps-adminmenu:server:ReviveAll', function(data) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end TriggerClientEvent('hospital:client:Revive', -1) end) -- Revive Radius RegisterNetEvent('ps-adminmenu:server:ReviveRadius', function(data) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local ped = GetPlayerPed(src) local pos = GetEntityCoords(ped) local players = QBCore.Functions.GetPlayers() for k, v in pairs(players) do local target = GetPlayerPed(v) local targetPos = GetEntityCoords(target) local dist = #(pos - targetPos) if dist < 15.0 then TriggerClientEvent("hospital:client:Revive", v) end end end) -- Set RoutingBucket RegisterNetEvent('ps-adminmenu:server:SetBucket', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local player = selectedData["Player"].value local bucket = selectedData["Bucket"].value local currentBucket = GetPlayerRoutingBucket(player) if bucket == currentBucket then return QBCore.Functions.Notify(src, locale("target_same_bucket", player), 'error', 7500) end SetPlayerRoutingBucket(player, bucket) QBCore.Functions.Notify(src, locale("bucket_set_for_target", player, bucket), 'success', 7500) end) -- Get RoutingBucket RegisterNetEvent('ps-adminmenu:server:GetBucket', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local player = selectedData["Player"].value local currentBucket = GetPlayerRoutingBucket(player) QBCore.Functions.Notify(src, locale("bucket_get", player, currentBucket), 'success', 7500) end) -- Give Money RegisterNetEvent('ps-adminmenu:server:GiveMoney', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local target, amount, moneyType = selectedData["Player"].value, selectedData["Amount"].value, selectedData["Type"].value local Player = QBCore.Functions.GetPlayer(tonumber(target)) if Player == nil then return QBCore.Functions.Notify(src, locale("not_online"), 'error', 7500) end Player.Functions.AddMoney(tostring(moneyType), tonumber(amount)) QBCore.Functions.Notify(src, locale((moneyType == "crypto" and "give_money_crypto" or "give_money"), tonumber(amount), Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname), "success") end) -- Give Money to all RegisterNetEvent('ps-adminmenu:server:GiveMoneyAll', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local amount, moneyType = selectedData["Amount"].value, selectedData["Type"].value local players = QBCore.Functions.GetPlayers() for _, v in pairs(players) do local Player = QBCore.Functions.GetPlayer(tonumber(v)) Player.Functions.AddMoney(tostring(moneyType), tonumber(amount)) QBCore.Functions.Notify(src, locale((moneyType == "crypto" and "give_money_all_crypto" or "give_money_all"), tonumber(amount)), "success") end end) -- Take Money RegisterNetEvent('ps-adminmenu:server:TakeMoney', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local target, amount, moneyType = selectedData["Player"].value, selectedData["Amount"].value, selectedData["Type"].value local Player = QBCore.Functions.GetPlayer(tonumber(target)) if Player == nil then return QBCore.Functions.Notify(src, locale("not_online"), 'error', 7500) end if Player.PlayerData.money[moneyType] >= tonumber(amount) then Player.Functions.RemoveMoney(moneyType, tonumber(amount), "state-fees") else QBCore.Functions.Notify(src, locale("not_enough_money"), "primary") end QBCore.Functions.Notify(src, locale((moneyType == "crypto" and "take_money_crypto" or "take_money"), tonumber(amount) .. ",-", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname), "success") end) -- Blackout local Blackout = false RegisterNetEvent('ps-adminmenu:server:ToggleBlackout', function(data) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end Blackout = not Blackout local src = source if Blackout then TriggerClientEvent('QBCore:Notify', src, locale("blackout", "enabled"), 'primary') while Blackout do Wait(0) exports["qb-weathersync"]:setBlackout(true) end exports["qb-weathersync"]:setBlackout(false) TriggerClientEvent('QBCore:Notify', src, locale("blackout", "disabled"), 'primary') end end) -- Toggle Cuffs RegisterNetEvent('ps-adminmenu:server:CuffPlayer', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local target = selectedData["Player"].value TriggerClientEvent('ps-adminmenu:client:ToggleCuffs', target) QBCore.Functions.Notify(source, locale("toggled_cuffs"), 'success') end) -- Give Clothing Menu RegisterNetEvent('ps-adminmenu:server:ClothingMenu', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local target = tonumber(selectedData["Player"].value) if target == nil then return QBCore.Functions.Notify(src, locale("not_online"), 'error', 7500) end if target == src then TriggerClientEvent("ps-adminmenu:client:CloseUI", src) end TriggerClientEvent('qb-clothing:client:openMenu', target) end) -- Force to character setup RegisterNetEvent('ps-adminmenu:server:CharacterCreation', function(data, selectedData) local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then return end local src = source local target = tonumber(selectedData["Player"].value) if target == nil then return QBCore.Functions.Notify(src, locale("not_online"), 'error', 7500) end if target == src then TriggerClientEvent("ps-adminmenu:client:CloseUI", src) end TriggerClientEvent('hp_charcreator:openCreator', target, nil, true) end) -- Set Ped RegisterNetEvent("ps-adminmenu:server:setPed", function(data, selectedData) local src = source local data = CheckDataFromKey(data) if not data or not CheckPerms(data.perms) then QBCore.Functions.Notify(src, locale("no_perms"), "error", 5000) return end local ped = selectedData["Ped Models"].label local tsrc = selectedData["Player"].value local Player = QBCore.Functions.GetPlayer(tsrc) if not Player then QBCore.Functions.Notify(locale("not_online"), "error", 5000) return end TriggerClientEvent("ps-adminmenu:client:setPed", Player.PlayerData.source, ped) end)