Como Usar?
API Principal
-- ✅ ÚNICA forma de acessar o sistema de webhooks
LockSystem.Webhook.send(url, data, options)
LockSystem.Webhook.sendDiscord(webhookUrl, content, options)
LockSystem.Webhook.sendDiscordEmbed(webhookUrl, title, description, options)
LockSystem.Webhook.sendSlack(webhookUrl, text, options)
LockSystem.Webhook.sendError(error, details, webhookUrl)
LockSystem.Webhook.sendLog(level, message, data, webhookUrl)
LockSystem.Webhook.stats()
LockSystem.Webhook.clear()
LockSystem.Webhook.template(templateName, variables)
Segurança de Acesso
-- Validação automática de origem
-- Stack trace validation previne uso malicioso
-- Fila protegida contra overflow
-- Tentativas de hack resultam em blacklist automático
-- Rate limiting automático por domínio
Configuração via ENV Variables
⚠️ IMPORTANTE: Configure webhooks através das variáveis de ambiente.
-- Configure no painel de desenvolvedor:
ERROR_WEBHOOK_URL = "https://discord.com/api/webhooks/..." -- Para erros automáticos
LOG_WEBHOOK_URL = "https://discord.com/api/webhooks/..." -- Para logs do sistema
-- O sistema usa automaticamente essas URLs quando disponíveis
LockSystem.Webhook.sendError("Erro crítico!") -- Usa ERROR_WEBHOOK_URL
LockSystem.Webhook.sendLog("info", "Sistema iniciado") -- Usa LOG_WEBHOOK_URL
Webhook Genérico (Básico)
-- Enviar webhook simples para qualquer URL
local webhookId = LockSystem.Webhook.send("https://example.com/webhook", {
message = "Hello World",
timestamp = os.time(),
server = getServerName()
}, {
headers = {["Content-Type"] = "application/json"},
maxRetries = 3,
onSuccess = function(response, info)
print("Webhook enviado com sucesso!")
end,
onError = function(error)
print("Falha no webhook: " .. error)
end
})
print("Webhook enfileirado com ID: " .. webhookId)
Discord - Mensagem Simples
-- Enviar mensagem simples para Discord
LockSystem.Webhook.sendDiscord("https://discord.com/api/webhooks/YOUR_WEBHOOK",
"🎮 Servidor online com " .. #getElementsByType("player") .. " players!", {
username = "LockCode Bot",
avatar_url = "https://example.com/bot-avatar.png"
})
Discord - Embed Avançado
-- Enviar embed rico para Discord
LockSystem.Webhook.sendDiscordEmbed("https://discord.com/api/webhooks/YOUR_WEBHOOK",
"🎯 Status do Servidor",
"Relatório automático do sistema", {
color = 3447003, -- Azul
fields = {
{name = "Players Online", value = tostring(#getElementsByType("player")), inline = true},
{name = "Uptime", value = math.floor(getTickCount()/60000) .. " minutos", inline = true},
{name = "Recursos Ativos", value = tostring(#getResources()), inline = true}
},
footer = {text = "LockCode System", icon_url = "https://example.com/icon.png"},
timestamp = true, -- Adiciona timestamp automático
thumbnail = {url = "https://example.com/server-icon.png"}
})
Slack Integration
-- Enviar mensagem para Slack
LockSystem.Webhook.sendSlack("https://hooks.slack.com/services/YOUR_WEBHOOK",
"⚠️ Servidor reiniciando em 5 minutos!", {
username = "ServerBot",
icon_emoji = ":warning:",
channel = "#server-alerts",
attachments = {
{
color = "warning",
fields = {
{title = "Motivo", value = "Manutenção programada", short = true},
{title = "Duração", value = "~10 minutos", short = true}
}
}
}
})
Logs Automáticos
-- Sistema de logs com níveis diferentes
LockSystem.Webhook.sendLog("info", "Player conectado ao servidor", {
player_name = "João123",
player_serial = "ABC123456789",
ip = "192.168.1.100"
})
LockSystem.Webhook.sendLog("warn", "Tentativa de comando sem permissão", {
player = "Hacker123",
command = "/ban",
action = "blocked"
})
LockSystem.Webhook.sendLog("error", "Falha na conexão com database", {
error_code = "CONN_TIMEOUT",
retry_count = 3
})
LockSystem.Webhook.sendLog("success", "Backup realizado com sucesso", {
backup_size = "50MB",
duration = "2.5s"
})
Alertas de Erro Automáticos
-- Enviar erros críticos automaticamente
LockSystem.Webhook.sendError("Division by zero in money system",
"Arquivo: money.lua, Linha: 45, Função: calculateBonus()")
-- O sistema inclui automaticamente:
-- - Nome do servidor
-- - Resource atual
-- - Shop ID
-- - Timestamp
-- - Fingerprint do servidor
Atualizado