LaurentOutang
-
Posts
46 -
Joined
-
Last visited
Posts posted by LaurentOutang
-
-
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
-
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 -
I'll try it on the serveur I fixed the last problem, and I'll see if there is one mental per player and if it is conserved between two connections. I'll let you know
-
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
-
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'
-
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
-
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
-
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
-
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 -
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()); } }
-
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'
-
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. -
Hello,
I tried to follow this tuto about capabilities : https://www.planetminecraft.com/blog/forge-tutorial-capability-system/
I used the new functions ( not deprecated ones ) but when i run the project, the game crashes because of what is in the "onPlayerLogsIn" : IMana mana = player.getCapability(ManaProvider.MANA_CAP, null);
Can you help me fixing it pls ? Thank you. (Sorry for my english) -
Ok thank you
-
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 . 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 -
I saw that it is impossible to do that way. You have to modify the block logic or to create another class for that. I'll do with eggs. Thank anyway
-
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
-
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
-
-
Hi, i wondered where should i set a maximum amount of HP, disable regeneration or this kind of things (i know how to do it but i don't know where) ? Thanks (sorry for my english)
Capabilities
in Modder Support
Posted
Here's the crash report