mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-29 01:01:31 +00:00
79 lines
2.4 KiB
Lua
79 lines
2.4 KiB
Lua
Bridge.Database.AfterMigration("sky_phone", function()
|
|
RegisterCommand(Config.NotificationTest.Command, function(source)
|
|
if source == 0 then
|
|
print(("[sky_phone] /%s must be used by an in-game admin."):format(Config.NotificationTest.Command))
|
|
return
|
|
end
|
|
|
|
if not Bridge.Framework.HasAdminGroup(source, Config.NotificationTest.AdminGroups) then
|
|
Bridge.Debug(
|
|
"warn",
|
|
"[sky_phone] Source %s attempted to use the notification test command without an admin group.",
|
|
tostring(source)
|
|
)
|
|
return
|
|
end
|
|
|
|
local slots = Bridge.Inventory.GetSlotsWithItem(source, Config.Phone.Item)
|
|
local slot = slots[1]
|
|
if not slot then
|
|
Bridge.Debug(
|
|
"warn",
|
|
"[sky_phone] Notification test failed because source %s has no phone item.",
|
|
tostring(source)
|
|
)
|
|
TriggerClientEvent("sky_phone:device:error", source, "phone_slot_missing")
|
|
return
|
|
end
|
|
|
|
local imei, device_error = SkyPhone.EnsureDevice(source, slot)
|
|
if not imei then
|
|
Bridge.Debug(
|
|
"warn",
|
|
"[sky_phone] Notification test could not resolve a device for source %s: %s.",
|
|
tostring(source),
|
|
tostring(device_error)
|
|
)
|
|
TriggerClientEvent("sky_phone:device:error", source, device_error or "request_failed")
|
|
return
|
|
end
|
|
|
|
local device = SkyPhone.LoadDevice(imei)
|
|
if not device then
|
|
Bridge.Debug(
|
|
"error",
|
|
"[sky_phone] Notification test could not load device %s for source %s.",
|
|
imei,
|
|
tostring(source)
|
|
)
|
|
TriggerClientEvent("sky_phone:device:error", source, "request_failed")
|
|
return
|
|
end
|
|
|
|
local settings = Bridge.Database.Query([[
|
|
SELECT `payload`
|
|
FROM `sky_phone_device_data`
|
|
WHERE `device_imei` = ? AND `namespace` = 'settings'
|
|
LIMIT 1
|
|
]], { imei })[1]
|
|
|
|
TriggerClientEvent("sky_phone:notification:test", source, {
|
|
appId = "messages",
|
|
title = "Notification Test",
|
|
text = "This is a test notification.",
|
|
device = {
|
|
imei = imei,
|
|
name = device.device_name,
|
|
settings = settings and settings.payload or nil,
|
|
},
|
|
})
|
|
|
|
Bridge.Debug(
|
|
"info",
|
|
"[sky_phone] Sent a test notification to source %s on device %s.",
|
|
tostring(source),
|
|
imei
|
|
)
|
|
end, false)
|
|
end)
|