Sponge Forge - un serveur avec des mods et des plugins !

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 815
156
3 000
347
26
Alsace
www.minecraftforgefrance.fr
Salut à tous et à toutes !

Si vous chercher une alternative plus récente à Cauldron ou comment faire un serveur acceptant à la fois des mods et des plugins, vous êtes tombé au bon endroit. Dans ce tutoriel, nous allons voir comment mettre en place un serveur Sponge Forge, comment le configurer et quels sont ses possibilités.

Jusqu'en 1.7.10 Cauldron gérait parfaitement ce rôle. Cependant, faire fonctionner l'API de Bukkit par-dessus un serveur Forge a toujours été quelque chose de compliqué car l'API de Bukkit n'avait pas été conçu pour. Cela n'a pas gêné en soit pour l’existence de Cauldron, mais cela toujours été un problème auquel un événement s'est ajouté : Craftbukkit (tout comme Spigot et Cauldron) mélange du code de Mojang (le serveur de Minecraft) et de l'API de Bukkit qui est sous licence GPL. Or la licence GPL n'autorise pas la redistribution de code sous licence GPL s'il est mélangé avec du code propriétaire. Pendant longtemps cela n'avait gêné personne, en revanche suite à l'annonce du rachat de Mojang par Microsoft, un développeur de Bukkit n'appréciant pas que Mojang fini entre les mains Microsoft, ce dernier a cherché à saboter l'univers du serveur Minecraft en dénonçant le problème de licence qui avait toujours existé. Suite à cela, un DMCA Takedown a été déposé sur tous les projets utilisant Bukkit, rendant ainsi indisponible tous les projets en question.
La communauté s'est malheureusement divisé en deux suite à cet événement. D'un côté md5, le développeur de Spigot ne voulait pas abandonner tout ce qui avait été fait jusqu'ici et décida de continuer le développement de Spigot avec son équipe. Pour éviter des problèmes avec la loi, ils ne distribuent plus directement Spigot mais seulement les sources séparées et un outil pour le compiler soi-même, ce qui permet de contourner le problème de la licence GPL. D'un autre côté, BloodMC (ancien développeur de Cauldron), sk89q (développeur de world edit et world guard), Mumfrey (développeur de little loader) ont été rejoint par beaucoup d'autres personnes et ont déterminé ensemble qu'il fallait un nouveau départ, un API avec une licence bien choisit et un autre système de distribution pour ne plus avoir de problème de loi ainsi qu'un API conçu pour fonctionner avec Forge.

Et c'est ainsi que naquit Sponge. Tout comme Bukkit, il s'agit d'un API disposant d'une couche d'abstraction et qui est présente uniquement côté serveur. La couche d'abstraction permet aux plugins utilisant cette API de «résister» aux changements de version de Minecraft. Attention par contre, un changement de l'API de Sponge pourra casser des plugins. Ainsi un plugin conçu pour l'API 5 de Sponge ne fonctionnera pas forcément avec la version 7. Le fait que ce soit uniquement côté serveur permet d'éviter aux clients de devoir installer les plugins, cependant cela limite les possibilités. Dans notre cas comme nous allons mettre en place un serveur qui contient des mods, cette avantage ne nous concerne pas comme les mods doivent de toute façon être installé sur le client du joueur.
À ce jour, l'API Sponge dispose de deux implémentations :
  • Sponge Vanilla : c'est l'équivalent de Craftbukkit, la différence c'est qu'il ne contient pas le code de Minecraft et qu'il implémente l'API de Sponge et non de Bukkit. Il doit être utilisé en complément du fichier minecraft_server<version>.jar. Sponge vanilla ne permet que d'avoir des plugins Sponge.
  • Sponge Forge : il s'agit d'un mod implémentant l'api Sponge. Il suffit donc de l'installer comme un mods par-dessus un serveur forge existant. Sponge Forge permet d'avoir des mods forge et des plugins Sponge, c'est bien sûr cela-la qui nous intéresse.
/!\ Note importante : l'API de Sponge étant différent de celui de Bukkit, les plugins Bukkit ne peuvent pas fonctionner sur un serveur Sponge. /!\


I. Installation du serveur :

