Résolu [1.10.2] Compatibilité de mod
-
Bonjour,
J’ai créé un mod qui rajoute des blocs de deco. Je l’ai installer à mon serveur de modpack ( le mod dans le launcher et le source dans le serve ). Et là le problème arrive, je ne peux pas craft les blocks avec ae2 ou regarder les recettes avec NEI ou encore posait les blocks avec RFtools? Comment faire? -
Faut exécuter la commande
gradlew build
, prendre le .jar généré dans le dossier build/libs et tu mets ce .jar dans le dossier mods de ton serveur et de ton client. -
Pour JEI regarde ça : https://github.com/mezz/JustEnoughItems/wiki/Recipe-Categories
Et peux tu nous passer ton code de ton block, recette, etc… car sinon dur de voir le problème
-
@uiytt
Class block:package fr.lebourguignon.bourguimod.block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; import scala.tools.ant.sabbus.Break; import java.util.List; public class UniformBlock extends Block { public static final String NAME = "uniform_block"; public static final PropertyEnum<UniformBlock.EnumType> VARIANT = PropertyEnum.<UniformBlock.EnumType>create("variant", UniformBlock.EnumType.class); public UniformBlock(Material material) { super(material); BourguiModBlocks.setBlockName(this, NAME); setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, UniformBlock.EnumType.FIRST)); setLightOpacity(255); setLightLevel(1); setResistance(5.0F); setHardness(3.0F); setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setSoundType(blockSoundType.GLASS); } @Override public int damageDropped(IBlockState state) { return state.getValue(VARIANT).getMetadata(); } @Override public void getSubBlocks(Item itemIn, CreativeTabs tab, List <ItemStack> list) { for (UniformBlock.EnumType type : UniformBlock.EnumType.values()) { list.add(new ItemStack(itemIn, 1, type.getMetadata())); } } @Override public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(VARIANT, UniformBlock.EnumType.byMetadata(meta)); } @Override public int getMetaFromState(IBlockState state) { return ((UniformBlock.EnumType)state.getValue(VARIANT)).getMetadata(); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {VARIANT}); } public static enum EnumType implements IStringSerializable { FIRST(0, "uniform", "uniform_block_white"), SECOND(1, "uniform2", "uniform_block_orange"), THIRD(2,"uniform3", "uniform_block_magenta"), FOURTH(3,"uniform4", "uniform_block_lightblue"), FIFTH(4,"uniform5", "uniform_block_yellow"), SIXTH(5,"uniform6", "uniform_block_lime"), SEVENTH(6,"uniform7", "uniform_block_pink"), EIGHTH(7,"uniform8", "uniform_block_gray"), NINTH(8,"uniform9", "uniform_block_silver"), TENTH(9,"uniform10", "uniform_block_cyan"), ELEVENTH(10,"uniform11", "uniform_block_purple"), TWELFTH(11,"uniform12", "uniform_block_blue"), THIRTEENTH(12,"uniform13", "uniform_block_brown"), FOURTEENTH(13,"uniform14", "uniform_block_green"), FIFTEENTH(14,"uniform15", "uniform_block_red"), SIXTEENTH(15,"uniform16", "uniform_block_black"), ; private static final UniformBlock.EnumType[] META_LOOKUP = new UniformBlock.EnumType[values().length]; private final int meta; private final String name; private final String unlocalizedName; private EnumType(int metaIn, String nameIn, String unlocalizedIn) { this.meta = metaIn; this.name = nameIn; this.unlocalizedName = unlocalizedIn; } public static String[] getUnlocalizedNames() { String[] names = new String[values().length]; for (int i = 0; i < META_LOOKUP.length; i++) names[i] = META_LOOKUP[i].unlocalizedName; return names; } public int getMetadata() { return this.meta; } public static UniformBlock.EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } public String toString() { return this.name; } @Override public String getName() { return this.name; } static { for (UniformBlock.EnumType type : values()) { META_LOOKUP[type.getMetadata()] = type; } } } }
Recette:
@SubscribeEvent public void registerRecipes(RegistryEvent.Register <Item> event) { for (int i =0; i < 16; i++) { GameRegistry.addRecipe(new ItemStack(BourguiModItems.BLOCK_UNIFORM_BLOCK_ITEM, 4, 15-i), new Object[]{ "XYX", "YZY", "XYX", 'X', Blocks.STONE,'Y', Blocks.GLOWSTONE,'Z', new ItemStack(Items.DYE, 1, i)}); } for (int i =0; i < 16; i++) { GameRegistry.addRecipe(new ItemStack(BourguiModItems.BLOCK_UNIFORM_BLOCK_ITEM, 8, 15-i), new Object[]{ "UUU", "UDU", "UUU", 'U', new ItemStack(BourguiModItems.BLOCK_UNIFORM_BLOCK_ITEM, 8, Short.MAX_VALUE),'D', new ItemStack(Items.DYE, 1, i)}); } }
J’ai entendu parler d’api? Est-ce une bonne direction?
-
pour que JEI trouve ta recette il faut que au lieu de faire .addRecipe tu fasse tu le register en tant que “ShapedRecipes”
-
@uiytt Excuse moi de prendre autant de temps pour répondre j’avais pas mon pc sous la main mais Eclipse ne reconnait pas “ShapedRecipes”
-
@uiytt ah non c’est pas plutôt .addShapedRecipe ? Car là, Eclipse le reconnais!
-
Bonsoir,
Les recettes ne sont pas censées être enregistrés dans cette event qui est là pour enregistrer des items (ils doivent être mis directement dans une fonction appelé lors d’init) mais je ne sais pas sûr que cela à quelque chose à voir avec ton problème.Tu peux toujours essayer de les déplacer au bon endroit.
-
@robin4002 Voila j’ai tout refait correctement et il y a tjr le même problème… J’ai beau cherché dans les log je ne vois rien…
Je ne peux pas craft mes blocks -
L’item est dans la table de craft mais tu ne peux pas le prendre ? Si oui c’est signe que le mod n’est pas installé sur le serveur.
Et ça n’a rien à voir avec un problème de compatabilité de mod … -
@robin4002 tu peux me dire comment l’installer car ce que j ai fait ne fonctionne pas ( explique à partir du moment où j ai mon mode source et normal )
-
Faut exécuter la commande
gradlew build
, prendre le .jar généré dans le dossier build/libs et tu mets ce .jar dans le dossier mods de ton serveur et de ton client.