
[1.10.2] Can't pull Forge Energy from EnderIO stuff
SoniEx2 opened this issue ยท 16 comments
Issue Description:
I'm backporting PowerCrops to 1.10.2 and I can't pull Forge Energy from EnderIO machines, even tho pushing into them works fine.
What happens:
Can't pull power.
What you expected to happen:
Power to be pulled.
Steps to reproduce:
- Attempt to pull power from an EnderIO thing using Forge Energy API.
...
Affected Versions (Do not use "latest"):
[21:27:13] [Client thread/INFO]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: ---- Minecraft Crash Report ----
WARNING: coremods are present:
EnderCorePlugin (EnderCore-1.10.2-0.4.1.65-beta.jar)
Contact their authors BEFORE contacting forge
// You're mean.
Time: 07/03/17 9:27 PM
Description: Manually triggered debug crash
java.lang.Throwable
at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:1963)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1846)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1118)
at net.minecraft.client.Minecraft.run(Minecraft.java:406)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:1963)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player812'/75, l='MpServer', x=-912.35, y=5.00, z=-1326.54]]
Chunk stats: MultiplayerChunkCache: 289, 289
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options:
Level spawn location: World: (-906,4,-1316), Chunk: (at 6,0,12 in -57,-83; contains blocks -912,0,-1328 to -897,255,-1313), Region: (-2,-3; contains chunks -64,-96 to -33,-65, blocks -1024,0,-1536 to -513,255,-1025)
Level time: 27916 game time, 16876 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 32 total; [EntityCow['Cow'/2, l='MpServer', x=-983.50, y=4.00, z=-1402.50], EntityPig['Pig'/3, l='MpServer', x=-985.50, y=4.00, z=-1406.50], EntityCow['Cow'/4, l='MpServer', x=-976.50, y=4.00, z=-1357.50], EntitySheep['Sheep'/5, l='MpServer', x=-978.80, y=4.00, z=-1313.49], EntityHorse['Donkey'/6, l='MpServer', x=-984.20, y=4.00, z=-1311.20], EntitySheep['Sheep'/7, l='MpServer', x=-977.73, y=4.00, z=-1305.82], EntityCow['Cow'/8, l='MpServer', x=-966.81, y=4.00, z=-1366.29], EntityCow['Cow'/9, l='MpServer', x=-971.50, y=4.00, z=-1357.50], EntityCow['Cow'/10, l='MpServer', x=-975.50, y=4.00, z=-1359.50], EntitySheep['Sheep'/11, l='MpServer', x=-975.79, y=4.00, z=-1310.63], EntitySheep['Sheep'/15, l='MpServer', x=-950.39, y=4.00, z=-1300.76], EntityChicken['Chicken'/16, l='MpServer', x=-944.18, y=4.00, z=-1283.39], EntityChicken['Chicken'/18, l='MpServer', x=-938.89, y=4.00, z=-1247.76], EntitySheep['Sheep'/24, l='MpServer', x=-942.35, y=4.00, z=-1309.21], EntitySheep['Sheep'/25, l='MpServer', x=-947.33, y=4.00, z=-1309.21], EntityChicken['Chicken'/26, l='MpServer', x=-938.50, y=4.00, z=-1282.50], EntitySheep['Sheep'/27, l='MpServer', x=-941.50, y=4.00, z=-1280.50], EntityItem['item.item.egg'/498908, l='MpServer', x=-938.38, y=4.00, z=-1281.67], EntitySheep['Sheep'/28, l='MpServer', x=-940.50, y=4.00, z=-1280.50], EntityChicken['Chicken'/31, l='MpServer', x=-934.78, y=4.00, z=-1247.58], EntitySheep['Sheep'/33, l='MpServer', x=-932.25, y=4.00, z=-1297.34], EntityCow['Cow'/34, l='MpServer', x=-899.27, y=4.00, z=-1382.86], EntityCow['Cow'/35, l='MpServer', x=-889.77, y=4.00, z=-1397.54], EntityCow['Cow'/36, l='MpServer', x=-888.09, y=4.00, z=-1396.77], EntityCow['Cow'/37, l='MpServer', x=-885.43, y=4.00, z=-1398.15], EntityPig['Pig'/38, l='MpServer', x=-848.19, y=4.00, z=-1395.74], EntityChicken['Chicken'/41, l='MpServer', x=-832.88, y=4.00, z=-1400.28], EntityPig['Pig'/42, l='MpServer', x=-832.79, y=4.00, z=-1394.70], EntityPig['Pig'/43, l='MpServer', x=-846.77, y=4.00, z=-1398.73], EntitySheep['Sheep'/45, l='MpServer', x=-836.84, y=4.00, z=-1278.84], EntityCow['Cow'/46, l='MpServer', x=-845.30, y=4.00, z=-1252.14], EntityPlayerSP['Player812'/75, l='MpServer', x=-912.35, y=5.00, z=-1326.54]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:451)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779)
at net.minecraft.client.Minecraft.run(Minecraft.java:427)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)
-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Linux (amd64) version 4.9.11-2-ck-ivybridge
Java Version: 1.8.0_121, Oracle Corporation
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 371900424 bytes (354 MB) / 1155530752 bytes (1102 MB) up to 1834483712 bytes (1749 MB)
JVM Flags: 0 total;
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.32 Powered by Forge 12.18.3.2185 7 mods loaded, 7 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.3.2185.jar)
UCHIJAAAA Forge{12.18.3.2185} [Minecraft Forge] (forgeSrc-1.10.2-12.18.3.2185.jar)
UCHIJAAAA powercrops{1.0.0} [You wouldn't get this from any other guy] (PowerCrops)
UCHIJAAAA actuallyadditions{1.10.2-r98} [Actually Additions] (ActuallyAdditions-1.10.2-r98.jar)
UCHIJAAAA endercore{1.10.2-0.4.1.65-beta} [EnderCore] (EnderCore-1.10.2-0.4.1.65-beta.jar)
UCHIJAAAA EnderIO{1.10.2-3.1.173} [Ender IO] (EnderIO-1.10.2-3.1.173.jar)
Loaded coremods (and transformers):
EnderCorePlugin (EnderCore-1.10.2-0.4.1.65-beta.jar)
com.enderio.core.common.transform.EnderCoreTransformer
GL info: ' Vendor: 'X.Org' Version: '3.0 Mesa 17.0.0' Renderer: 'Gallium 0.4 on AMD CAYMAN (DRM 2.48.0 / 4.9.11-2-ck-ivybridge, LLVM 3.9.1)'
EnderIO: No known problems detected.
Detailed RF API diagnostics:
* RF API class 'EnergyStorage' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/EnergyStorage.class
* RF API class 'IEnergyConnection' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyConnection.class
* RF API class 'IEnergyContainerItem' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyContainerItem.class
* RF API class 'IEnergyHandler' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyHandler.class
* RF API class 'IEnergyProvider' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyProvider.class
* RF API class 'IEnergyReceiver' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyReceiver.class
* RF API class 'IEnergyStorage' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/IEnergyStorage.class
* RF API class 'ItemEnergyContainer' is loaded from: jar:file:/home/soniex2/git/bitbucket/PowerCrops/run/mods/1.10.2/ActuallyAdditions-1.10.2-r98.jar!/cofh/api/energy/ItemEnergyContainer.class
* RF API class 'TileEnergyHandler' could not be loaded (reason: java.lang.ClassNotFoundException: cofh.api.energy.TileEnergyHandler)
Detailed Tesla API diagnostics:
* Tesla API class 'Tesla' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.Tesla)
* Tesla API class 'TeslaCapabilities' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.capability.TeslaCapabilities)
* Tesla API class 'ITeslaConsumer' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.ITeslaConsumer)
* Tesla API class 'ITeslaHolder' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.ITeslaHolder)
* Tesla API class 'ITeslaProducer' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.ITeslaProducer)
* Tesla API class 'BaseTeslaContainer' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.BaseTeslaContainer)
* Tesla API class 'BaseTeslaContainerProvider' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.BaseTeslaContainerProvider)
* Tesla API class 'InfiniteTeslaConsumer' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.InfiniteTeslaConsumer)
* Tesla API class 'InfiniteTeslaConsumerProvider' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.InfiniteTeslaConsumerProvider)
* Tesla API class 'InfiniteTeslaProducer' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.InfiniteTeslaProducer)
* Tesla API class 'InfiniteTeslaProducerProvider' could not be loaded (reason: java.lang.ClassNotFoundException: net.darkhax.tesla.api.implementation.InfiniteTeslaProducerProvider)
Launched Version: 1.10.2
LWJGL: 2.9.4
OpenGL: Gallium 0.4 on AMD CAYMAN (DRM 2.48.0 / 4.9.11-2-ck-ivybridge, LLVM 3.9.1) GL version 3.0 Mesa 17.0.0, X.Org
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-3330 CPU @ 3.00GHz
[21:27:13] [Client thread/INFO]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: #@!@# Game crashed! Crash report saved to: #@!@# /home/soniex2/git/bitbucket/PowerCrops/run/./crash-reports/crash-2017-03-07_21.27.13-client.txt
Works as designed. FE, just like RF which is based on, is a push-based energy system.
It also implements a fully functional pull API for cases where push isn't good enough. You're the ones who are too lazy to do things correctly.
Lazy? Are you joking? Do you have any idea how much extra work it is to have a a proper external interface for energy/items/fluids that respects all restrictions and rules in addition to the internal interface?
Again, you're the one not implementing the full interface. So yes, that is lazy. At least throw UnsupportedOperationException so others can know who they should moan at when their stuff doesn't work.
RF and Forge's Energy are push-based by convention. It helps prevent energy-loops and other issues. You can decide to return 0 from extract just like you can return 0 from receive, and other mods have to be prepared for that to happen.
A 1.10.2 version of the mod should be available soon at https://minecraft.curseforge.com/projects/powercrops, if you wanna try it out.
I think you will have to figure out a way to work it in. It's not fair to take your own progression challenges and impose changes on EnderIO.
It's not fair to have an unimplemented method that doesn't throw UnsupportedOperationException.
The methods should be implemented (returning 0 is still implemented), and they should follow the contract defined by IEnergyStorage#canExtract
and IEnergyStorage#canReceive
. Beyond that it's up to them.