Pour commencer rendez-vous sur la page de téléchargement de Sponge Forge : https://www.spongepowered.org/downloads/spongeforge/
Choisissez votre version de Minecraft (il n'y aura pas forcément de version stable dans la version de Minecraft que vous souhaitez, cliquez alors sur le bouton jaune "experimental". Prenez de préférence toujours le dernier build disponible. Le fichier téléchargé aura un nom sous la forme suivante :
spongeforge-<version de minecraft>-<build de forge>-<version de l'api sponge>-<build de sponge>.jar
Maintenant rendez-vous sur la page de téléchargement de Forge : http://files.minecraftforge.net/
Il est essentiel de prendre la version de forge portant le numéro de build indiqué dans le nom du fichier de Sponge que vous avez téléchargé. Si vous prenez une autre version, cela ne fonctionnera pas. Par exemple, ayant téléchargé spongeforge-1.12.1-2444-7.0.0-BETA-2602.jar je vais maintenant télécharger l'installateur de Forge 1.12.1-14.22.0.2444

Une fois les fichiers téléchargés, passez directement à la partie qui vous concerne (installation en local sur votre pc / installation sur un hébergeur Minecraft / installation sur un serveur dédié ou un VPS Linux)

Sur son pc :

Lancez l'installateur de Forge en faisant un double clic dessus, cochez la case "install server", choisissez un dossier pour votre serveur et enfin cliquez sur OK pour lancer l'installation.
Une fois l'installation terminée, ajoutez SpongeForge dans le dossier mods du serveur (créez-le s'il n'existe pas déjà).

Il nous reste maintenant à créer le script de lancement.

Sous Windows, ouvrez le bloc note et écrivez ceci dedans :
Code:
java -Xms512M -Xmx1G -jar forge-<version de minecraft>-<version de forge>-universal.jar
pause
La première ligne sert à lancer le serveur avec 512mo de ram minimum et 1go maximum. Vous pouvez changer ces valeurs si besoin par des nombres plus élevés.
Pensez bien à remplacer <version de minecraft> et <version de forge> par ce qu'il faut. Vous devriez avoir exactement le nom du fichier après remplacement, avec .jar à la fin.
La deuxième ligne est une commande Windows qui va faire une pause jusqu'à que l'utilisateur appuie sur une touche de clavier. Elle permet d'éviter que la fenêtre de cmd se ferme si votre serveur crash, ce qui vous permettra de lire les logs.
Cliquez sur le menu fichier puis sur enregistrer sous... Allez le dossier de votre serveur, mettez comme nom "start.bat" et dans type choisissez "tous les fichiers (*.*)", cela est très important sinon le fichier final ne sera pas un .bat.
attachment.php


Sous MacOS, ouvrez votre éditeur de texte et écrivez ceci :
Code:
#!/bin/bash
cd "$(dirname "$0")"
java -Xms512M -Xmx1G -jar forge-<version de minecraft>-<version de forge>-universal.jar
La première ligne sert à indiquer à MacOS qu'il faut utiliser l’interpréteur bash pour exécuter ce script.
La deuxième fait en sort que le script s'exécute dans le dossier où se trouvera le fichier.
Et la dernière ligne lances le serveur. Pensez bien à remplacer <version de minecraft> et <version de forge> par ce qu'il faut. Vous devriez avoir exactement le nom du fichier après remplacement, avec .jar à la fin.
Enregistrez ensuite le fichier sous le nom de start.command, dans le dossier de votre serveur.
Pour finir ouvrez un terminal, taper chmod u+x, ajoutez un espace, glissez le fichier start.command dans le terminal et appuyez ensuite sur entrée. Cela va ajouter les permissions d’exécution sur le fichier afin que vous puissiez lancer le serveur avec un simple double clic.

Sous Linux, ouvrez votre éditeur de texte et écrivez ceci :
Code:
#!/bin/sh
java -Xms512M -Xmx1G -jar forge-<version de minecraft>-<version de forge>-universal.jar
La première ligne sert à indiquer à Linux qu'il faut utiliser un interpréteur sh pour exécuter ce script (la plupart des distributions utilisent bash par défaut).
La deuxième ligne lances le serveur. Pensez bien à remplacer <version de minecraft> et <version de forge> par ce qu'il faut. Vous devriez avoir exactement le nom du fichier après remplacement, avec .jar à la fin.
Enregistrer le fichier sous le nom de start.sh dans le dossier de votre serveur.
Ensuite faites un clic droit dans le dossier votre serveur et cliquer sur "ouvrir un terminal ici" (ou ouvrer un terminal, tapez cd, ajoutez un espace, glisser le dossier de votre serveur puis appuyez sur entrée) et taper la commande suivante :
Code:
chmod u+x start.sh
Pour lancer le serveur, il faudra taper la commande suivante :
Code:
./start.sh


Une fois le script en place, lancez le serveur. Ce dernier crashera la première fois car il faut accepter l'EULA de Minecraft.
Un fichier nommé eula.txt devrait avoir apparu dans le dossier de votre serveur, ouvrez-le avec un éditeur de texte et remplacez false par true au niveau de la ligne eula=false.

Démarrez à nouveau votre serveur, cette fois cela devrait fonctionner. Vous pouvez vous y connecter avec l'adresse "localhost" ou avec l'ip "127.0.0.1".
Seuls vous et les personnes directement connectées sur votre box internet pourront s'y connecter, pour le rendre accessible sur le reste du réseau il faut paramétrer le NAT de votre box internet.

Sur un serveur Minecraft hébergé :

Créez un dossier temporaire quelque part (sur votre bureau par exemple) puis lancez l'installateur de Forge en faisant un double clic dessus, cochez la case "install server", choisissez le dossier créé précédemment et enfin cliquez sur OK pour lancer l'installation.
Sur le panel d'administration de votre hébergeur, configurer le serveur en mode "open mod", cela vous permettra de choisir quel jar lancer. Si vous ne savez pas comment faire, consultez la FAQ de votre hébergeur ou contactez leur support.
Après cela, utilisez un logiciel de FTP (filezilla par exemple) et vos identifiants pour vous connecter au serveur FTP de votre hébergeur.
Ensuite uploadez sur le serveur FTP tous les fichiers et dossiers qui ont créé par l'installateur de forge se trouvant dans le dossier temporaire. Uploadez également le fichier Sponge dans le dossier mods du serveur.

Pour finir, choisissez sur le panel le jar de forge comme fichier à lancer (attention de ne pas sélectionner minecraft_server comme fichier, sinon ni les mods ni les plugins ne fonctionneront pas) et lancez le serveur.

Sur un serveur dédié ou un VPS Linux :

/!\ Cette partie à juste pour but d'expliquer comment installer un serveur Sponge sur un serveur Linux, elle n'explique pas comment administrer un serveur Linux. Nous vous lancez pas dans cette tâche avant d'avoir apprit les bases du terminal Linux et sans avoir de notion de sécurité des bases (créer un utilisateur pour les applications au lieu de tout lancer en root, modifier le port ssh, désactiver le login root et l'identification par mot de passer au profit de celle par clef, etc.). Si vous débutez dans le domaine, je vous conseil de suivre ces tutoriels /!\

