Scripts/resources/[standalone]/chat/commands.lua

235 lines
8.8 KiB
Lua
Raw Permalink Normal View History

2024-12-29 20:02:20 +00:00
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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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>&nbsp;<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