13 nov. 2020, 12:55

Bonjour,
Voilà après avoir codé plusieurs items, je rencontre un problème qui est que les textures ainsi que le nom des items sont buggés …
C’est comme ci le mod ne trouvait pas le dossier où sont déposés les textures ^^
Je vous transmet les codes ainsi que les images qui peuvent vous permettent de trouver mon erreur 🙂
Je vous remercie déjà d’avance pour votre aide,
Cordialement
Dadam

Le code de la classe des Items nommé ItemsCops

package fr.dalhfire.items;
import fr.dalhfire.CopsCore;
import fr.dalhfire.copscore.Main;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

/** EventBusSubscriber ne doit être utilisé qu'à partir de la 1.12\. L'annotation n'est pas nécessaire en 1.11.
 N'oubliez pas d'importer net.minecraftforge.fml.common.Mod.EventBusSubscriber.
 value contient le côté que nous souhaitons utiliser. Ici, nous voulons uniquement le côté Client, puisque nous utiliserons seulement l'event pour enregistrer les modèles.
 modid est votre modid. */
@Mod.EventBusSubscriber(value = Side.CLIENT, modid = Main.MODID)
public class ItemsCops{

    public static final Item SkyKeySword = new SkyKey();
    public static final Item WillSword = new WillSword();

    // ici on va déclarer les items

    public static void setItemName(Item item, String name) {
        item.setRegistryName(Main.MODID, name).setUnlocalizedName(Main.MODID + "." + name); //
        // ici on va attribuer un nom à nos objets
    }
    /* Cette version de la fonction ne doit être utilisée qu'à partir de la 1.12.
Pensez à inclure net.minecraftforge.client.event.ModelRegistryEvent. */
    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public static void registerItemModels(ModelRegistryEvent event)
    {
        registerModel(SkyKeySword);
        registerModel(WillSword);
        // ici on va appeler la fonction registerModel pour chaque item.
    }

    @SideOnly(Side.CLIENT)
    public static void registerModel(Item item)
    {
        ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(new ResourceLocation(Main.MODID, item.getUnlocalizedName().substring(5)), "inventory"));
    }


}

Voici la classe RegisteringHandler

package fr.dalhfire.items;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.event.RegistryEvent;

public class RegisteringHandler{
    @SubscribeEvent
    public void registerItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(ItemsCops.SkyKeySword);
        event.getRegistry().registerAll(ItemsCops.WillSword);
    }
}

Et enfin la classe d’un des deux items (elles sont assez similaires donc je vous en met qu’une seule

package fr.dalhfire.items;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public class SkyKey extends Item {
    public static final String NAME = "skykey";
    public SkyKey()
    {
        super();
        ItemsCops.setItemName(this, NAME);
        setCreativeTab(CreativeTabs.MISC);
        setMaxStackSize(1);
       
    }

}

Et enfin voici les images respectivement de l’erreur d’affichage ainsi que de l’arborescence de mes packages :
Capture.PNG Affichage.PNG