Annonces d’entreprise
Annonces d’ouverture, de fermeture et messages libres des entreprises dans MrPoulpi UI : configuration, permissions, délai et personnalisation.
Les employés d’une entreprise configurée peuvent envoyer une annonce à tous les joueurs, au format notification annonce :
| Annonce | Badge | Couleur | Message |
|---|---|---|---|
| Ouverture | Ouverture | vert | openMessage de l’entreprise, sinon le texte par défaut. |
| Fermeture | Fermeture | rouge | closeMessage de l’entreprise, sinon le texte par défaut. |
| Annonce | Annonce | type de l’entreprise |
Message tapé par l’employé. |
Les employés y accèdent avec la commande /entreprise (réglable par Config.Companies.command) ou par la section Entreprise du menu de démonstration.
Configurer les entreprises
Config.Companies = {
enabled = true,
command = 'entreprise',
cooldown = 60,
duration = 10000,
minLength = 3,
maxLength = 120,
staff = 'administration',
list = {
administration = { label = 'Administration', type = 'info' },
realestateagent = {
label = 'Real Estate Agent',
type = 'success',
minGrade = 0,
logo = 'assets/logos/realestate.png',
logoText = 'REA',
openMessage = 'Nos bureaux sont ouverts !',
closeMessage = 'Nos bureaux sont fermés.'
},
mechanic = { label = 'Benny’s', type = 'warning', minGrade = 2 }
}
}
| Champ | Description |
|---|---|
clé (realestateagent) |
Nom du métier dans votre framework (job.name). |
label |
Nom affiché dans l’annonce et en titre du menu. |
type |
Couleur des annonces libres : success, info, warning ou error. Par défaut info. |
minGrade |
Grade minimum pour annoncer. Par défaut 0. |
logo |
Image facultative : assets/… (fichier placé dans html/assets/) ou adresse https://. |
logoText |
Texte du carré logo quand il n’y a pas d’image. Par défaut, les initiales du nom (trois au plus). |
openMessage, closeMessage |
Messages personnalisés, en texte ou en clé de shared/locales.lua. |
Les autres réglages sont décrits dans la configuration.
Qui peut annoncer
- Le joueur dont le métier figure dans
listavec un grade au moins égal àminGradeannonce au nom de son entreprise. - Sinon, si
Config.Companies.staffdésigne une entreprise de la liste et que le joueur a la permission du menu, il annonce au nom de celle-ci. C’est utile pour le staff et pour les essais. Mettezstaff = nilpour l’empêcher. - Sinon, le joueur reçoit « Vous n’appartenez à aucune entreprise autorisée ».
En standalone, il n’y a pas de métier : seule la règle du staff s’applique.
Contrôles du serveur
Tout est vérifié côté serveur, à chaque annonce :
- le métier et le grade du joueur ;
- le délai
cooldown, compté par entreprise : deux employés ne peuvent pas annoncer coup sur coup ; - la longueur du message libre, entre
minLengthetmaxLength, après suppression des espaces en trop ; - le hook
Hooks.CanAnnounce, s’il renvoiefalse.
Chaque annonce envoyée est passée à Hooks.Log (event company_announce), donc au webhook Discord s’il est renseigné.
Images de logo
Placez vos logos dans html/assets/ (par exemple html/assets/logos/realestate.png) et indiquez le chemin à partir de assets/. Les adresses https:// et nui:// fonctionnent aussi.
Aller plus loin
Pour d’autres règles (plusieurs métiers, gangs, entreprises stockées en base, horaires), modifiez dans server/hooks.lua :
Hooks.GetCompany(source): renvoiename, datade l’entreprise du joueur, ounil;Hooks.CanAnnounce(source, company, kind, message): renvoyezfalsepour refuser.kindvautopen,closeoucustom.
function Hooks.CanAnnounce(source, company, kind, message)
local hour = tonumber(os.date('%H'))
if kind == 'open' and hour >= 3 and hour < 8 then
Hooks.Notify(source, 'Ouverture impossible entre 3 h et 8 h', 'error')
return false
end
return true
end