[Commandblock] Kick un joueur (alternatives)

Reekoup

Fondateur du Project Moonset
4 Août 2012
278
10
75
Alsace
Bonjour,

Je souhaite kick un joueur lorsqu'il est absent depuis 5 minutes (techniquement, lorsque le joueur n'a pas traversé plus de 10 blocks pendant les 5 dernières minutes, en utilisant le stat.walk d'un scoreboard).

Cependant, je pense que vous vous en doutez, ce n'est pas si simple. Un commandblock ne peut exécuter un /kick, de même si on lui rajoute un /execute ... /kick, le jeu ne permet pas à l'entité @e, ou @p d'exécuter la commande (pas de faute de ce côté).

Je me tourne donc vers une éventuelle commande à faire qui téléporterait le joueur, lui donnerait un effet trop élevé, je ne sais quoi pour le kick.
MAIS, parce qu'il y a toujours un mais, je ne veux pas que le joueur, après avoir été kick, se retrouve à une autre position que là où il était précédemment (si l'astuce permettant le kick est de le téléreporter hors de la carte, il faut le re-téléporter par la suite pour ne pas qu'il se retrouve à un autre endroit).

Je doute que ce soit possible, mais je préfère en être sûr avant de réfléchir à d'autres alternatives compromettantes.

Cordialement,

Reek.
 

luludatra

Prêtre level 3
21 Décembre 2013
660
143
167
25
Bruxelles
Salut , sur un serveur Minecraft Vanilla , il y'a la commande /setidletimeout qui permet justement de gérer le nombre de minutes avant une déconnexion afk. Tu as aussi accès au /kick sur un serveur Minecraft Vanilla.

Au sinon , avant de tp ton joueur , tu places sur lui une ArmorStand avec un nom. Il te suffirais après, qu'à la reconnexion , tu le tp à cette ArmorStand. Tu peux capter une déconnexion avec le Stat.LeaveGame.

Voilà , j'espère que je t'ai un peu aidé !
 
  • J'aime
Reactions: Reekoup

Reekoup

Fondateur du Project Moonset
4 Août 2012
278
10
75
Alsace
Wow, une grande aide ! Merci beaucoup, c'est surtout ta commande /setidletimeout qui est juste parfaite et correspond exactement à ce que je cherchais, inutile de passer par un système redstone dans ce cas !

J'aurais encore deux petites questions sur cette dernière :

- Est-elle active de base (sans la rentrer) ?
- Si un jour se déplace ne serait-ce que d'un bloc, est-ce que il pourra rester connecté et reset le timer ?

Reek
 

luludatra

Prêtre level 3
21 Décembre 2013
660
143
167
25
Bruxelles
Première question : Je penses qu'il n'y en a pas.
Deuxième question : Pour annuler le timer , il faut qu'il se deplace de lui même. Il n'y a pas de minimum de block a parcourir. De plus , le timer s'annule aussi quand le joueur saute ou qu'il accroupit.

Derien :3
 

Reekoup

Fondateur du Project Moonset
4 Août 2012
278
10
75
Alsace
J'ai pu lire ça sur un forum anglophone :

Note: Idle time is reset when the server receives one of the following packets:
102 (0x66) WindowClick
108 (0x6c) ButtonClick
130 (0x82) UpdateSign
14 (0xe) BlockDig
15 (0xf) Place
16 (0x10) BlockItemSwitch
18 (0x12) ArmAnimation
19 (0x13) EntityAction
205 (0xcd) ClientCommand
3 (0x3) Chat
7 (0x7) UseEntity
Ça remonte au mois dernier, je pense que c'est toujours valable non ?
 

luludatra

Prêtre level 3
21 Décembre 2013
660
143
167
25
Bruxelles
Oui c'est certainement valable , je n'ai juste aucunes idées de qu'est ce que ca signifie, tu sais me donner le lien de ce forum ?

Edit : En faite si , le timer se reset quand une de ces actions se fait par le joueur.