Aller au contenu
  • 0

Problème de tempban


Question

Posté(e)

Bonjour à vous !

 

 

J'ai un problème avec un skript, voici quelques infos :

 

J'ai créé un skript entier de sanctions comme ça je peux le tenir à jour moi même sans dépendre de quelqu'un d'autre mais il y a un gros problème. Lorsque j'utilise le tempban, ça ne fonctionne pas. En effet, le joueur est correctement banni mais il n'est pas automatiquement débanni lorsque la durée est dépassée.

J'ai effectué beaucoup de recherches. Cela fait à peu près trois mois que je suis sur ce problème donc la liste des recherches effectuées est très longue. J'ai d'abord tenté plusieurs solutions par moi même, ensuite je suis passé par des forums et des vidéos. J'ai essayé de nombreux codes trouvés sur internet et notamment sur ce forum mais aucun ne fonctionne.

 

Code de la commande tempban :

 

command /tempban <offline player> <int> <text>:
   description: Bannir temporairement un joueur.
   usage: &b/tempban <pseudo du joueur> <durée en jour(s)> <raison>
   permission: powermod.tempban
   permission message: {@prefix} &cVous n'avez pas la permission de mettre un bannissement temporaire direct.
   trigger:
       if arg-1 has permission "powermod.immune":
           message "{@prefix} {@immune}"
       else:
           if {ban::%argument 1%} is set:
               message "{@prefix} {@alreadybanned}"
           else:
               set {ban::%argument 1%} to arg-1
               set {tempbantime.%argument 1%} to arg-2
               set {tempbantamp.%argument 1%} to now
               set {banner.%argument 1%} to player
               set {rban.%argument 1%} to arg-3
               set {mban.%argument 1%} to "{@mtempban}%{rban.%argument 1%}%"
               kick arg-1 because "%{mban.%argument 1%}%"
               broadcast "{@prefix} {@btempban}%{rban.%argument 1%}%"

 

Code de l'événement "On Join" :

 

on join:
   {ban::%player%} is set:
       if {tempbantime.%player%} is set:
           set {_tempban} to difference between now and {tempbantamp.%player%}
           set {_tempban2} to difference between {tempbantamp.%player%} and now
           reduce {_tempban} by {tempbantime.%player%}
           if difference between now and {tempbantamp.%player%} is greater than {tempbantime.%player%}:
               delete {ban::%player%}
               delete {tempbantime.%player%}
               delete {tempbantamp.%player%}
               delete {banner.%player%}
               delete {rban.%player%}
               delete {mban.%player%}
           else:
               kick player because "%{mban.%player%}%"
       else:
           kick player because "%{mban.%player%}%"

 

Comme vous pouvez le voir, lorsque la variable "ban" du joueur existe, ce dernier est automatiquement kické lorsqu'il se connecte. Mais j'ai également deux petits problèmes à ce niveau là :

 

1) Le message de déconnexion apparaît lorsque le joueur est automatiquement kické, je ne sais pas comment l'enlever.

 

2) Le pseudo du joueur apparaît toujours dans le tab, je ne sais pas non plus comment enlever ça.

 

 

Voilà , merci à vous, en espérant que vous puissiez m'aider.

3 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Bonjour à vous !

 

 

J'ai un problème avec un skript, voici quelques infos :

 

J'ai créé un skript entier de sanctions comme ça je peux le tenir à jour moi même sans dépendre de quelqu'un d'autre mais il y a un gros problème. Lorsque j'utilise le tempban, ça ne fonctionne pas. En effet, le joueur est correctement banni mais il n'est pas automatiquement débanni lorsque la durée est dépassée.

J'ai effectué beaucoup de recherches. Cela fait à peu près trois mois que je suis sur ce problème donc la liste des recherches effectuées est très longue. J'ai d'abord tenté plusieurs solutions par moi même, ensuite je suis passé par des forums et des vidéos. J'ai essayé de nombreux codes trouvés sur internet et notamment sur ce forum mais aucun ne fonctionne.

 

Code de la commande tempban :

 

