QBCore = exports['qb-core']:GetCoreObject() local canAdvertise = true if Config.AllowPlayersToClearTheirChat then RegisterCommand(Config.ClearChatCommand, function(source, args, rawCommand) TriggerClientEvent('chat:client:ClearChat', source) end) end if Config.AllowStaffsToClearEveryonesChat then RegisterCommand(Config.ClearEveryonesChatCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local time = os.date(Config.DateFormat) if isAdmin(source) then TriggerClientEvent('chat:client:ClearChat', -1) TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message system"><i class="fas fa-cog"></i> <b><span style="color: #df7b00">SYSTEM</span> <span style="font-size: 14px; color: #e1e1e1;">{0}</span></b><div style="margin-top: 5px; font-weight: 300;">Chatten blev tømt!</div></div>', args = { time } }) end end) end if Config.EnableStaffCommand then RegisterCommand(Config.StaffCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.StaffCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name if isAdmin(source) then TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message staff"><i class="fas fa-shield-alt"></i> <b><span style="color: #1ebc62">[STAFF] {0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end end) end if Config.EnableStaffOnlyCommand then RegisterCommand(Config.StaffOnlyCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.StaffOnlyCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name if isAdmin(source) then showOnlyForAdmins(function(admins) TriggerClientEvent('chat:addMessage', admins, { template = '<div class="chat-message staffonly"><i class="fas fa-eye-slash"></i> <b><span style="color: #1ebc62">[STAFF ONLY] {0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end) end end) end if Config.EnableAdvertisementCommand then RegisterCommand(Config.AdvertisementCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.AdvertisementCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name local bankMoney = xPlayer.PlayerData.money.bank if canAdvertise then if bankMoney >= Config.AdvertisementPrice then xPlayer.Functions.RemoveMoney('bank', Config.AdvertisementPrice) TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message advertisement"><i class="fas fa-ad"></i> <b><span style="color: #81db44">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) QBCore.Functions.Notify(source, "Du sendte en reklame for "..Config.AdvertisementPrice..',-', 'success', 5000) local time = Config.AdvertisementCooldown * 60 local pastTime = 0 canAdvertise = false while (time > pastTime) do Citizen.Wait(1000) pastTime = pastTime + 1 timeLeft = time - pastTime end canAdvertise = true else QBCore.Functions.Notify(source, "Du har ikke nok penge på banken!", "error", 5000) end else QBCore.Functions.Notify(source, "Du skal lige vente lidt!", "error", 5000) end end) end if Config.EnableTwitchCommand then RegisterCommand(Config.TwitchCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.TwitchCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name local twitch = twitchPermission(source) if twitch then TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message twitch"><i class="fab fa-twitch"></i> <b><span style="color: #9c70de">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end end) end function twitchPermission(id) for k,v in ipairs(Config.TwitchList) do for k,x in ipairs(GetPlayerIdentifiers(id)) do if string.lower(x) == string.lower(v) then return true end end end return false end if Config.EnableYoutubeCommand then RegisterCommand(Config.YoutubeCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.YoutubeCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name local youtube = youtubePermission(source) if youtube then TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message youtube"><i class="fab fa-youtube"></i> <b><span style="color: #ff0000">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end end) end function youtubePermission(id) for k,v in ipairs(Config.YoutubeList) do for k,x in ipairs(GetPlayerIdentifiers(id)) do if string.lower(x) == string.lower(v) then return true end end end return false end if Config.EnableTwitterCommand then RegisterCommand(Config.TwitterCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.TwitterCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message twitter"><i class="fab fa-twitter"></i> <b><span style="color: #2aa9e0">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end) end if Config.EnablePoliceCommand then RegisterCommand(Config.PoliceCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.PoliceCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name local job = xPlayer.PlayerData.job.name if job == Config.PoliceJobName then TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message police"><i class="fas fa-bullhorn"></i> <b><span style="color: #4a6cfd">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px;">{1}</div></div>', args = { playerName, message, time } }) end end) end if Config.EnableAmbulanceCommand then RegisterCommand(Config.AmbulanceCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.AmbulanceCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name local job = xPlayer.PlayerData.job.name if job == Config.AmbulanceJobName then TriggerClientEvent('chat:addMessage', -1, { template = '<div class="chat-message ambulance"><i class="fas fa-ambulance"></i> <b><span style="color: #e3a71b">{0}</span> <span style="font-size: 14px; color: #e1e1e1;">{2}</span></b><div style="margin-top: 5px; font-weight: 300;">{1}</div></div>', args = { playerName, message, time } }) end end) end if Config.EnableOOCCommand then RegisterCommand(Config.OOCCommand, function(source, args, rawCommand) local xPlayer = QBCore.Functions.GetPlayer(source) local length = string.len(Config.OOCCommand) local message = rawCommand:sub(length + 1) local time = os.date(Config.DateFormat) playerName = xPlayer.PlayerData.name TriggerClientEvent('chat:ooc', -1, source, playerName, message, time) end) end function isAdmin(xPlayer) for k,v in ipairs(Config.StaffGroups) do if QBCore.Functions.GetPermission(xPlayer) == v then return true end end return false end function showOnlyForAdmins(admins) for _,v in ipairs(QBCore.Functions.GetPlayers()) do for _,x in ipairs(Config.StaffGroups) do if QBCore.Functions.GetPermission(v) == x then admins(v) end end end end