Compressed Blocks Plugin [1.11.2]

NycoDiValones

Bucheron
12 Mai 2017
14
11
14
Belgique
github.com
Compressed Blocks Plugin - v1.0

Voici un plugin qui vous permet de compresser et de décompresser les blocs que nos coffres entassent le plus, à savoir la cobblestone, les buches, la dirt, le sable, et quelques autres encore. Ce plugin est un portage du mod "Compressed Blocks" pour Bukkit et Spigot.

Kee9D7p.gif

Compatibilité
Ce plugin fonctionne uniquement en multijoueur, et a été testé sur les serveurs CraftBukkit et Spigot en version 1.11.2.

Téléchargement:
La première version de ce plugin, pour Mc 1.11.2, est disponible en téléchargement par ici: Lien direct

L'entierté des sources est disponible sur Github. Et vous pouvez également télécharger ce plugin sur Curse.

Installation:
Pour l'installer, mettez simplement le fichier .jar téléchargeable ci-dessus, dans le dossier "plugins" de votre serveur minecraft.

Comment fonctionne ce plugin ?
D'abord, voici la liste des blocs que vous pouvez compresser et décompresser:
  • Tous les types de bois (buches)
  • Tous les types de planches
  • Terre (dirt)
  • Stone
  • Andesite, Diorite et Granite
  • Cobblestone
  • Sable et sable rouge
  • Gravier
  • Soul Sand
  • Netherrack
Craft de compression:
La compression passe obligatoirement par la table de craft: Alignez neuf blocs (d'un même type) pour obtenir un bloc compressé. Comme ceci:
gqMNRZH.png

Craft de décompression:
La décompression peut se faire sur la table de craft et dans l'inventaire du joueur. Comme ceci:
GYfCcll.gif


Petite foire aux questions
Peut-on poser un bloc compressé ?
Non, actuellement, les blocs compressés peuvent seulement être stocké dans les coffres et autres inventaires.

Est-il possible de crafter avec un bloc compressé ?
Non, excepté pour la décompression, un bloc de bois compressé ne pourra par exemple pas être utilisé pour faire des planches. Aucun bloc compressé ne fonctionne pour d'autres crafts que la décompression.

Peut-on utiliser un bloc compressé dans un four ?
Non, les blocs compressés ne peuvent pas être placé dans un four.

Peut-on décompresser un bloc normal ?
Non, la cobblestone, sur la table de craft, ne peut pas donner 9 autres cobblestone. Cela ne fonctionne évidement qu'avec des blocs compressés.
 
Dernière édition:
  • J'aime
Reactions: DiscowZombie
Salut,

Beau travail :)

Ce comportement:
GlmHou8.gif
est désiré ? Pourquoi avoir fait cela ? C'est pas très pratique du coup :/

Je me suis permis de regarder rapidement ton code (histoire de voir ce qu'on fait à Namur (cher compatriote du sud xD) :p )
Et je pense qu'il y a moyen d'optimiser un peu :p En tout cas en terme de nombre de lignes:
Code:
        // Oak Plank compressing and uncompressing
        server.addRecipe(oakPlankCompressing = Compressing(BlockRegistry.compressedOakPlank, Material.WOOD, 0));
        server.addRecipe(oakPlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 0), BlockRegistry.compressedOakPlank.getData()));

        // Spruce Plank compressing and uncompressing
        server.addRecipe(sprucePlankCompressing = Compressing(BlockRegistry.compressedSprucePlank, Material.WOOD, 1));
        server.addRecipe(sprucePlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 1), BlockRegistry.compressedSprucePlank.getData()));

        // Birch Plank compressing and uncompressing
        server.addRecipe(birchPlankCompressing = Compressing(BlockRegistry.compressedBirchPlank, Material.WOOD, 2));
        server.addRecipe(birchPlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 2), BlockRegistry.compressedBirchPlank.getData()));

        // Jungle Plank compressing and uncompressing
        server.addRecipe(junglePlankCompressing = Compressing(BlockRegistry.compressedJunglePlank, Material.WOOD, 3));
        server.addRecipe(junglePlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 3), BlockRegistry.compressedJunglePlank.getData()));

        // Acacia Plank compressing and uncompressing
        server.addRecipe(acaciaPlankCompressing = Compressing(BlockRegistry.compressedAcaciaPlank, Material.WOOD, 4));
        server.addRecipe(acaciaPlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 4), BlockRegistry.compressedAcaciaPlank.getData()));

        // Dark Oak Plank compressing and uncompressing
        server.addRecipe(darkOakPlankCompressing = Compressing(BlockRegistry.compressedDarkOakPlank, Material.WOOD, 5));
        server.addRecipe(odarkOakPlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) 5), BlockRegistry.compressedDarkOakPlank.getData()));
Que tout pourrais tout simplement écrire:
Code:
        final int MAX_WOOD = 5;

        for(int i = 0; i <= MAX_WOOD; ++i) {
            server.addRecipe(oakPlankCompressing = Compressing(BlockRegistry.compressedOakPlank, Material.WOOD, i));
            server.addRecipe(oakPlankUncompressing = UnCompressing(new ItemStack(Material.WOOD, 9, (short) i), BlockRegistry.compressedOakPlank.getData()));
        }


Cordialement,
Detobel36
 
Salut,

J'ai réglé ce problème de comportement. Je ne connaissais pas suffisamment l'api de spigot quand j'ai écris cela ^^. Je vais mettre à jour mon premier post avec la mise à jour du plugin.

Quant à la factorisation, j'ai besoin d'avoir pour chaque recipe l'item de résultat, qui est différent à chaque fois. Et je préfère avoir un code similaire au mod que j'ai créé (qui permet de compresser des blocs, mais sous forge), afin d'avoir plus facile à les mettre à jour.

En tout cas, je te remercie pour ton aide :)
 
Dernière édition: