Jump to content

LaurentOutang

Members
  • Posts

    46
  • Joined

  • Last visited

Posts posted by LaurentOutang

  1. ---- Minecraft Crash Report ----
    // My bad.
    
    Time: 3/25/18 1:34 AM
    Description: Ticking memory connection
    
    java.lang.NullPointerException: Ticking memory connection
    	at com.laurentoutang.hardmod.capabilities.MentalTemperatureProvider.<init>(MentalTemperatureProvider.java:22)
    	at com.laurentoutang.hardmod.util.handlers.CapabilityHandler.attachCapability(CapabilityHandler.java:26)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_CapabilityHandler_attachCapability_AttachCapabilitiesEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:656)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:626)
    	at net.minecraft.entity.Entity.<init>(Entity.java:267)
    	at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:213)
    	at net.minecraft.entity.player.EntityPlayer.<init>(EntityPlayer.java:192)
    	at net.minecraft.entity.player.EntityPlayerMP.<init>(EntityPlayerMP.java:181)
    	at net.minecraft.server.management.PlayerList.createPlayerForUser(PlayerList.java:537)
    	at net.minecraft.server.network.NetHandlerLoginServer.tryAcceptPlayer(NetHandlerLoginServer.java:139)
    	at net.minecraft.server.network.NetHandlerLoginServer.update(NetHandlerLoginServer.java:67)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Server thread
    Stacktrace:
    	at com.laurentoutang.hardmod.capabilities.MentalTemperatureProvider.<init>(MentalTemperatureProvider.java:22)
    	at com.laurentoutang.hardmod.util.handlers.CapabilityHandler.attachCapability(CapabilityHandler.java:26)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_CapabilityHandler_attachCapability_AttachCapabilitiesEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:656)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:626)
    	at net.minecraft.entity.Entity.<init>(Entity.java:267)
    	at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:213)
    	at net.minecraft.entity.player.EntityPlayer.<init>(EntityPlayer.java:192)
    	at net.minecraft.entity.player.EntityPlayerMP.<init>(EntityPlayerMP.java:181)
    	at net.minecraft.server.management.PlayerList.createPlayerForUser(PlayerList.java:537)
    	at net.minecraft.server.network.NetHandlerLoginServer.tryAcceptPlayer(NetHandlerLoginServer.java:139)
    	at net.minecraft.server.network.NetHandlerLoginServer.update(NetHandlerLoginServer.java:67)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    
    -- Ticking connection --
    Details:
    	Connection: net.minecraft.network.NetworkManager@43b0ef6d
    Stacktrace:
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 606365760 bytes (578 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State     | ID        | Version      | Source                           | Signature |
    	|:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJAAAA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJAAAA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJAAAA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | hm        | 1.1          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    	Profiler Position: N/A (disabled)
    	Player Count: 0 / 8; []
    	Type: Integrated Server (map_client.txt)
    	Is Modded: Definitely; Client brand changed to 'fml,forge'

    Here's the crash report

  2. I added getters in Mental because i added a variable temperature 

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraftforge.common.util.INBTSerializable;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    
    public class MentalTemperature implements IMentalTemperature{
    
    	private float mental = 100.f;
    	private float temperature = 100.f;
    	
    	public MentalTemperature(float mental, float temperature)
    	{
    		this.mental = mental;
    		this.temperature = temperature;
    	}
    	public MentalTemperature()
    	{
    		
    	}
    	
    	@Override
    	public void consumeMental(float points) 
    	{
    		if(mental-points < 0)
    			mental = 0;
    		else
    			mental -= points;
    	}
    
    	@Override
    	public void fillMental(float points) 
    	{
    		if(mental + points > 100)
    			mental = 100;
    		else
    			mental += points;
    	}
    
    	@Override
    	public void setMental(float points) 
    	{
    		mental = points;
    	}
    
    	@Override
    	public float getMental() 
    	{
    		return mental;
    	}	
    
    	public void consumeTemperature(float points)
    	{
    		if(temperature-points < 0)
    			temperature = 0;
    		else
    			temperature -= points;
    	}
    	public void fillTemperature(float points)
    	{
    		if(temperature + points > 100)
    			temperature = 100;
    		else
    			temperature += points;
    	}
    	public void setTemperature(float points)
    	{
    		temperature = points;
    	}
    	public float getTemperature()
    	{
    		return temperature;
    	}
    }

    and then i tried to sync as you said but the game crashes : null pointer exception

    MessageCapabilitiesHandler:

    package com.laurentoutang.hardmod.util.handlers;
    
    import java.util.List;
    
    import com.laurentoutang.hardmod.capabilities.IMentalTemperature;
    import com.laurentoutang.hardmod.capabilities.MentalTemperatureProvider;
    
    import Network.MessageCapabilities;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.multiplayer.WorldClient;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraft.util.IThreadListener;
    import net.minecraft.util.text.TextComponentString;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
    import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
    import net.minecraftforge.fml.relauncher.Side;
    
    
    @EventBusSubscriber(value = Side.CLIENT)
    public class MessageCapabilitiesHandler implements IMessageHandler<MessageCapabilities, IMessage>{
    
    	@Override
    	public IMessage onMessage(MessageCapabilities message, MessageContext ctx) 
    	{
    		
    		
    		final float mental = message.getMental();//nothing to do with it for the moment
    		final float temperature = message.getTemperature();//same
    		Minecraft minecraft = Minecraft.getMinecraft();
    	    final WorldClient worldClient = minecraft.world;
    	    minecraft.addScheduledTask(new Runnable()
    	    {
    	      public void run() {
    	        processMessage(worldClient, message);
    	      }
    	    });
    		return null;
    	}
    	 void processMessage(WorldClient worldClient, MessageCapabilities message)
    	  {
    		List<EntityPlayer> players = worldClient.playerEntities;
    	    for(int i = 0; i < players.size(); i++)
    	    {
    	    	players.get(i).sendMessage(new TextComponentString("You have " + message.getMental() + " mental left and " + message.getTemperature() + " temperature left"));
    	    }
    	    return;
    	  }
    
    
    }

    packetHandler:

    package com.laurentoutang.hardmod.util.handlers;
    
    import net.minecraftforge.fml.common.network.NetworkRegistry;
    import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
    
    public class PacketHandler {
    	public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel("hm");
    }

    MessageCapabilities:

    package Network;
    
    import io.netty.buffer.ByteBuf;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    
    public class MessageCapabilities implements IMessage{
    	
    	private float mentalToSend, temperatureToSend;
    	
    	public MessageCapabilities() {}
    	
    	public MessageCapabilities(float mentalToSend, float temperatureToSend)
    	{
    		this.mentalToSend = mentalToSend;
    		this.temperatureToSend = temperatureToSend;
    	}
    	
    	@Override
    	public void fromBytes(ByteBuf buf) 
    	{
    		this.mentalToSend = buf.readFloat();
    		this.temperatureToSend = buf.readFloat();	
    	}
    
    	@Override
    	public void toBytes(ByteBuf buf) 
    	{
    		buf.writeFloat(this.mentalToSend);
    		buf.writeFloat(this.temperatureToSend);		
    	}
    	public float getMental()
    	{
    		return mentalToSend;
    	}
    	public float getTemperature()
    	{
    		return temperatureToSend;
    	}
    
    }

    client proxy:

    package com.laurentoutang.hardmod.proxy;
    
    import com.laurentoutang.hardmod.capabilities.IMentalTemperature;
    import com.laurentoutang.hardmod.capabilities.MentalTemperature;
    import com.laurentoutang.hardmod.capabilities.MentalTemperatureStorage;
    import com.laurentoutang.hardmod.util.handlers.CapabilityHandler;
    import com.laurentoutang.hardmod.util.handlers.MessageCapabilitiesHandler;
    import com.laurentoutang.hardmod.util.handlers.PacketHandler;
    
    import Network.MessageCapabilities;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.renderer.block.model.ModelResourceLocation;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.util.IThreadListener;
    import net.minecraftforge.client.model.ModelLoader;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
    import net.minecraftforge.fml.relauncher.Side;
    
    public class ClientProxy extends CommonProxy {
    	
    	public void init() 
    	{		
    		CapabilityManager.INSTANCE.register(IMentalTemperature.class, new MentalTemperatureStorage(), MentalTemperature::new);
    		MinecraftForge.EVENT_BUS.register(new MessageCapabilitiesHandler());
    	}
    	public IThreadListener getListener(MessageContext ctx) {
    		return ctx.side == Side.CLIENT ? Minecraft.getMinecraft() : super.getListener(ctx);
    	}
    
    	public EntityPlayer getPlayer(MessageContext ctx) {
    		return ctx.side == Side.CLIENT ? Minecraft.getMinecraft().player : super.getPlayer(ctx);
    	}
    	public void registerItemRenderer(Item item, int meta, String id) 
    	{
    		ModelLoader.setCustomModelResourceLocation(item,  meta,  new ModelResourceLocation(item.getRegistryName(), id));
    	}
    }

    common proxy:

    package com.laurentoutang.hardmod.proxy;
    
    
    import com.laurentoutang.hardmod.util.handlers.MessageCapabilitiesHandler;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.util.IThreadListener;
    import net.minecraft.world.WorldServer;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
    
    public class CommonProxy 
    {
    	public void init() {
    		
    	}
    	
    	public IThreadListener getListener(MessageContext ctx) {
    		return (WorldServer) ctx.getServerHandler().player.getServerWorld();
    	}
    
    	public EntityPlayer getPlayer(MessageContext ctx) {
    		return ctx.getServerHandler().player;
    	}
    	public void registerItemRenderer(Item item, int meta, String id)
    	{
    		
    	}
    	
    }

    If I understood well, MessageCapabilities is the packet, and when we get the packet, MessageCapabilitiesHandler::onMessage is executed ? but when do we know when the packet is sent...
    I trie something like that :

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.IMentalTemperature;
    import com.laurentoutang.hardmod.capabilities.MentalTemperatureProvider;
    
    import Network.MessageCapabilities;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.TickEvent.PlayerTickEvent;
    import net.minecraftforge.fml.relauncher.Side;
    @EventBusSubscriber
    public class EventPlayerTick {
    	@SubscribeEvent
    	public void onPlayerTick(PlayerTickEvent event) {
    		if(event.side == Side.SERVER) {
    			EntityPlayer player = event.player;
    	        IMentalTemperature capabilities = player.getCapability(MentalTemperatureProvider.MentalTemperature_CAP, null);
    			PacketHandler.NETWORK.sendTo(new MessageCapabilities(capabilities.getMental(), capabilities.getTemperature()), (EntityPlayerMP) player);
    		}	
    	}
    }

    But the game crashes. I just want to give to each player two floats (mental and temperature), then modify these floats when there is special event. The same as life or hunger. Thank you for your help

  3. Mental.java

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraftforge.common.util.INBTSerializable;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    
    public class Mental implements IMental{
    
    	private float mental=20.f;
    	
    	
    	public Mental(float mental)
    	{
    		this.mental = mental;
    	}
    	public Mental()
    	{
    		
    	}
    	
    	@Override
    	public void consume(float points) {
    		if(mental-points < 0)
    			mental = 0;
    		else
    			mental -= points;
    	}
    
    	@Override
    	public void fill(float points) {
    		if(mental + points > 100)
    			mental = 100;
    		else
    			mental += points;
    	}
    
    	@Override
    	public void setMental(float points) {
    		mental = points;
    	}
    
    	@Override
    	public float getMental() {
    		return mental;
    	}	
    
    }

    MentalProvider :

    package com.laurentoutang.hardmod.capabilities;
    
    import java.util.concurrent.Callable;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.nbt.NBTPrimitive;
    import net.minecraft.nbt.NBTTagFloat;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.CapabilityInject;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    import net.minecraftforge.common.capabilities.ICapabilitySerializable;
    import net.minecraftforge.common.capabilities.Capability.IStorage;
    
    public class MentalProvider implements ICapabilitySerializable<NBTBase>{
    
    	@CapabilityInject(IMental.class)
    
    	 public static final Capability<IMental> Mental_CAP = null;
    
    	 
    	 private IMental instance = Mental_CAP.getDefaultInstance();
    
    	 
    	 @Override
    	 public boolean hasCapability(Capability<?> capability, EnumFacing facing)
    	 {
    
    		 return capability == Mental_CAP;
    
    	 }
    
    	 
    	 @Override
    	 public <T> T getCapability(Capability<T> capability, EnumFacing facing)
    	 {
    		 if (Mental_CAP != null && capability == Mental_CAP) return Mental_CAP.<T> cast(this.instance);
    		 return null;
    	 }
    	 
    	 
    	 @Override
    	 public NBTBase serializeNBT()
    	 {
    
    		 return Mental_CAP.getStorage().writeNBT(Mental_CAP, this.instance, null);
    
    	 }
    
    	 
    	 @Override
    	 public void deserializeNBT(NBTBase nbt)
    	 {
    
    		 Mental_CAP.getStorage().readNBT(Mental_CAP, this.instance, null, nbt);
    
    	 } 
    
    }

    MentalStorage :

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.nbt.NBTPrimitive;
    import net.minecraft.nbt.NBTTagFloat;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.Capability.IStorage;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    
    public class MentalStorage implements IStorage<IMental>{
    
    	
    	 @Override
    	 public NBTBase writeNBT(Capability<IMental> capability, IMental instance, EnumFacing side)
    	 {
    		 return new NBTTagFloat(instance.getMental());
    	 }
    
    	 
    	 @Override
    	 public void readNBT(Capability<IMental> capability, IMental instance, EnumFacing side, NBTBase nbt)
    	 {
    		 instance.setMental(((NBTPrimitive) nbt).getFloat());
    	 }
    	
    }

    CapabilityHandler

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.event.AttachCapabilitiesEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber
    public class CapabilityHandler {
    	
    	 public static final ResourceLocation Mental_CAP = new ResourceLocation(Reference.MOD_ID, "mental");
    
    	 
    	 @SubscribeEvent
    
    	 public static void attachCapability(AttachCapabilitiesEvent<Entity> event)
    	 {
    		 if (event.getObject() instanceof EntityPlayer)
    		 {
    			 event.addCapability(Mental_CAP, new MentalProvider());	
    		 }
    	 }
    }

    EventHandler :

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.IMental;
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.EnumHand;
    import net.minecraft.util.text.TextComponentString;
    import net.minecraftforge.event.entity.player.PlayerInteractEvent;
    import net.minecraftforge.event.entity.player.PlayerWakeUpEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber
    public class EventHandler {
    
    	@SubscribeEvent
    	 public static void onPlayerLogsIn(PlayerLoggedInEvent event)
    	 {
    
    		 EntityPlayer player = event.player;
    
    		IMental mental = player.getCapability(MentalProvider.Mental_CAP, null);
    		 if(mental != null)
    		 {
    			 mental.fill(1.f);
    			 String message = String.format("Logged in : mental = " + mental.getMental());
    			 player.sendMessage(new TextComponentString(message));
    		 }		
    		 player.sendMessage(new TextComponentString("hey ! "));
    	 }	 
    	 @SubscribeEvent
    	 public static void onPlayerSleeping(PlayerInteractEvent event)
    	 {
    		 EntityPlayer player = event.getEntityPlayer();
    		 if(event.getHand() == EnumHand.MAIN_HAND)
    		 {
    			 IMental mental = player.getCapability(MentalProvider.Mental_CAP, null);
    			 if(mental != null)
    			 {
    				 mental.fill(1.f);
    				 String message = String.format("Player interact mental = " + mental.getMental());
    				 player.sendMessage(new TextComponentString(message));
    			 }	
    		 }
    		 	
    	 }
    	 
    }


    Well in game, when I log in, I see a value of mental that increase at each connection but it started from 0, and when i interact with the left click, there is another mental that starts at 0 at each connection even if it increased the session before...

    Can you tell me how can I do to  put a value to the mental at the begining and then use the same mental in all the events.

    For example, if I would that :

    -a new player get 100 points of mental

    -at each night the mental drops 5 points

    -at each logging in, a message is sent to the player displaying the amount of remaining mental.
    Thanks for your help

  4. I forgot to uncomment the registering. Now the game doesn't crash but it displays "mental = 0.0 " and I wrote this  : private float mental= 100; in Mental.java

  5. Ok I fixed it, nothing to do with capabilities. But now with the same code that I recently posted, I have the nullpointerexecption again

    ---- Minecraft Crash Report ----
    // Oops.
    
    Time: 3/23/18 8:51 PM
    Description: Ticking memory connection
    
    java.lang.NullPointerException: Ticking memory connection
    	at com.laurentoutang.hardmod.capabilities.MentalProvider.<init>(MentalProvider.java:22)
    	at com.laurentoutang.hardmod.util.handlers.CapabilityHandler.attachCapability(CapabilityHandler.java:26)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_CapabilityHandler_attachCapability_AttachCapabilitiesEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:656)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:626)
    	at net.minecraft.entity.Entity.<init>(Entity.java:267)
    	at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:213)
    	at net.minecraft.entity.player.EntityPlayer.<init>(EntityPlayer.java:192)
    	at net.minecraft.entity.player.EntityPlayerMP.<init>(EntityPlayerMP.java:181)
    	at net.minecraft.server.management.PlayerList.createPlayerForUser(PlayerList.java:537)
    	at net.minecraft.server.network.NetHandlerLoginServer.tryAcceptPlayer(NetHandlerLoginServer.java:139)
    	at net.minecraft.server.network.NetHandlerLoginServer.update(NetHandlerLoginServer.java:67)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Server thread
    Stacktrace:
    	at com.laurentoutang.hardmod.capabilities.MentalProvider.<init>(MentalProvider.java:22)
    	at com.laurentoutang.hardmod.util.handlers.CapabilityHandler.attachCapability(CapabilityHandler.java:26)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_CapabilityHandler_attachCapability_AttachCapabilitiesEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:656)
    	at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:626)
    	at net.minecraft.entity.Entity.<init>(Entity.java:267)
    	at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:213)
    	at net.minecraft.entity.player.EntityPlayer.<init>(EntityPlayer.java:192)
    	at net.minecraft.entity.player.EntityPlayerMP.<init>(EntityPlayerMP.java:181)
    	at net.minecraft.server.management.PlayerList.createPlayerForUser(PlayerList.java:537)
    	at net.minecraft.server.network.NetHandlerLoginServer.tryAcceptPlayer(NetHandlerLoginServer.java:139)
    	at net.minecraft.server.network.NetHandlerLoginServer.update(NetHandlerLoginServer.java:67)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    
    -- Ticking connection --
    Details:
    	Connection: net.minecraft.network.NetworkManager@4ee32b52
    Stacktrace:
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 603561752 bytes (575 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State     | ID        | Version      | Source                           | Signature |
    	|:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJAAAA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJAAAA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJAAAA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | hm        | 1.0          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    	Profiler Position: N/A (disabled)
    	Player Count: 0 / 8; []
    	Type: Integrated Server (map_client.txt)
    	Is Modded: Definitely; Client brand changed to 'fml,forge'

     

  6. Here is the latest log 

    [19:01:07] [main/INFO] [GradleStart]: Extra: []
    [19:01:07] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Michael/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
    [19:01:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
    [19:01:07] [main/INFO] [FML]: Forge Mod Loader version 14.23.2.2629 for Minecraft 1.12.2 loading
    [19:01:07] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_161, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_161
    [19:01:07] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
    [19:01:07] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
    [19:01:07] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
    [19:01:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
    [19:01:07] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
    [19:01:07] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
    [19:01:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [19:01:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [19:01:10] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
    [19:01:10] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [19:01:10] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [19:01:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [19:01:11] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
    [19:01:11] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
    [19:01:11] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
    [19:01:12] [main/INFO] [net.minecraft.client.Minecraft]: Setting user: Player954
    [19:01:17] [main/WARN] [net.minecraft.client.settings.GameSettings]: Skipping bad option: lastServer:
    [19:01:17] [main/INFO] [net.minecraft.client.Minecraft]: LWJGL Version: 2.9.4
    [19:01:18] [main/INFO] [FML]: -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 771241248 bytes (735 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    	FML: 
    	Loaded coremods (and transformers): 
    	GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.24' Renderer: 'GeForce GTX 970/PCIe/SSE2'
    [19:01:18] [main/INFO] [FML]: MinecraftForge v14.23.2.2629 Initialized
    [19:01:18] [main/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
    [19:01:18] [main/INFO] [FML]: Replaced 1036 ore ingredients
    [19:01:18] [main/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
    [19:01:18] [main/INFO] [FML]: Searching C:\Users\Michael\Desktop\MINECRAFT_DVLT\run\mods for mods
    [19:01:19] [main/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
    [19:01:20] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, hm] at CLIENT
    [19:01:20] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, hm] at SERVER
    [19:01:20] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 194076341 nanos
    [19:01:20] [main/INFO] [net.minecraft.client.resources.SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Hard Mod
    [19:01:21] [main/INFO] [FML]: Processing ObjectHolder annotations
    [19:01:21] [main/INFO] [FML]: Found 1168 ObjectHolder annotations
    [19:01:21] [main/INFO] [FML]: Identifying ItemStackHolder annotations
    [19:01:21] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
    [19:01:21] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
    [19:01:21] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
    [19:01:21] [main/INFO] [FML]: Applying holder lookups
    [19:01:21] [main/INFO] [FML]: Holder lookups applied
    [19:01:21] [main/INFO] [FML]: Applying holder lookups
    [19:01:21] [main/INFO] [FML]: Holder lookups applied
    [19:01:21] [main/INFO] [FML]: Applying holder lookups
    [19:01:21] [main/INFO] [FML]: Holder lookups applied
    [19:01:21] [main/INFO] [FML]: Applying holder lookups
    [19:01:21] [main/INFO] [FML]: Holder lookups applied
    [19:01:21] [main/INFO] [FML]: Injecting itemstacks
    [19:01:21] [main/INFO] [FML]: Itemstack injection complete
    [19:01:21] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Found status: OUTDATED Target: 14.23.2.2632
    [19:01:25] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Starting up SoundSystem...
    [19:01:25] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: Initializing LWJGL OpenAL
    [19:01:25] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
    [19:01:25] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: OpenAL initialized.
    [19:01:26] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Sound engine started
    [19:01:32] [main/INFO] [FML]: Max texture size: 16384
    [19:01:32] [main/INFO] [net.minecraft.client.renderer.texture.TextureMap]: Created: 512x512 textures-atlas
    [19:01:35] [main/ERROR] [FML]: Parsing error loading recipe hm:golden_sushi
    com.google.gson.JsonSyntaxException: Unknown item 'hm:sushi'
    	at net.minecraftforge.common.crafting.CraftingHelper.getItemStackBasic(CraftingHelper.java:259) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.lambda$init$16(CraftingHelper.java:536) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.getIngredient(CraftingHelper.java:201) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.lambda$init$14(CraftingHelper.java:473) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.getRecipe(CraftingHelper.java:408) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.lambda$loadRecipes$22(CraftingHelper.java:710) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.findFiles(CraftingHelper.java:821) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:667) ~[CraftingHelper.class:?]
    	at java.util.ArrayList.forEach(Unknown Source) [?:1.8.0_161]
    	at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:619) [CraftingHelper.class:?]
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:718) [Loader.class:?]
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352) [FMLClientHandler.class:?]
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581) [Minecraft.class:?]
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
    	at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    	at GradleStart.main(GradleStart.java:26) [start/:?]
    [19:01:35] [main/ERROR] [FML]: Parsing error loading recipe hm:sushi_recipe
    com.google.gson.JsonSyntaxException: Unknown item 'hm:sushi'
    	at net.minecraftforge.common.crafting.CraftingHelper.getItemStack(CraftingHelper.java:211) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.lambda$init$14(CraftingHelper.java:515) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.getRecipe(CraftingHelper.java:408) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.lambda$loadRecipes$22(CraftingHelper.java:710) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.findFiles(CraftingHelper.java:821) ~[CraftingHelper.class:?]
    	at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:667) ~[CraftingHelper.class:?]
    	at java.util.ArrayList.forEach(Unknown Source) [?:1.8.0_161]
    	at net.minecraftforge.common.crafting.CraftingHelper.loadRecipes(CraftingHelper.java:619) [CraftingHelper.class:?]
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:718) [Loader.class:?]
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352) [FMLClientHandler.class:?]
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581) [Minecraft.class:?]
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
    	at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    	at GradleStart.main(GradleStart.java:26) [start/:?]
    [19:01:35] [main/INFO] [FML]: Applying holder lookups
    [19:01:35] [main/INFO] [FML]: Holder lookups applied
    [19:01:35] [main/INFO] [FML]: Injecting itemstacks
    [19:01:35] [main/INFO] [FML]: Itemstack injection complete
    [19:01:35] [main/WARN] [FML]: Registry Item: Override did not have an associated owner object. Name: hm:vegetable_soup Value: com.laurentoutang.hardmod.items.ItemFoodBase@105b12e7
    [19:01:35] [main/WARN] [FML]: Registry Item: Override did not have an associated owner object. Name: hm:vegetable_soup Value: com.laurentoutang.hardmod.items.ItemFoodBase@6b54dbd8
    [19:01:35] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
    // I'm sorry, Dave.
    
    Time: 3/23/18 7:01 PM
    Description: Initializing game
    
    java.lang.RuntimeException: One of more entry values did not copy to the correct id. Check log for details!
    	at net.minecraftforge.registries.ForgeRegistry.sync(ForgeRegistry.java:543)
    	at net.minecraftforge.registries.GameData.loadRegistry(GameData.java:490)
    	at net.minecraftforge.registries.GameData.freezeData(GameData.java:225)
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:730)
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352)
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581)
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    	at net.minecraft.client.main.Main.main(Main.java:118)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    	at GradleStart.main(GradleStart.java:26)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Client thread
    Stacktrace:
    	at net.minecraftforge.registries.ForgeRegistry.sync(ForgeRegistry.java:543)
    	at net.minecraftforge.registries.GameData.loadRegistry(GameData.java:490)
    	at net.minecraftforge.registries.GameData.freezeData(GameData.java:225)
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:730)
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352)
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581)
    
    -- Initialization --
    Details:
    Stacktrace:
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    	at net.minecraft.client.main.Main.main(Main.java:118)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    	at GradleStart.main(GradleStart.java:26)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 719568912 bytes (686 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State  | ID        | Version      | Source                           | Signature |
    	|:------ |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJA | hm        | 1.0          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.24' Renderer: 'GeForce GTX 970/PCIe/SSE2'
    	Launched Version: 1.12.2
    	LWJGL: 2.9.4
    	OpenGL: GeForce GTX 970/PCIe/SSE2 GL version 4.6.0 NVIDIA 391.24, NVIDIA Corporation
    	GL Caps: Using GL 1.3 multitexturing.
    Using GL 1.3 texture combiners.
    Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
    Shaders are available because OpenGL 2.1 is supported.
    VBOs are available because OpenGL 1.5 is supported.
    
    	Using VBOs: Yes
    	Is Modded: Definitely; Client brand changed to 'fml,forge'
    	Type: Client (map_client.txt)
    	Resource Packs: 
    	Current Language: English (US)
    	Profiler Position: N/A (disabled)
    	CPU: 4x Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
    [19:01:35] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Michael\Desktop\MINECRAFT_DVLT\run\.\crash-reports\crash-2018-03-23_19.01.35-client.txt

     

  7. is that better 

     @Override
    	 public <T> T getCapability(Capability<T> capability, EnumFacing facing)
    	 {
    		 System.out.println("capability == Mental_CAP = " + (capability == Mental_CAP));
    		 if (Mental_CAP != null && capability == Mental_CAP) return Mental_CAP.<T> cast(this.instance);
    		 return null;
    	 }

    With this i have this in crash folder :
     

    ---- Minecraft Crash Report ----
    // I bet Cylons wouldn't have this problem.
    
    Time: 3/23/18 12:15 PM
    Description: Initializing game
    
    java.lang.RuntimeException: One of more entry values did not copy to the correct id. Check log for details!
    	at net.minecraftforge.registries.ForgeRegistry.sync(ForgeRegistry.java:543)
    	at net.minecraftforge.registries.GameData.loadRegistry(GameData.java:490)
    	at net.minecraftforge.registries.GameData.freezeData(GameData.java:225)
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:730)
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352)
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581)
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    	at net.minecraft.client.main.Main.main(Main.java:118)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    	at GradleStart.main(GradleStart.java:26)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Client thread
    Stacktrace:
    	at net.minecraftforge.registries.ForgeRegistry.sync(ForgeRegistry.java:543)
    	at net.minecraftforge.registries.GameData.loadRegistry(GameData.java:490)
    	at net.minecraftforge.registries.GameData.freezeData(GameData.java:225)
    	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:730)
    	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:352)
    	at net.minecraft.client.Minecraft.init(Minecraft.java:581)
    
    -- Initialization --
    Details:
    Stacktrace:
    	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    	at net.minecraft.client.main.Main.main(Main.java:118)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    	at GradleStart.main(GradleStart.java:26)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 711042600 bytes (678 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State  | ID        | Version      | Source                           | Signature |
    	|:------ |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJA | hm        | 1.0          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.24' Renderer: 'GeForce GTX 970/PCIe/SSE2'
    	Launched Version: 1.12.2
    	LWJGL: 2.9.4
    	OpenGL: GeForce GTX 970/PCIe/SSE2 GL version 4.6.0 NVIDIA 391.24, NVIDIA Corporation
    	GL Caps: Using GL 1.3 multitexturing.
    Using GL 1.3 texture combiners.
    Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
    Shaders are available because OpenGL 2.1 is supported.
    VBOs are available because OpenGL 1.5 is supported.
    
    	Using VBOs: Yes
    	Is Modded: Definitely; Client brand changed to 'fml,forge'
    	Type: Client (map_client.txt)
    	Resource Packs: 
    	Current Language: English (US)
    	Profiler Position: N/A (disabled)
    	CPU: 4x Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz

     

  8. code :
    in the main, pre init function : 

    @EventHandler
    	public static void PreInit(FMLPreInitializationEvent event)
    	{
    		CapabilityManager.INSTANCE.register(IMental.class, new MentalStorage(), Mental::new);//Mental::new else deprecated
    	}
    	

    IMental : 

    package com.laurentoutang.hardmod.capabilities;
    
    public interface IMental {
    
    	public void consume(float points);
    	public void fill(float points);
    	public void setMental(float points);
    	public float getMental();
    }

    Mental :
     

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraftforge.common.util.INBTSerializable;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    
    public class Mental implements IMental{
    
    	private float mental;
    	
    	
    	public Mental(float mental)
    	{
    		this.mental = mental;
    	}
    	public Mental()
    	{
    		
    	}
    	
    	@Override
    	public void consume(float points) {
    		if(mental-points < 0)
    			mental = 0;
    		else
    			mental -= points;
    	}
    
    	@Override
    	public void fill(float points) {
    		if(mental + points > 100)
    			mental = 100;
    		else
    			mental += points;
    	}
    
    	@Override
    	public void setMental(float points) {
    		mental = points;
    	}
    
    	@Override
    	public float getMental() {
    		return mental;
    	}	
    
    }

    MentalProvider :
     

    package com.laurentoutang.hardmod.capabilities;
    
    import java.util.concurrent.Callable;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.nbt.NBTPrimitive;
    import net.minecraft.nbt.NBTTagFloat;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.CapabilityInject;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    import net.minecraftforge.common.capabilities.ICapabilitySerializable;
    import net.minecraftforge.common.capabilities.Capability.IStorage;
    
    public class MentalProvider implements ICapabilitySerializable<NBTBase>{
    
    	 @CapabilityInject(IMental.class)
    
    	 public static final Capability<IMental> Mental_CAP = null;
    
    	 
    	 private IMental instance = Mental_CAP.getDefaultInstance();
    
    	 
    	 @Override
    	 public boolean hasCapability(Capability<?> capability, EnumFacing facing)
    	 {
    
    		 return capability == Mental_CAP;
    
    	 }
    
    	 
    	 @Override
    	 public <T> T getCapability(Capability<T> capability, EnumFacing facing)
    	 {
    		 System.out.println("capability == Mental_CAP = " + (capability == Mental_CAP));
    		 if (Mental_CAP != null && capability == Mental_CAP)return (T)Mental_CAP;
    		 return null;
    	 }
    	 
    	 
    	 @Override
    	 public NBTBase serializeNBT()
    	 {
    
    		 return Mental_CAP.getStorage().writeNBT(Mental_CAP, this.instance, null);
    
    	 }
    
    	 
    	 @Override
    	 public void deserializeNBT(NBTBase nbt)
    	 {
    
    		 Mental_CAP.getStorage().readNBT(Mental_CAP, this.instance, null, nbt);
    
    	 } 
    
    }

    MentalStorage : 
     

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.nbt.NBTPrimitive;
    import net.minecraft.nbt.NBTTagFloat;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.Capability.IStorage;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    
    public class MentalStorage implements IStorage<IMental>{
    	
    	 @Override
    	 public NBTBase writeNBT(Capability<IMental> capability, IMental instance, EnumFacing side)
    	 {
    		 return new NBTTagFloat(instance.getMental());
    	 }
    
    	 
    	 @Override
    	 public void readNBT(Capability<IMental> capability, IMental instance, EnumFacing side, NBTBase nbt)
    	 {
    		 instance.setMental(((NBTPrimitive) nbt).getFloat());
    	 }
    	 
    	
    }

    CapabilityHandler : 
     

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.event.AttachCapabilitiesEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber
    public class CapabilityHandler {
    	
    	 public static final ResourceLocation Mental_CAP = new ResourceLocation(Reference.MOD_ID, "mental");
    
    	 
    	 @SubscribeEvent
    
    	 public static void attachCapability(AttachCapabilitiesEvent<Entity> event)
    	 {
    		 if (event.getObject() instanceof EntityPlayer)
    		 {
    			 event.addCapability(Mental_CAP, new MentalProvider());	
    		 }
    
    	 }
    }

    before the crash : 

    2018-03-23 11:56:03,209 main WARN Disabling terminal, you're running in an unsupported environment.
    [11:56:03] [main/INFO] [GradleStart]: Extra: []
    [11:56:03] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Michael/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
    [11:56:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
    [11:56:03] [main/INFO] [FML]: Forge Mod Loader version 14.23.2.2629 for Minecraft 1.12.2 loading
    [11:56:03] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_161, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_161
    [11:56:03] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
    [11:56:03] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
    [11:56:03] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
    [11:56:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
    [11:56:03] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
    [11:56:03] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
    [11:56:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
    [11:56:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [11:56:05] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
    [11:56:05] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
    [11:56:05] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
    [11:56:06] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
    [11:56:06] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
    [11:56:06] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
    [11:56:06] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
    [11:56:08] [main/INFO] [net.minecraft.client.Minecraft]: Setting user: Player931
    [11:56:13] [main/WARN] [net.minecraft.client.settings.GameSettings]: Skipping bad option: lastServer:
    [11:56:13] [main/INFO] [net.minecraft.client.Minecraft]: LWJGL Version: 2.9.4
    [11:56:14] [main/INFO] [FML]: -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 790727880 bytes (754 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    	FML: 
    	Loaded coremods (and transformers): 
    	GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.24' Renderer: 'GeForce GTX 970/PCIe/SSE2'
    [11:56:14] [main/INFO] [FML]: MinecraftForge v14.23.2.2629 Initialized
    [11:56:14] [main/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
    [11:56:14] [main/INFO] [FML]: Replaced 1036 ore ingredients
    [11:56:15] [main/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
    [11:56:15] [main/INFO] [FML]: Searching C:\Users\Michael\Desktop\MINECRAFT_DVLT\run\mods for mods
    [11:56:15] [main/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
    [11:56:16] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, hm] at CLIENT
    [11:56:16] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, hm] at SERVER
    [11:56:16] [main/INFO] [net.minecraft.client.resources.SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Hard Mod
    [11:56:16] [main/INFO] [FML]: Processing ObjectHolder annotations
    [11:56:17] [main/INFO] [FML]: Found 1168 ObjectHolder annotations
    [11:56:17] [main/INFO] [FML]: Identifying ItemStackHolder annotations
    [11:56:17] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
    [11:56:17] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 86005768 nanos
    [11:56:17] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
    [11:56:17] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
    [11:56:17] [main/INFO] [FML]: Applying holder lookups
    [11:56:17] [main/INFO] [FML]: Holder lookups applied
    [11:56:17] [main/INFO] [FML]: Applying holder lookups
    [11:56:17] [main/INFO] [FML]: Holder lookups applied
    [11:56:17] [main/INFO] [FML]: Applying holder lookups
    [11:56:17] [main/INFO] [FML]: Holder lookups applied
    [11:56:17] [main/INFO] [FML]: Applying holder lookups
    [11:56:17] [main/INFO] [FML]: Holder lookups applied
    [11:56:17] [main/INFO] [FML]: Injecting itemstacks
    [11:56:17] [main/INFO] [FML]: Itemstack injection complete
    [11:56:17] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Found status: OUTDATED Target: 14.23.2.2632
    [11:56:21] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Starting up SoundSystem...
    [11:56:21] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: Initializing LWJGL OpenAL
    [11:56:21] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
    [11:56:21] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: OpenAL initialized.
    [11:56:21] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Sound engine started
    [11:56:27] [main/INFO] [FML]: Max texture size: 16384
    [11:56:28] [main/INFO] [net.minecraft.client.renderer.texture.TextureMap]: Created: 512x512 textures-atlas
    [11:56:29] [main/INFO] [FML]: Applying holder lookups
    [11:56:29] [main/INFO] [FML]: Holder lookups applied
    [11:56:30] [main/INFO] [FML]: Injecting itemstacks
    [11:56:30] [main/INFO] [FML]: Itemstack injection complete
    [11:56:30] [main/INFO] [FML]: Forge Mod Loader has successfully loaded 5 mods
    [11:56:30] [main/WARN] [net.minecraft.client.settings.GameSettings]: Skipping bad option: lastServer:
    [11:56:30] [main/INFO] [com.mojang.text2speech.NarratorWindows]: Narrator library for x64 successfully loaded
    [11:56:31] [Realms Notification Availability checker #1/INFO] [com.mojang.realmsclient.client.RealmsClient]: Could not authorize you against Realms server: Invalid session id
    

    after the crash (when i go in the solo world after loading):

    [11:57:32] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Starting integrated minecraft server version 1.12.2
    [11:57:32] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Generating keypair
    [11:57:32] [Server thread/INFO] [FML]: Injecting existing registry data into this server instance
    [11:57:33] [Server thread/INFO] [FML]: Applying holder lookups
    [11:57:33] [Server thread/INFO] [FML]: Holder lookups applied
    [11:57:33] [Server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@12be7502)
    [11:57:33] [Server thread/INFO] [net.minecraft.advancements.AdvancementList]: Loaded 488 advancements
    [11:57:34] [Server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@12be7502)
    [11:57:34] [Server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@12be7502)
    [11:57:34] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Preparing start region for level 0
    [11:57:35] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Preparing spawn area: 23%
    [11:57:35] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Changing view distance to 12, from 10
    [11:57:37] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 2
    [11:57:37] [Netty Server IO #1/INFO] [FML]: Client protocol version 2
    [11:57:37] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 5 mods : [email protected],[email protected],[email protected],[email protected],[email protected]
    [11:57:37] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established
    [11:57:37] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established
    [11:57:37] [Server thread/INFO] [net.minecraft.server.management.PlayerList]: Player931[local:E:a8e8e98f] logged in with entity id 183 at (294.7117885250885, 77.0, -168.90464750034835)
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Player931 joined the game
    [11:57:37] [Server thread/INFO] [STDOUT]: [com.laurentoutang.hardmod.capabilities.MentalProvider:getCapability:37]: capability == Mental_CAP = true
    [11:57:37] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.fml.common.gameevent.PlayerEvent$PlayerLoggedInEvent@46f5b1d1:
    java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to com.laurentoutang.hardmod.capabilities.IMental
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:25) ~[EventHandler.class:?]
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_7_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic) ~[?:?]
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179) [EventBus.class:?]
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574) [FMLCommonHandler.class:?]
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228) [PlayerList.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259) [NetworkDispatcher.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72) [NetworkDispatcher.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208) [NetworkDispatcher$1.class:?]
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307) [NetworkManager.class:?]
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197) [NetworkSystem.class:?]
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863) [MinecraftServer.class:?]
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741) [MinecraftServer.class:?]
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590) [MinecraftServer.class:?]
    	at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    [11:57:37] [Server thread/ERROR] [FML]: Index: 2 Listeners:
    [11:57:37] [Server thread/ERROR] [FML]: 0: NORMAL
    [11:57:37] [Server thread/ERROR] [FML]: 1: ASM: forge playerLogin(Lnet/minecraftforge/fml/common/gameevent/PlayerEvent$PlayerLoggedInEvent;)V
    [11:57:37] [Server thread/ERROR] [FML]: 2: ASM: class com.laurentoutang.hardmod.util.handlers.EventHandler onPlayerLogsIn(Lnet/minecraftforge/fml/common/gameevent/PlayerEvent$PlayerLoggedInEvent;)V
    [11:57:37] [Server thread/ERROR] [net.minecraft.server.MinecraftServer]: Encountered an unexpected exception
    net.minecraft.util.ReportedException: Ticking memory connection
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:212) ~[NetworkSystem.class:?]
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863) ~[MinecraftServer.class:?]
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741) ~[MinecraftServer.class:?]
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) ~[IntegratedServer.class:?]
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590) [MinecraftServer.class:?]
    	at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    Caused by: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to com.laurentoutang.hardmod.capabilities.IMental
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:25) ~[EventHandler.class:?]
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_7_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic) ~[?:?]
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179) ~[EventBus.class:?]
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574) ~[FMLCommonHandler.class:?]
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228) ~[PlayerList.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259) ~[NetworkDispatcher.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72) ~[NetworkDispatcher.class:?]
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208) ~[NetworkDispatcher$1.class:?]
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307) ~[NetworkManager.class:?]
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197) ~[NetworkSystem.class:?]
    	... 5 more
    [11:57:37] [Server thread/ERROR] [net.minecraft.server.MinecraftServer]: This crash report has been saved to: C:\Users\Michael\Desktop\MINECRAFT_DVLT\run\.\crash-reports\crash-2018-03-23_11.57.37-server.txt
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Stopping server
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving players
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving worlds
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving chunks for level 'New World'/overworld
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving chunks for level 'New World'/the_nether
    [11:57:37] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving chunks for level 'New World'/the_end
    [11:57:38] [Server thread/INFO] [FML]: Unloading dimension 0
    [11:57:38] [Server thread/INFO] [FML]: Unloading dimension -1
    [11:57:38] [Server thread/INFO] [FML]: Unloading dimension 1
    [11:57:38] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
    // I let you down. Sorry :(
    
    Time: 3/23/18 11:57 AM
    Description: Ticking memory connection
    
    java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to com.laurentoutang.hardmod.capabilities.IMental
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:25)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_7_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574)
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Client thread
    Stacktrace:
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:25)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_7_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574)
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    
    -- Ticking connection --
    Details:
    	Connection: net.minecraft.network.NetworkManager@21393b43
    Stacktrace:
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 542608664 bytes (517 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State     | ID        | Version      | Source                           | Signature |
    	|:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJAAAA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJAAAA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJAAAA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | hm        | 1.0          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    	Profiler Position: N/A (disabled)
    	Player Count: 1 / 8; [EntityPlayerMP['Player931'/183, l='New World', x=294.71, y=77.00, z=-168.90]]
    	Type: Integrated Server (map_client.txt)
    	Is Modded: Definitely; Client brand changed to 'fml,forge'
    [11:57:38] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2018-03-23_11.57.37-server.txt
    [11:57:38] [main/INFO] [FML]: Waiting for the server to terminate/save.
    [11:57:39] [pool-2-thread-1/WARN] [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService]: Couldn't look up profile properties for com.mojang.authlib.GameProfile@239e7409[id=baf6de3a-5bd7-32fc-ab9f-e6b63b25393f,name=Player931,properties={},legacy=false]
    com.mojang.authlib.exceptions.AuthenticationException: The client has sent too many requests within a certain amount of time
    	at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:79) ~[YggdrasilAuthenticationService.class:?]
    	at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillGameProfile(YggdrasilMinecraftSessionService.java:180) [YggdrasilMinecraftSessionService.class:?]
    	at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:60) [YggdrasilMinecraftSessionService$1.class:?]
    	at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:57) [YggdrasilMinecraftSessionService$1.class:?]
    	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache.get(LocalCache.java:4154) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) [guava-21.0.jar:?]
    	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5153) [guava-21.0.jar:?]
    	at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillProfileProperties(YggdrasilMinecraftSessionService.java:170) [YggdrasilMinecraftSessionService.class:?]
    	at net.minecraft.client.Minecraft.getProfileProperties(Minecraft.java:3188) [Minecraft.class:?]
    	at net.minecraft.client.resources.SkinManager$3.run(SkinManager.java:138) [SkinManager$3.class:?]
    	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161]
    	at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161]
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_161]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_161]
    	at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    [11:57:39] [Server thread/INFO] [FML]: Applying holder lookups
    [11:57:39] [Server thread/INFO] [FML]: Holder lookups applied
    [11:57:39] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
    [11:57:39] [main/INFO] [FML]: Server terminated.
    [11:57:39] [Client Shutdown Thread/INFO] [net.minecraft.server.MinecraftServer]: Stopping server
    [11:57:39] [Client Shutdown Thread/INFO] [net.minecraft.server.MinecraftServer]: Saving players
    AL lib: (EE) alc_cleanup: 1 device not closed
    Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
    


     

  9. Ok thank you I did it and now i have this error in the crash-report : net.minecraftforge.common.capabilities.Capability cannot be cast to com.laurentoutang.hardmod.capabilities.IMental
    I'll try to fix it

  10. Yep the problem is that mental is null, i post edited code :

    EventHandler.java

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.IMental;
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.text.TextComponentString;
    import net.minecraftforge.event.entity.player.PlayerInteractEvent;
    import net.minecraftforge.event.entity.player.PlayerWakeUpEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber
    public class EventHandler {
    
    	 @SubscribeEvent
    	 public static void onPlayerLogsIn(PlayerLoggedInEvent event)
    	 {
    
    		 EntityPlayer player = event.player;
    
    		 IMental mental = player.getCapability(MentalProvider.Mental_CAP, null);
    		 if(mental != null)
    		 {
    			 String message = String.format("mental = ", (int) mental.getMental());
    			 player.sendMessage(new TextComponentString(message));
    		 }		
    		 player.sendMessage(new TextComponentString("hey ! "));
    	 }	 
    	 
    }

    CapabilityHandler : 

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.event.AttachCapabilitiesEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber
    public class CapabilityHandler {
    	
    	 public static final ResourceLocation Mental_CAP = new ResourceLocation(Reference.MOD_ID, "mental");
    
    	 
    	 @SubscribeEvent
    
    	 public void attachCapability(AttachCapabilitiesEvent<Entity> event)
    	 {
    		 if (event.getObject() instanceof EntityPlayer)
    			 event.addCapability(Mental_CAP, new MentalProvider());	
    
    	 }
    }

     

  11. Ok thank you i added it to the event bus. But there is still the issue. 
    This is the crash report : 

    ---- Minecraft Crash Report ----
    // Sorry :(
    
    Time: 3/22/18 3:34 PM
    Description: Ticking memory connection
    
    java.lang.NullPointerException: Ticking memory connection
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:28)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574)
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Thread: Server thread
    Stacktrace:
    	at com.laurentoutang.hardmod.util.handlers.EventHandler.onPlayerLogsIn(EventHandler.java:28)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_EventHandler_onPlayerLogsIn_PlayerLoggedInEvent.invoke(.dynamic)
    	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
    	at net.minecraftforge.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:574)
    	at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:228)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:259)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72)
    	at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:208)
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:307)
    
    -- Ticking connection --
    Details:
    	Connection: net.minecraft.network.NetworkManager@3ffdf436
    Stacktrace:
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:197)
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:863)
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741)
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590)
    	at java.lang.Thread.run(Unknown Source)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_161, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 542299088 bytes (517 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
    	FML: MCP 9.42 Powered by Forge 14.23.2.2629 5 mods loaded, 5 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State     | ID        | Version      | Source                           | Signature |
    	|:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
    	| UCHIJAAAA | minecraft | 1.12.2       | minecraft.jar                    | None      |
    	| UCHIJAAAA | mcp       | 9.42         | minecraft.jar                    | None      |
    	| UCHIJAAAA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | forge     | 14.23.2.2629 | forgeSrc-1.12.2-14.23.2.2629.jar | None      |
    	| UCHIJAAAA | hm        | 1.0          | bin                              | None      |
    
    	Loaded coremods (and transformers): 
    	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    	Profiler Position: N/A (disabled)
    	Player Count: 1 / 8; [EntityPlayerMP['Player149'/181, l='New World', x=287.43, y=77.00, z=-169.72]]
    	Type: Integrated Server (map_client.txt)
    	Is Modded: Definitely; Client brand changed to 'fml,forge'

     

  12. in the main : 

    @EventHandler
    	public static void PreInit(FMLPreInitializationEvent event)
    	{
    		MentalStorage.register();
    	}

    in IMental.java : 

    package com.laurentoutang.hardmod.capabilities;
    
    public interface IMental {
    
    	public void consume(float points);
    	public void fill(float points);
    	public void setMental(float points);
    	public float getMental();
    }

    in Mental.java

    package com.laurentoutang.hardmod.capabilities;
    
    import io.netty.buffer.ByteBuf;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraftforge.common.util.INBTSerializable;
    import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
    
    public class Mental implements IMental{
    
    	private float mental=100.f;
    	
    	
    	public Mental(float mental)
    	{
    		this.mental = mental;
    	}
    	public Mental()
    	{
    		
    	}
    	
    	@Override
    	public void consume(float points) {
    		if(mental-points < 0)
    			mental = 0;
    		else
    			mental -= points;
    	}
    
    	@Override
    	public void fill(float points) {
    		if(mental + points > 100)
    			mental = 100;
    		else
    			mental += points;
    	}
    
    	@Override
    	public void setMental(float points) {
    		mental = points;
    	}
    
    	@Override
    	public float getMental() {
    		return mental;
    	}	
    
    }

    in MentalProvider.java 

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.CapabilityInject;
    import net.minecraftforge.common.capabilities.ICapabilitySerializable;
    
    public class MentalProvider implements ICapabilitySerializable<NBTBase>{
    
    	 @CapabilityInject(IMental.class)
    
    	 public static final Capability<IMental> Mental_CAP = null;
    
    	 
    	 private IMental instance = Mental_CAP.getDefaultInstance();
    
    	 
    	 @Override
    
    	 public boolean hasCapability(Capability<?> capability, EnumFacing facing)
    
    	 {
    
    		 return capability == Mental_CAP;
    
    	 }
    
    	 
    	 @Override
    
    	 public <T> T getCapability(Capability<T> capability, EnumFacing facing)
    
    	 {
    
    		 return capability == Mental_CAP ? Mental_CAP.<T> cast(this.instance) : null;
    
    	 }
    
    	 
    	 @Override
    
    	 public NBTBase serializeNBT()
    
    	 {
    
    		 return Mental_CAP.getStorage().writeNBT(Mental_CAP, this.instance, null);
    
    	 }
    
    	 
    	 @Override
    
    	 public void deserializeNBT(NBTBase nbt)
    
    	 {
    
    		 Mental_CAP.getStorage().readNBT(Mental_CAP, this.instance, null, nbt);
    
    	 }
    }

    in MentalStorage.java

    package com.laurentoutang.hardmod.capabilities;
    
    import net.minecraft.nbt.NBTBase;
    import net.minecraft.nbt.NBTPrimitive;
    import net.minecraft.nbt.NBTTagFloat;
    import net.minecraft.util.EnumFacing;
    import net.minecraftforge.common.capabilities.Capability;
    import net.minecraftforge.common.capabilities.Capability.IStorage;
    import net.minecraftforge.common.capabilities.CapabilityManager;
    
    public class MentalStorage implements IStorage<IMental>{
    
    	 @Override
    
    	 public NBTBase writeNBT(Capability<IMental> capability, IMental instance, EnumFacing side)
    
    	 {
    
    	 return new NBTTagFloat(instance.getMental());
    
    	 }
    
    	 
    	 @Override
    
    	 public void readNBT(Capability<IMental> capability, IMental instance, EnumFacing side, NBTBase nbt)
    
    	 {
    
    	 instance.setMental(((NBTPrimitive) nbt).getFloat());
    
    	 }
    	 
    	 public static void register()
    	 {
    		 CapabilityManager.INSTANCE.register(IMental.class, new MentalStorage(), Mental::new);//Mental::new else deprecated
    	 }
    }

    in CapabilityHandler 

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.event.AttachCapabilitiesEvent;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    
    public class CapabilityHandler {
    	
    	 public static final ResourceLocation Mental_CAP = new ResourceLocation(Reference.MOD_ID, "mental");
    
    	 
    	 @SubscribeEvent
    
    	 public void attachCapability(AttachCapabilitiesEvent<Entity> event)
    	 {
    		 if (event.getObject() instanceof EntityPlayer)
    			 event.addCapability(Mental_CAP, new MentalProvider());	 //!= than tuto
    
    	 }
    }

    in EventHandler

    package com.laurentoutang.hardmod.util.handlers;
    
    import com.laurentoutang.hardmod.capabilities.IMental;
    import com.laurentoutang.hardmod.capabilities.MentalProvider;
    import com.laurentoutang.hardmod.util.Reference;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.util.text.TextComponentString;
    import net.minecraftforge.event.entity.player.PlayerInteractEvent;
    import net.minecraftforge.event.entity.player.PlayerWakeUpEvent;
    import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
    import net.minecraftforge.fml.relauncher.Side;
    
    @EventBusSubscriber(value = Side.CLIENT, modid = Reference.MOD_ID)
    public class EventHandler {
    
    	 @SubscribeEvent
    	 public static void onPlayerLogsIn(PlayerLoggedInEvent event)//static else it doesnt work
    
    	 {
    
    		 EntityPlayer player = event.player;
    
    		 IMental mental = player.getCapability(MentalProvider.Mental_CAP, null);
    
    	 
    		 String message = String.format("mental = ", (int) mental.getMental());
    
    		 player.sendMessage(new TextComponentString(message));
    		 player.sendMessage(new TextComponentString("hey ! "));
    	 }	 
    	 
    }

    The game crashes just when it starts, because of what is iin onPlayerLogsIn, probably 

    IMental mental = player.getCapability(MentalProvider.Mental_CAP, null);

    this returns something wrong, then we can't use it. Thank you.
    PS : it displays "hey" if we comment the 3 lines before so the event works.

  13. I found a hold topic where i got the answer i have to put:
    "nbt": {
           "EntityTag": {
                  "id": "minecraft:skeleton"
           }
        },

    after "item" and btw it was you that answered :D. It works. Thank you.
    Topic : https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/modification-development/2847703-registering-recipes-using-the-json-system-with

  14. Ok thank you, but how can i do that please. I took a look at minecraft recipe files and the result for the green carpet for example is 
    "result": {
        "item": "minecraft:carpet",
        "data": 13,
        "count": 3
      }

    They use "data", isn't this the same thing (i didn't found something done with mobs instead of dye) ? Sorry for my english

  15. Hi all, i have a recipe with a special pattern and i want a special mob spawner as result like skeleton spawner. But when i put "data": a_number under the item, i have a pig spawner ingame, how can i do please ? Thanks

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.