Salut, j'ai fais un système de modération sur un serveur MMO que je développe. Je te passe la ligne du tempban et je te laisse modifier à ta guise ;)
options:
err: &c[Erreur]
command /mmo [<text>] [<offline player>] [<text>] [<timespan>]:
trigger:
else if arg-1 is "ban":
if arg-2 isn't set:
send "{@err} &cVeuillez préciser le pseudo du joueur !" to player
else if arg-2 is "%player%":
send "{@err} &cVous ne pouvez pas vous ban !" to player
else:
if arg-3 isn't set:
send "{@err} &cVeuillez préciser la raison !" to player
else:
if {ban.%arg-2%} isn't set:
if arg-4 isn't set:
set {ban.%arg-2%} to now
add 1 to {ban.nombre.%arg-2%}
set {ban.raison.%arg-2%} to "%arg-3%"
send "&aVous avez banni définitivement &c%arg-2%" to player
kick arg-2 due to "&cVous êtes banni de ce serveur !%nl%&6Durée: A vie%nl%&cRaison: &a%{ban.raison.%arg-2%}%"
broadcast "&c%arg-2% a été banni du serveur !"
log "[MODERATION] - %player% a banni %arg-2% a vie pour la raison suivante: %arg-3% %nl%" to "%player%.log"
log "[bAN] - %arg-2% a été banni par %player% a vie pour la raison suivante: %arg-3% %nl%" to "%arg-2%.log"
else:
set {ban.%arg-2%} to now
set {ban.timer.%arg-2%} to arg-4
add 1 to {ban.nombre.%arg-2%}
set {ban.raison.%arg-2%} to "%arg-3%"
send "&aVous avez banni &c%arg-2%" to player
set {_t} to {ban.%arg-2%}
add {ban.timer.%arg-2%} to {_t}
kick arg-2 due to "&cVous êtes banni de ce serveur !%nl%&6Jusqu'au %{_t}% %nl%&cRaison: &a%{ban.raison.%arg-2%}%"
broadcast "&c%arg-2% a été banni du serveur !"
log "[MODERATION] - %player% a banni %arg-2% pendant %arg-4% pour la raison suivante: %arg-3% %nl%" to "%player%.log"
log "[bAN] - %arg-2% a été banni par %player% pendant %arg-4% pour la raison suivante: %arg-3% %nl%" to "%arg-2%.log"
else:
send "&c{@err} Ce joueur est déjà banni !" to player
set {_t} to {ban.%arg-2%}
add {ban.timer.%arg-2%} to {_t}
send "&dJusqu'au %{_t}% !" to player
else if arg-1 is "unban": # UNBAN
if arg-2 isn't set:
send "{@err} &cVeuillez préciser le pseudo du joueur !" to player
else:
if arg-3 isn't set:
send "{@err} &cVeuillez préciser la raison !" to player
else:
if {ban.%arg-2%} isn't set:
send "{@err} &cCe joueur n'est pas banni !" to player
else:
delete {ban.%arg-2%}
delete {ban.timer.%arg-2%}
delete {ban.raison.%arg-2%}
send "&aVous avez unban &c%arg-2% &a!" to player
log "[MODERATION] - %player% a unban %arg-2% pour la raison suivante: %arg-3% %nl%" to "%player%.log"
log "[bAN] - %arg-2% a été unban par %player% pour la raison suivante: %arg-3% %nl%" to "%arg-2%.log"
on join:
if {ban.%player%} is set:
if {ban.timer.%player%} isn't set:
set join message to ""
kick player due to "&cVous êtes banni de ce serveur !%nl%&6Durée: A vie%nl%&cRaison: &a%{ban.raison.%player%}%"
else if difference between now and {ban.%player%} is less than {ban.timer.%player%}:
set join message to ""
set {_t} to {ban.%player%}
add {ban.timer.%player%} to {_t}
kick player due to "&cVous êtes banni de ce serveur !%nl%&6Jusqu'au %{_t}% %nl%&cRaison: &a%{ban.raison.%player%}%"
else:
delete {ban.%player%}
delete {ban.timer.%player%}
delete {ban.raison.%player%}
Pour lister les joueurs ban, tu ajoute le pseudo du joueur à une variable liste comme: '{liste.bans::*}'
et tu créée un argument 'list' puis tu fais un: 'send "%{liste.bans::*}%" to player'
Lorsque le joueur est débanni tu fais: 'remove "%player%" from {liste.bans::*}' tout en adaptant bien évidemment le 'player'
J'espère t'avoir aidé ! ;)