mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 19:25:20 -04:00
This *should* fix the NPE in AE2 integration with versions 20 and up. Can't fully test it because it crashes when I interact with terminals. Closes #978. Again.
This commit is contained in:
parent
b021641efe
commit
ff85880a96
@ -11,6 +11,8 @@ import appeng.me.helpers.IGridProxyable
|
||||
import appeng.tile.misc.TileInterface
|
||||
import appeng.util.item.AEItemStack
|
||||
import com.google.common.collect.ImmutableSet
|
||||
import cpw.mods.fml.common.Loader
|
||||
import cpw.mods.fml.common.versioning.VersionRange
|
||||
import li.cil.oc.OpenComputers
|
||||
import li.cil.oc.api.driver.EnvironmentAware
|
||||
import li.cil.oc.api.driver.NamedBlock
|
||||
@ -22,6 +24,7 @@ import li.cil.oc.api.prefab.AbstractValue
|
||||
import li.cil.oc.api.prefab.DriverTileEntity
|
||||
import li.cil.oc.common.EventHandler
|
||||
import li.cil.oc.integration.ManagedTileEntityEnvironment
|
||||
import li.cil.oc.integration.Mods
|
||||
import li.cil.oc.util.ExtendedNBT._
|
||||
import li.cil.oc.util.ResultWrapper._
|
||||
import net.minecraft.block.Block
|
||||
@ -44,8 +47,16 @@ import scala.language.existentials
|
||||
object DriverController extends DriverTileEntity with EnvironmentAware {
|
||||
private type AETile = TileEntity with IGridProxyable with IActionHost
|
||||
|
||||
val versionsWithNewItemDefinitionAPI = VersionRange.createFromVersionSpec("[rv2-beta-20,)")
|
||||
|
||||
def getTileEntityClass: Class[_] = {
|
||||
if (AEApi.instance != null && AEApi.instance.blocks != null) {
|
||||
if (versionsWithNewItemDefinitionAPI.containsVersion(Loader.instance.getIndexedModList.get(Mods.AppliedEnergistics2.id).getProcessedVersion)) {
|
||||
if (AEApi.instance.definitions.blocks.controller.maybeStack(0).isPresent)
|
||||
AEApi.instance.definitions.blocks.controller.maybeEntity.orNull
|
||||
else
|
||||
AEApi.instance.definitions.blocks.iface.maybeEntity.orNull
|
||||
}
|
||||
else if (AEApi.instance != null && AEApi.instance.blocks != null) {
|
||||
if (AEApi.instance.blocks.blockController != null && AEApi.instance.blocks.blockController.item != null)
|
||||
// Not classOf[TileController] because that derps the compiler when it tries to resolve the class (says can't find API classes from RotaryCraft).
|
||||
Class.forName("appeng.tile.networking.TileController")
|
||||
|
Loading…
x
Reference in New Issue
Block a user