Executer une commande lors de la PREMIERE connexion d'un joueur

LePiaf

Architecte en herbe
4 Juin 2017
16
2
64
Bonjour,
je souhaiterais éxecuter une commande lors de la PREMIERE connexion d'un joueur.
Est-ce possible?
Merci
 

Myuto

Une pomme
22 Juin 2016
398
174
155
C'est très vague comme réponse :3
Je ne connais pas ton niveau en commande, et aujourd'hui j'ai un peu la flemme de faire aussi les commande mais bref

Tu fais un système qui exécute la commande à tout ceux qui n'ont pas de score puis tu lui donne 1. Tout les joueurs auront 1, et celui qui se connecte pour la première fois passera à 1 directement avec la commande qui s'exécute.

Donc si tu ne t'y connais pas, renseigne toi sur les scoreboard, et aussi les function si tu ne veux pas de commande block

(Bon il ne va surement pas voir la réponse, il ne s'est pas connecté depuis 3 semaines)
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Concrètement, 2 façons :


1. comme dans les maps d'Hypixel
Avantage : Compatibilité avec beaucoup de versions, Possibilité de construire une "Zone d'apparition" et ainsi contrôler où le joueur apparaît, et également pouvoir le téléporter dès son arrivée sur le monde ou l'affecter avec d'autres commandes. Aucune clock/commande activée à répétition. Cette technique est fortement conseillée

Tu vas dans un endroit dégagé (environ au moins 30x30), tu te mets sur un bloc que tu retiendras (bloc de diamant, genre) et tu fais /setworldspawn.
Maintenant, tout nouveau joueur apparaîtra au hasard dans un carré de 20x20 dont le centre est environ situé où tu as fait la commande.
Maintenant, construits la "plateforme de spawn" : Place un carré de 21x21 (pour être sûr d'englober le rayon de spawn) avec n'importe quel bloc régulier, puis recouvre-le entièrement de ficelle. "Oui mais c'est long"? Va simplement sur le bloc où tu as fait /setworldspawn et tape ces 2 commandes (Si tu te mets en altitude, c'est toujours mieux, la hauteur n'affecte pas le point d'apparition; les joueurs spawneront simplement sur le plus haut bloc, il faut juste s'assurer de ne pas mettre de toit) :
Code:
/fill ~-10 ~ ~-10 ~10 ~ ~10 minecraft:dirt
Code:
/fill ~ ~ ~ ~ ~ ~ minecraft:tripwire
Maintenant, relie toutes les ficelles avec des crochets à chaque extrémité, relie tous les crochets à un système de commande (ou plusieurs identiques, du moment qu'un seul s'active peu importe quels crochets soient activés) avec de la redstone. Ce système de commande doit obligatoirement changer le point de spawn du joueur apparu ( /spawpoint @p [...] ) et également l'y téléporter (/tp @p [...], Sinon, il restera bloqué, hé!).

Et voilà un spawnpoint pour des maps multijoueurs façon hypixel!


2. Méthode de Myuto (en 1.13)
Avantage : Pas besoin de redstone pour détecter un joueur, il s'agit simplement d'une commande exécutée à répétition. Petit truc : le /setworldspawn doit être mis si possible proche du système pour éviter l'inactivité du/des chunks où ce dernier est placé lorsqu'un nouveau joueur apparaît.

Commande à taper au préalable :
Code:
/scoreboard objectives add Nouveau dummy
Effet : crée un scoreboard qui servira à la détection de nouveaux joueurs

La structure : au moins 3 blocs de commande
1er bloc (Répétition) :
Code:
/scoreboard players add @a Nouveau 0
Effet : Ne change rien aux scores des joueurs, mais le fixe à 0 à tous ceux qui n'avaient aucune valeur. (Les joueurs dont le score est sans valeur ne seront pas détectés, sinon)

2ème bloc : Répétition aussi (mettre en chaîne après le premier bloc revient au même vu que ce dernier est toujours exécuté avec succès) :
Simplement la commande à exécuter. Possibilité d'ajouter plusieurs blocs en chaîne à la suite, mais dans le sélecteur de joueur, entrer "@a[scores={Nouveau=0}]". Exemple :
Code:
/tellra @a[scores={Nouveau=0}] {"text":"Bienvenue sur la map!"}
Effet : la commande n'affectera que les nouveaux joueurs, et une seule fois.

Dernier bloc (Doit être exécuté impérativement après le/les 2ème/s bloc/s, en chaîne ou par répéteur; autrement, ceux-ci n'affecteront pas les nouveaux joueurs) :
Code:
/scoreboard players set @a[scores={Nouveau=0}] Nouveau 1
Effet : Fixe le score "Nouveau" à 1 pour tous les joueurs ayant 0 (En l’occurrence, les nouveaux). Cela permettra au/x 2ème/s bloc/s de ne pas les affecter de nouveau.


Je te conseille vivement la première technique, qui évite d'avoir des blocs de commande à répétition dans ton monde.