Serveur minecraft

perrochon / simple-bedrock-script: Tutoriel et Script Simple pour Minecraft Bedrock Dedicated Server – Monter un serveur MineCraft

Le 13 avril 2020 - 7 minutes de lecture

Script simple pour Bedrock Server et – plus important encore – étapes pour le faire fonctionner. Le script devrait fonctionner sur n'importe quel Bedrock, mais le plus difficile est de faire fonctionner les choses sur le serveur dédié.

Objectif: Exécutez Minecraft Bedrock Dedicated Server sous Windows avec un script côté serveur. Connectez-vous à partir d'un appareil mobile et voyez le script en action.

Une fois que vous avez exécuté ce script, vous pouvez continuer avec des scripts plus excitants.

Avertissement: Ceci est un tutoriel non officiel. Il n'est pas approuvé par ou affilié à Minecraft / Mojang.

Il faut se méfier

  • Le serveur Bedrock dédié est en alpha. Cela signifie que les choses changent fréquemment et que les modifications interrompent les scripts de travail. Tout ici pourrait bientôt être dépassé. La dernière mise à jour ci-dessous est vérifiée pour 1.12.0.28 (consultez l'historique des versions du fichier pour plus de détails)
  • Les choses sont très fragiles. Il n'y a pas de bons outils disponibles. Une virgule manquante et les choses cessent de fonctionner.
  • Actuellement, les scripts clients ne fonctionnent que sur Windows 10 (pas sur iOS, Android, etc.). Mais vous pouvez exécuter des scripts de serveur sur le serveur et vous connecter à partir d'iOS / Android.

Pourquoi veux-tu faire cela?

  • Vous utilisez Minecraft Bedrock au lieu de Minecraft Java Server Edition parce que vous souhaitez l'interopérabilité avec les appareils mobiles. Sinon, vous Java Server Edition, il est beaucoup plus puissant et probablement mieux documenté.
  • Vous voulez un serveur dédié parce que vous ne voulez pas / ne pouvez pas exécuter le Minecraft complet pour Windows 10. Sinon, exécutez Microsoft pour Windows 10 qui a un serveur et un client et est globalement beaucoup plus convivial à exécuter. Une grande partie de la documentation officielle est destinée à cela (par exemple, l'emplacement du fichier journal de contenu)
    ** La principale raison d'exécuter le serveur uniquement est de l'exécuter en arrière-plan ou dans le cloud et de le faire fonctionner tout le temps.
    ** L'autre raison est parce que c'est amusant.

Références

l'installation du serveur Bedrock est assez bien documentée ailleurs. Cliquez sur le lien ci-dessus pour commencer. Continuez ici une fois que le serveur est en cours d'exécution et que vous pouvez vous y connecter à partir d'un appareil mobile.

Choses à surveiller dans le server.properties fichier

# Rendez le débogage facile
allow-cheats = true
gamemode = creative
mode en ligne = faux

# Nous en aurons besoin pour les modules complémentaires
texturepack-required = true

Trouvez un pack de comportements (par exemple, CoolAligators), téléchargez et décompressez. Vous devez ajouter le pack de comportement à ces dossiers (j'ajoute tout décompressé):

 server  behavior_packs  CoolAlliga

Et le pack de ressources ici:

 server  resource_packs  CoolAlliga

S'ils sont au bon endroit et valides, le serveur les lira au démarrage et les ajoutera au fichier

 server  valid_known_packs.json

Cela ressemblera à

"file_system": "RawPath",
"path": "resource_packs / CoolAlliga",
"uuid": "0ca59398-f5ce-11e8-8eb2-f2801f1b9fd1",
"version": "1.8.0"
,


    "file_system": "RawPath",
    "path": "behavior_packs / CoolAlliga",
    "uuid": "b2d39a5c-f5c5-11e8-8eb2-f2801f1b9fd1",
    "version": "1.8.0"

Vous devez maintenant ajouter les packs à votre monde. Les fichiers à éditer sont:

 server  worlds  your_world  world_behavior_packs.json
 server  worlds  your_world  world_resource_packs.json

Le formatage est différent, mais vous ajoutez l'uuid et la version comme ceci:


    "pack_id": "b2d39a5c-f5c5-11e8-8eb2-f2801f1b9fd1",
    "version" : [ 1, 8, 0 ]

En cas de succès, il invitera un client connecté (par exemple iPhone) à télécharger le pack de ressources. (Vous aviez besoin server.properties, oui? Cela vous dit que tout fonctionne bien.

Si vous avez téléchargé un pack mondial (par ex. Invasion extraterrestre), décompressez mondes sous-dossier, puis déplacez le
comportement et packs de ressources dans les dossiers ci-dessus. le monde _ <> _ packs.json les fichiers seront déjà là.
Vous devrez modifier le nom de niveau dans le fichier servers.properties pour pointer vers le bon dossier mondial.
Vous ne pouvez avoir qu'un seul monde / niveau en cours d'exécution dans Bedrock.

# level-name = Niveau du substratum rocheux
level-name = invasion extraterrestre

Vous savez maintenant que les modules complémentaires fonctionnent essentiellement. Le serveur les trouve, les charge et envoie tout ce qui est nécessaire au client. Les scripts sont à peu près les mêmes.

Mise à jour des modules complémentaires

Si vous développez activement un pack de ressources (c'est-à-dire en le modifiant), vous devrez peut-être incrémenter le numéro de version
à deux endroits, le pack lui-même et le monde. C'est par exemple true si vous remplacez un fichier de texture. Il aura
pour être rechargé dans le monde.

 server  resource_packs  CoolAlliga  manifest.json
 server  worlds  your_world  world_resource_packs.json

Redémarrez ensuite le serveur et il récupérera les modifications (et invitera les clients à télécharger).
Si vous venez de changer un script, le redémarrage du serveur semble suffisant. Les scripts sont lus à partir de la source au démarrage du serveur.

Vous obtenez d'abord le pack Comportement vanille et l'ajoutez (voir ci-dessus). Vous pouvez obtenir le pack et plus d'informations ici

https://minecraft.gamepedia.com/Bedrock_Edition_beta_scripting_documentation

Il ne contient aucun script dans le dossier, vous devez donc en créer un. Le code ci-dessous est dans le fichier countingTicks.js.

system = server.registerSystem (0, 0);

var tickNumber = 0;

system.update = function () 
    // augmente le nombre de ticks
    tickNumber ++;

    // si le nombre de ticks est exactement divisible par 100 (toutes les quelques secondes)
    if (tickNumber% 100 === 0) 
        laissez BroadcastEventData = this.createEventData ("minecraft: display_chat_event");
        BroadcastEventData.data.message = "Tick" + tickNumber.toString ();
        this.broadcastEvent ("minecraft: display_chat_event", BroadcastEventData);
    
;    

Je ne sais pas où vont les messages d'erreur (s'ils vont n'importe où), donc s'il y a quelque chose de mal avec votre code, même un seul manquant ;, il échouera en silence. J'ai commencé à valider tout le code dans un validateur JavaScript distinct (Google vous en trouvera un).

Remarque: Pour exécuter réellement des scripts, vous devez mettre votre monde en mode expérimental. Il existe au moins deux façons de procéder.

Utilisez Minecraft pour Windows 10

Vous créez le monde dans le jeu complet et l'exportez. Importez-le ensuite sur le serveur. Ceci est documenté ailleurs, et je ne l'ai pas essayé car je n'ai pas Minecraft pour Windows 10. Il peut fonctionner avec Minecraft sur iPad, mais déplacer des fichiers aléatoires de l'iPad vers Windows est également délicat.

Patch niveaux.dat

Vous corrigez un fichier de données (binaire). Vous avez besoin d'un bon éditeur, comme Notepad ++ pour que le fichier ne soit pas corrompu. Chaque fois que vous corrigez des fichiers comme celui-ci, faites d'abord une copie de sauvegarde …

Trouvez d'abord le fichier

dossier_serveur / world / world_name / level.dat

Si vous utilisez Notepad ++, cela dira quelque chose comme

jeu expérimental[NUL][SOH]

[NUL] et [SOH] sont chacun un seul caractère de contrôle spécial. Copiez le [SOH] et remplacez le [NUL]. Faites ressembler

jeu expérimental[SOH][SOH]

Cela a fait l'affaire pour moi. Rapide, facile, moche. Patcher du code binaire n'est vraiment pas un bon moyen de développer un logiciel, mais en ce moment, il me semble que c'est le meilleur moyen.

Caractéristiques futures

  • Expérimentez un paramètre dans server.properties.
  • Journalisation des erreurs de contenu (cela est censé fonctionner, mais je ne sais pas où serait le fichier de contenu)
  • Meilleur signalement global de tout problème
  • Scripts côté client sur des clients autres que Windows 10, avant tout Android et iOS

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.