Files
wnsrc/gamemodes/helix/plugins/xenforolink/sh_plugin.lua
lifestorm 73479cff9e Upload
2024-08-04 22:55:00 +03:00

121 lines
6.0 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
PLUGIN.name = "Xenforo Link"
PLUGIN.author = "Gr4Ss"
PLUGIN.description = "Links the in-game ranks and factions to the forums."
if (!sam) then return end
if (SERVER and !CHTTP) then
pcall(require, "chttp")
end
PLUGIN.TOKEN_VALID = 60
PLUGIN.NEW_ATTEMPT_WAIT = 1
PLUGIN.tiers = {
"A True Citizen",
"Protector",
"Galunga Prince"
}
CAMI.RegisterPrivilege({
Name = "Helix - Manage Temp Admin",
MinAccess = "superadmin"
})
ix.config.Add("whitelistForumLink", true, "Whether or not some whitelists should be linked to forum groups.", nil, {
category = "server"
})
ix.util.Include("sh_commands.lua")
ix.util.Include("sh_hooks.lua")
ix.util.Include("sv_hooks.lua")
ix.util.Include("sv_link.lua")
ix.util.Include("sv_plugin.lua")
ix.lang.AddTable("english", {
xenforoFailsPause = "You entered the wrong code too many times. Please try again in %d minutes.",
xenforoStartWait = "Please wait 1 minute before starting a new linking attempt.",
xenforoFailedFindUser = "Something went wrong trying to find the user '%s'.",
xenforoFindUserNoExactMatch = "We did not manage to find an exact match for the user '%s'.",
xenforoFailedCreatePM = "Something went wrong trying to send the private message with the token.",
xenforoFailedCreatePMError = "Received an error when trying to send the private message with the token.",
xenforoCodeSend = "Private message with link token was successfully send. Please check your PM's on the forums. Do not disconnect from the server: your token will become invalid.",
xenoforoNoLinkActive = "Cannot finishing linking as no link attempt is active. Please use /LinkAccount first.",
xenoforoLinkNotValid = "Token is no longer valid. Please start again with /LinkAccount.",
xenforoLinkSuccess = "Your account was successfully linked with your forum account!",
xenforoFailsPauseStart = "You entered a wrong token too many times. Please wait 1 hour before making a new attempt.",
xenforoWrongCode = "You entered a wrong token. You have %d attempts left.",
xenforoNotLinked = "%s does not have their forum account linked.",
xenforoGroupsUpdateSelf = "Your forum groups have been updated. %d valid groups were found.",
xenforoGroupsUpdate = "%s their forum groups have been updated. %d valid groups were found.",
xenforoLinkRemoved = "Your link to your forum has been removed.",
xenforoNoGroupFound = "Couldn't find the target group '%s'.",
xenforoTempGroup = "%s was temporarily given '%s' for '%d' minutes.",
xenforoTempGroupRemove = "%s was removed from the temporary group '%s'.",
xenforoTempGroupClear = "%s their temporary groups were cleared.",
xenforoWhitelistForumLink = "This faction whitelist is managed via the forums. Use /LinkAccount instead!",
xenforoTargetForumID = "%s is linked to forum account ID '%d'.",
xenforoTargetNoForumID = "%s does not have a forum account linked!",
xenforoTargetGroups = "Forum groups: %s",
xenforoTargetNoGroups = "%s has no Xenforo groups!",
xenforoTargetDynGroups = "Dynamic groups: %s",
xenforoTargetDynNoGroups = "%s has no dynamic groups!",
xenforoRanks = "SAM ranks: %s",
xenforoNoRanks = "%s has no ranks!",
xenforoFlags = "Flags: %s",
xenforoNoFlags = "%s has no forum-group flags!",
xenforoPremium = "Premium tier: %d",
xenforoNoPremium = "%s has no premium subscription!",
gamemasterToggle = "%s has toggled their gamemaster admin-powers %s!",
mentorToggle = "%s has toggled their mentor admin-powers %s!",
})
ix.lang.AddTable("spanish", {
xenoforoNoLinkActive = "No se puede linkear al no haber intento de link activo. Por favor, usa /LinkAccount primero.",
xenforoNoGroupFound = "No se pudo encontrar el grupo objetivo \"%s\".",
xenforoNotLinked = "%s no tiene su cuenta del foro linkeada.",
xenforoTempGroupClear = "Grupos temporales de %s removidos.",
xenoforoLinkNotValid = "El token ya no es válido. Por favor, empieza de nuevo con /LinkAccount.",
xenforoLinkRemoved = "Tu link a tu foro han sido removidos.",
xenforoGroupsUpdateSelf = "Tus grupos del foro han sido actualizados. %d grupos válidos fueron encontrados.",
xenforoLinkSuccess = "¡Tu cuenta ha sido linkeada exitosamente con tu cuenta del foro!",
xenforoCodeSend = "Mensaje privado con el token linkeado fue enviado con éxito. Por favor, revisa tus MPs en el foro. No te desconectes del servidor: Tu token se volverá inválido.",
xenforoGroupsUpdate = "%s sus grupos han sido actualizados. %d grupos válidos encontrados.",
xenforoFailedCreatePMError = "Error recibido al intentar enviar el mensaje con el token.",
xenforoTempGroupRemove = "%s ha sido echado del grupo temporal \"%s\".",
xenforoWrongCode = "Introdujiste un token erróneo. Tienes %d intentos más.",
xenforoTempGroup = "A %s se le dio temporalmente \"%s\" por \"%d\" minutos.",
xenforoFailsPauseStart = "Has introducido un token erróneo demasiadas veces. Por favor, espera 1 hora antes de hacer otro intento.",
xenforoWhitelistForumLink = "La whitelist de esta facción es manejada a través del foro ¡Usa /LinkAccount en lugar de eso!",
xenforoFindUserNoExactMatch = "No conseguimos encontrar una coincidencia exacta para el usuario '%s'.",
xenforoFailedFindUser = "Algo fue mal al intentar buscar al usuario '%s'.",
xenforoFailsPause = "Has introducido el código erróneo demasiadas veces. Por favor prueba otra vez en %d minutos.",
xenforoFailedCreatePM = "Algo fue mal al intentar enviar el mensaje privado con el token.",
xenforoStartWait = "Por favor espera 1 minuto antes de intentar otro intento de enlace.",
})
function PLUGIN:RegisterForumGroup(name, id, data)
id = isstring(id) and id or tostring(id)
if (!id or id == "") then return end
if (data.camiGroup) then
CAMI.RegisterUsergroup({Name = data.camiGroup, Inherits = data.inherits or "user"}, "helix")
end
if (SERVER) then
ix.xenforo:RegisterForumGroup(name, id, data)
end
end