Note : Ce tutoriel est réalisé pour Debian, mais peut très bien aussi fonctionner sous Ubuntu ou d'autres distributions en adaptant un peu les commandes.

Commencez par vous connecter à votre serveur en SSH, puis passez en root avec la commande su (vous pouvez aussi utilisez sudo si vous l'avez installé).
Installer ensuite Java et screen :
Code:
apt-get install openjdk-8-jre screen
Sortez du root avec la commande exit, créez un dossier pour votre serveur et allez dans ce dernier :
Code:
mkdir spongeserver && cd spongeserver
Plutôt que faire une installation de Forge en local puis uploader les fichiers, nous allons directement lancer l'installation sur le serveur.
Uploadez donc l'installateur de forge via sftp ou ftp ou téléchargez l'installateur directement sur le serveur avec wget :
Code:
wget http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444-installer.jar
(exemple avec le fichier forge-1.12.1-14.22.0.2444-installer.jar. Vous pouvez obtenir le lien direct en faisant un clic droit sur l'icône information de la page de forge puis en cliquant sur "copier l'adresse du lien").
Ensuite exécutez l'installateur de forge :
Code:
java -jar forge-1.12.1-14.22.0.2444-installer.jar --installServer
(pensez bien à remplacer le nom de fichier par ce qu'il faut).
Cela va installer tous les fichiers dans le dossier dans lequel l'installateur se trouve. Une fois terminé vous pouvez supprimer le fichier de l'installateur (attention de ne pas supprimer le fichier universal).

Ensuite uploadez le fichier de sponge dans le dossier mods du serveur, ou téléchargez-le avec wget :
Code:
wget -P ./mods https://repo.spongepowered.org/maven/org/spongepowered/spongeforge/1.12.1-2444-7.0.0-BETA-2602/spongeforge-1.12.1-2444-7.0.0-BETA-2602.jar
(-P ./mods permet de mettre le fichier dans le dossier mods du dossier courant, qui devrait normalement être le dossier de votre serveur).


Il ne nous reste plu-qu’à créer un script de démarrage :
Code:
echo "screen -dmS tuto java -Xms512M -Xmx4096M -jar <nom exacte de l'archive de forge>.jar" > start.sh && chmod u+x start.sh
Pensez bien à remplacer <nom exacte de l'archive de forge> par ce qu'il faut.
Cela va créer un fichier nommé start.sh permettant de lancer le serveur dans un nouveau screen et rendre ce fichier exécutable.
Lancez le serveur dans un screen est essentiel, si vous le lancez directement dans notre terminal lorsque vous arrêterez votre connexion SSH le serveur se coupera aussi ...
Le screen aura un nom (tuto, vous pouvez mettre autre chose) et vous pouvez le rejoindre à l'aide de la commande "screen -x tuto". Si le serveur se coupe le screen se coupera également, cela vous évitera des screens fantômes. N'hésitez pas aussi à changer les paramètres de ram si besoin.

Démarrez ensuite le serveur en entrant "./start.sh" pour exécuter le script.
Le serveur crashera peut après le démarrage car il faut accepter l'EULA de Minecraft. sed va nous permettre de remplacer false par true sans même ouvrir le fichier :
Code:
sed -i s/false/true/g eula.txt
Vous pouvez démarrer à nouveau le serveur maintenant.

II. Configuration :

Comme sur tout serveur Minecraft, le fichier server.properties permet de configurer de nombreux paramètres, tel que la description du serveur, le mode de jeu par défaut, le nombre maximum de joueur, etc.
  • max-tick-time est le temps de tick maximum. L'horloge interne de minecraft fonctionne à une vitesse de 20 tick par seconde (TPS). C'est à dire que 20 fois par seconde toutes les fonctions de Minecraft vont être exécuté (l'avancement des fours, l'exécution des ia, actualiser la redstone, le cycle jour/nuit, etc ...). Si votre processeur n'arrive pas à suivre, les tps vont chuter. Si les tps tombe à 10, tout sera deux fois plus lent.
    Ce paramètre sert à forcer le crash du serveur si les tps chute trop (le temps maximum en milliseconde que peut durer un tick. Il peut déranger dans certains cas, il faut mettre la valeur sur 0 pour le désactiver.
  • gamemode est le mode de jeu par défaut (0 par défaut pour le mode survis, 1 pour créatif, 2 pour aventure et 3 pour spectateur. Si vous changez ce paramètre, seul les nouveaux joueurs seront actualisés. Vous pouvoir alors mettre force-gamemode sur true pour actualiser le gamemode de tous les joueurs, y compris les anciens.
  • allow-nether permet d'activer (true) ou désactiver (false) le nether, activé par défaut.
  • player-idle-timeout permet de définir un temps d'inactivé maximum (en seconde). Si un joueur n'est pas actif pendant le temps indiqué il sera déconnecte. 0 par défaut, donc non activé.
  • difficulty est la difficulté du serveur, 1 par défaut. Il faut mettre 0 pour paisible, 1 pour facile, 2 pour moyen et 3 pour difficile.
  • spawn-monsters permet de désactiver le monstre en mettant sur false (true par défaut).
  • spawn-animals permet de désactiver les animaux en mettant sur false (true par défaut).
  • spawn-npcs permet de désactiver les villageois en mettant sur false (true par défaut).
  • pvp permet de désactiver le combat entre joueur en mettant sur false (true par défaut).
  • hardcore permet d'activer le mode hardcore (pas de régénération naturel, banni du serveur lors de la mort) en mettant sur true (false par défaut)
  • announce-player-achievements annonce les succès obtenus par les joueurs dans le chat. À mettre sur false pour désactiver, true par défaut.
  • enable-command-block permet d'activer les blocs de commandes en mettent sur true (false par défaut)
  • max-players défini le nombre maximum de joueur pouvant être connecté simultanément sur le serveur (20 par défaut).
  • max-world-size défini à combien de bloc en partant du spawn se trouve la limite de map (29999984 par défaut).
  • level-name défini le nom du dossier du monde (world par défaut).
  • view-distance défini le nombre de chunk qui vont être chargés dans chaque direction autour des joueurs. Plus cette valeur sera élevée, plus il y aura de chunk chargés autour des joueurs, donc plus la charge sera lourde pour le serveur. Si vous sentez que les tps chutent, n'hésitez pas à réduire cette valeur pour diminuer les ressources dont a besoin le serveur (10 par défaut).
  • resource-pack permet de définir un pack de ressources pour le serveur. Il faut mettre un lien de téléchargement direct (c'est à dire que le téléchargement est directement lancé quand on clic dessus) vers l'archive du pack de ressource (rien par défaut).
  • white-list permet d'activer la liste blanche en mettant sur true. Une fois la liste blanche activée, seul les joueurs inscrit dessus pourront se connecter sur le serveur. Vous pouvez utiliser la commande "whitelist add nomDuJoueur" pour ajouter un joueur à la liste blanche (false par défaut).
  • max-build-height permet de limiter la hauteur maximum (impossible de l'augmenter dû à une limitation du format des mondes de Minecraft). 256 par défaut, ce qui est le maximum.
  • level-seed permet de spécifier un seed pour le serveur, si rien n'est indiqué le serveur générera un seed aléatoire.
  • level-type permet de changer le type du monde en mettant FLAT, LARGEBIOMES ou encore AMPLIFIED (DEFAULT par défaut).
  • motd est la description du serveur qui s'affiche sur la liste des serveurs ("A Minecraft Server" par défaut).
  • server-port permet de changer le port du serveur, utile pour lancer plusieurs serveurs sur une même machine. (25565 par défaut).

Sponge a plusieurs fichiers de configuration, un qui est global se trouvant dans le dossier config/sponge et se nommant global.conf et un fichier par monde se trouvant dans le dossier config/sponge/worlds/minecraft/type de monde/nom du monde/ nommé world.conf.
Ces fichiers utilisent le format HOCON, un format similaire au JSON mais plus simple à manipuler pour un humain.

Il y a de nombreux paramètres qui sont détaillés sur la documentation officielle.
Je vais donc parler dans ce tutoriel seulement des paramètres que j'estime être pertinent pour beaucoup de monde :
  • block-tracking :
    • block-blacklist permet de bloquer des blocs. Les blocs doivent être entre les crochets, séparés par des virgules et être une chaine de caractère sous la forme suivante "modid:nom du bloc" (comme pour la commande /give).
  • bungeecord :
    • ip-forwarding permet d'activer le forward d'ip. Essentiel si votre serveur est derrière un proxy bungeecord. Il faut également activer bungeecord dans la partie modules du fichier de config de Sponge et activer ip_forward dans la configuration de bungeecord.
  • entity-activation-range vous permet de contrôler par type d'entité la distance à partir de laquelle les entités spawn autour des joueurs. Avec une valeur plus petite, les entités qui auraient normalement apparues loin du joueur n'apparaitront pas, ce qui réduira le nombre d'entités et donc la charge du serveur.
  • entity :
    • count-warn-size vous permet d'afficher un message dans la console si le nombre d'entité dépasse ce nombre, cela peut-être utile pour surveiller le nombre d'entité. Par défaut sur 0, ce paramètre est désactivé.
    • item-despawn-rate vous permet de diminuer ou augmenter le temps avant que les items au sol disparaissent. Une valeur plus faible permettra généralement de réduire la charge du serveur.
    • living-hard-despawn-range et living-soft-despawn-range permettent de contrôler la distance maximum et minimum qu'il peut avoir entre un joueur et un monstre pour qu'il despawn. Au dessus du maximum l'entité despawnera forcement, en dessous du minimum elle sera forcement. Réduire ces valeurs permet de réduire la charge du serveur.
  • general :
    • plugins-dir vous permet de changer le dossier où sponge cherche les plugins. Par défaut il les cherche dans le dossier "${CANONICAL_MODS_DIR}/plugins" c'est à dire dans le dossier plugins qui se trouve dans le dossier mods. Si vous préférez que le dossier plugins soit directement à la racine du dossier du serveur, remplacez par "${CANONICAL_GAME_DIR}/plugins".
  • logging : cette catégorie contient plusieurs configurations vous permet d'afficher dans la console différents événements, tous sont désactivés par défaut.
  • world :
    • auto-player-save-interval permet de changer la fréquence à laquelle les données des joueurs (inventaires, positions, etc.) sont sauvegardés. 900 ticks par défaut (donc 45 secondes), augmenter cette valeur diminuera la charge du serveur et les accès au disque, en revanche en cas de plantage du serveur un rollback aura des conséquences plus importantes.
    • auto-save-interval même chose que le paramètre suivant mais cette fois-ci cela concerne le monde.
    • flowing-lava-decay permet donner à la lave le même comportement que l'eau lorsqu'elle se retire, c'est à dire qu'elle ne laissera plus de trace si le paramètre est mit sur true. false par défaut (comportement de base de Minecraft)
    • infinite-water-source comme son nom de l'indique pas du tout, passer ce paramètre sur true désactivera les sources infinies d'eau. false correspond au comportement de base de Minecraft.
    • item-merge-radius permet de régler la distance à laquelle les items aux sols se fusionnent s'ils sont du même type. De base Minecraft utilise une distance de 0,5, Sponge lui utilise 2,5. Cela permet de limiter le nombre d'entités items au sol et donc de réduire la charge du serveur.
    • keep-spawn-loaded permet de faire en sorte ou non que les chunks au niveau du chunk soit toujours chargés.
    • pvp-enabled permet d'activer ou désactiver le pvp.
  • config-enabled permet d'activer la configuration. Cette option n'a aucun effet dans le fichier global.conf (elle sera toujours activée) en revanche pour les configurations de monde, si ce paramètre n'est pas activé la configuration globale sera utilisée au lieu de la configuration du monde.

III. Téléchargement et installation de mods :

Il existe de nombreuses sources pour se fournir des mods, pendant longtemps le forum de minecraftforum.net était incontournable. Cependant la plateforme CurseForge, plus adaptée pour le partage de mod a prit sa place. C'est l'une des sources les plus complètes pour les mods. Certains gros mods ont aussi leurs propres sites. Il existe ensuite de nombreux forums où des mods sont publiés, dont le notre dans la section vos mods.
/!\ Un rappel important pour vos recherches de mods : les mods ne fonctionnent que avec la version pour laquelle ils sont conçus. Un mod 1.11.2 ne fonctionnera pas en 1.12.1 /!\

Pour installer un mod, il suffit de le mettre dans le dossier mods du serveur.
Attention, les mods devront aussi être installé sur votre client sans quoi le serveur rejettera vos tentatives de connexion. Tous les joueurs de votre serveur devront donc avoir Forge et les mêmes mods que le serveur. Afin que vos joueurs puissent profiter d'une installation facile, nous vous conseillons d'utiliser notre installateur (qui inclut un système de mise à jour).

Il existe cependant une exception : les mods "server side". Ces mods fonctionnent comme des plugins, ils ne doivent que être installés sur le serveur, l'installer sur le client n'est pas nécessaire pour son fonctionnement (voire des fois il est impossible de les installer sur le client). C'est notamment le cas de Dynmap Forge par exemple. Ces mods peuvent être reconnu par le fait qu'ils n'ajoutent aucuns éléments visuels, ni de blocs, ni d'items, ni d'entités.

Attention, l'inverse existe aussi : les mods "client side". Ces mods ne fonctionnent pas sur un serveur (ils seront soit ignoré, soit ils causeront un crash du serveur). C'est par exemple le cas d'Optifine. Ces mods peuvent être reconnu par le fait qu'ils n'ajoutent pas de blocs, ni d'items, ni d'entités. Souvent ils vont uniquement changer des mécanismes visuels du jeu (pour reprendre l'exemple d'Optifine, il ajoute quelques options et modifie en profondeur les mécanismes de rendus du jeu pour avoir de meilleurs performances).

IV. Téléchargement et installation de plugins :

Les plugins Sponge sont actuellement publiés sur deux sources différentes :
  • Via forum de Sponge pour les plugins stables et en développement.
  • Via la plateforme Ore. Cette plateforme est un équivalent de CurseForge et de dev.bukkit.org pour les plugins Sponge, elle est vouée à remplacer le forum à terme.
Sponge ayant une couche d'abstraction, en général vous n'avez pas à vous soucier de la version. Il peut quand même avoir des problèmes si le plugin est trop vieux, par exemple permission EX a été conçu avec l'api 5 de Sponge et ne fonctionne pas avec les versions expérimentales de Sponge 1.12.1 qui est basé sur l'api 7. Les plugins utilisant l'api 6 fonctionnent sans problème par contre.
Comme il n'est pas toujours clairement indiqué quelle version d'api est utilisée, le plus simple pour savoir si un plugin est compatible est de tester et regarder si cela crash ou non.

Pour ceux qui se demande quels plugins prendre, il est possible de trier par vue / téléchargement / nombres d'étoiles sur la plateforme ore et on voit quelques plugins ressortir du lot :
Pour installer un plugin, il suffit de le placer dans le dossier mods du serveur, ou encore de créer un dossier plugins à l'intérieur du dossier mods et d'y mettre les plugins (sauf si vous avez changez cela dans la configuration).
Les fichiers de configurations des différents plugins se trouve dans le dossier config du serveur, au même endroit que les configurations des mods, de Sponge et de Forge.

V. Commandes et documentations :

Sponge ajoute quelques commandes au serveur :
  • /sponge mods : permet d'avoir la liste des mods installés.
  • /sponge plugins : permet d'avoir la liste des plugins installés.
  • /sponge plugins reload : recharge les plugins.
  • /sponge reload : recharge les configurations
  • /sponge tps : donne le nombre de tps de chaque monde (devrait être à 20, si c'est en dessous votre serveur tourne au ralenti, configurer le serveur afin de diminuer la charge).
  • /sponge -g chunks : donne le nombre de chunk chargés, actifs, le nombre d'entités, d'entité de bloc pour tous les mondes (-w <nom du monde> au lieu de -g pour avoir ces données pour un monde spécifique).
  • /sponge version : donne les informations de version de Minecraft, Sponge, l'api Sponge et de Forge.
  • /sponge timings on : commence à mesurer les timings.
  • /sponge timings report : génère un rapport à partir des timings mesuré et donne le lien du rapport dans la console.
  • /sponge timings off : arrête de mesurer les timings.
Vous trouverez plus d'information sur les commandes dans la documentation de Sponge.

Si votre serveur a un problème de performance, lancez une mesure de timing pendant 30 secondes à 2 minutes et envoyez-nous le lien afin que nous puissions déterminer la cause des ralentissements.


Si vous souhaitez développer votre propre plugin Sponge, la documentation sur ce sujet est très complète.

VI. En vidéo :



VII. Crédits :


Ce tutoriel rédigé par robin4002, publié originalement sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
 

Aang23

= 157
16 Mai 2017
176
20
75
20
Bon tutoriel !
Sinon il faut dire que Sponge consomme beaucoup de RAM, poussant à utiliser des mods jouant le rôle de plugins coté serveur.
EDIT : Bug corrigé dans SpongeForge depuis un moment.
 
Dernière édition:

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr

Aang23

= 157
16 Mai 2017
176
20
75
20
Les mods et plugins sont "mélangés" sur Sponge et fait pour interagir ensemble donc ce n'est pas un soucis ;)
C'est vrai, mais même Cauldron faisait mieux, j'ai parlé avec un des dévéllopeurs de Sponge à ses débuts, ils travaillent encore sur la réduction de la RAM utilisée. Par ce que 1-3Go pour ça... Personellement j'attend encore un peu avant de m'y convertir.

EDIT : Après de long essais et quelques mise à jour de Sponge, il s'avère que j'arrive à faire disparaitre le problème de RAM avec FoamFix-Lawful. Je gagne aussi beacoup en performances.
 
Dernière édition:

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 815
156
3 000
347
26
Alsace
www.minecraftforgefrance.fr
  • J'aime
Reactions: DiscowZombie

Cyberium

Fondateur de Realitycraft-reborn.fr
14 Septembre 2011
149
3
125
Petit déterrage des familles mdr
Je me posais une question. Est-ce que les plugins Sponge agissent sur les mods ? Par exemple, si je bloque le build à un rang, ça bloquera la pose de blocs natifs minecraft mais aussi ceux des mods ?
Sous Cauldron, ça ne les bloquait pas.

Merci d'avance !
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

la réponse a été apporté mais j'en profite pour faire une précision. Les plugins sur Sponge sont plus "puissants" que leurs homologues de Bukkit tout simplement car l'API est bien plus complète (différente). Du coup la limite entre Mods et Plugins est assez fine sur Sponge, là où c'était plutôt clair sur Cauldron ! ;)