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.