command /tempban <offline player> <int> <text>:
   description: Bannir temporairement un joueur.
   usage: &b/tempban <pseudo du joueur> <durée en jour(s)> <raison>
   permission: powermod.tempban
   permission message: {@prefix} &cVous n'avez pas la permission de mettre un bannissement temporaire direct.
   trigger:
       if arg-1 has permission "powermod.immune":
           message "{@prefix} {@immune}"
       else:
           if {ban::%argument 1%} is set:
               message "{@prefix} {@alreadybanned}"
           else:
               set {ban::%argument 1%} to arg-1
               set {tempbantime.%argument 1%} to arg-2
               set {tempbantamp.%argument 1%} to now
               set {banner.%argument 1%} to player
               set {rban.%argument 1%} to arg-3
               set {mban.%argument 1%} to "{@mtempban}%{rban.%argument 1%}%"
               kick arg-1 because "%{mban.%argument 1%}%"
               broadcast "{@prefix} {@btempban}%{rban.%argument 1%}%"

 

Code de l'événement "On Join" :

 

on join:
   {ban::%player%} is set:
       if {tempbantime.%player%} is set:
           set {_tempban} to difference between now and {tempbantamp.%player%}
           set {_tempban2} to difference between {tempbantamp.%player%} and now
           reduce {_tempban} by {tempbantime.%player%}
           if difference between now and {tempbantamp.%player%} is greater than {tempbantime.%player%}:
               delete {ban::%player%}
               delete {tempbantime.%player%}
               delete {tempbantamp.%player%}
               delete {banner.%player%}
               delete {rban.%player%}
               delete {mban.%player%}
           else:
               kick player because "%{mban.%player%}%"
       else:
           kick player because "%{mban.%player%}%"

 

Comme vous pouvez le voir, lorsque la variable "ban" du joueur existe, ce dernier est automatiquement kické lorsqu'il se connecte. Mais j'ai également deux petits problèmes à ce niveau là :

 

1) Le message de déconnexion apparaît lorsque le joueur est automatiquement kické, je ne sais pas comment l'enlever.

 

2) Le pseudo du joueur apparaît toujours dans le tab, je ne sais pas non plus comment enlever ça.

 

 

Voilà , merci à vous, en espérant que vous puissiez m'aider.

 

Bonjour, tu peux tout a fait créer ton propre script de ban mais pourquoi ne fais tu pas en sorte que ton script de ban, etc... utilise la mécanique de ban de minecraft de base.

Tu peux toujours personnalisé autant que tu veux, mais le ban est gérer par spigot.

  • 0
Posté(e)

DrameKube, je ne peux pas utiliser MaxBans ni tout autre plugin de sanction. Ce serait incompatible avec ce que je veux faire. Puis actuellement tout fonctionne dans mon skript, sauf ce tempban qui fait des siennes.

 

Uiytt, en réalité ce code que j'ai présenté n'est qu'une idée parmi tant de solutions que j'ai testées. La mécanique de base de spigot en faisait partie mais j'avais exactement le même problème, j'ai donc essayé le code que j'ai mis ci-dessus mais ça non plus ça n'a rien arrangé.

 

Edit :

 

STOOOP

 

J'ai trouvé la solution ! Voici le code de la commande /tempban :

 

command /tempban <offline player> <int> <text>:
   description: Bannir temporairement un joueur.
   usage: &b/tempban <pseudo du joueur> <durée en jour(s)> <raison>
   permission: powermod.tempban
   permission message: {@prefix} &cVous n'avez pas la permission de mettre un bannissement temporaire direct.
   trigger:
       if arg-1 has permission "powermod.immune":
           message "{@prefix} {@immune}"
       else:
           if {ban::%argument 1%} is set:
               message "{@prefix} {@alreadybanned}"
           else:
               set {ban::%argument 1%} to arg-1
               set {tempbantime.%argument 1%} to "%arg-2% minutes"
               set {tempbantime.%argument 1%} to {tempbantime.%argument 1%} parsed as timespan
               set {tempbantamp.%argument 1%} to now
               set {banner.%argument 1%} to player
               set {rban.%argument 1%} to arg-3
               set {mban.%argument 1%} to "{@mtempban}%{rban.%argument 1%}%"
               kick arg-1 because "%{mban.%argument 1%}%"
               broadcast "{@prefix} {@btempban}%{rban.%argument 1%}%"

 

Je vous remercie tout de même d'avoir essayé de m'aider, c'est super sympa, en espérant que ce sujet servira à d'autres !

  • Merci 1
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.