mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-28 23:40:49 -04:00
Merge pull request #24 from repo-alt/master-MC1.7.10
fixed AE network iterator being unsafe
This commit is contained in:
commit
05c702c0d6
@ -115,6 +115,9 @@ repositories {
|
|||||||
name 'UsrvDE'
|
name 'UsrvDE'
|
||||||
url "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/"
|
url "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/"
|
||||||
}
|
}
|
||||||
|
maven {
|
||||||
|
url "http://downloads.gtnewhorizons.com/Mods_for_Jenkins/"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
minecraft.version=1.7.10
|
minecraft.version=1.7.10
|
||||||
forge.version=10.13.4.1614-1.7.10
|
forge.version=10.13.4.1614-1.7.10
|
||||||
|
|
||||||
oc.version=1.7.5.8-GTNH
|
oc.version=1.7.5.9-GTNH
|
||||||
|
|
||||||
ae2.version=rv2-beta-26
|
ae2.version=rv3-beta-31
|
||||||
bc.version=7.0.9
|
bc.version=7.0.9
|
||||||
bloodmagic.cf=2223/203
|
bloodmagic.cf=2223/203
|
||||||
bloodmagic.version=1.3.0a-1
|
bloodmagic.version=1.3.0a-1
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
package li.cil.oc.integration.appeng
|
package li.cil.oc.integration.appeng
|
||||||
|
|
||||||
|
import java.lang
|
||||||
|
|
||||||
import appeng.api.AEApi
|
import appeng.api.AEApi
|
||||||
import appeng.api.config.Actionable
|
import appeng.api.config.Actionable
|
||||||
import appeng.api.networking.crafting.ICraftingLink
|
import appeng.api.networking.crafting.ICraftingLink
|
||||||
import appeng.api.networking.crafting.ICraftingRequester
|
import appeng.api.networking.crafting.ICraftingRequester
|
||||||
import appeng.api.networking.security.IActionHost
|
import appeng.api.networking.security.{BaseActionSource, IActionHost, MachineSource}
|
||||||
import appeng.api.networking.security.MachineSource
|
import appeng.api.networking.storage.IBaseMonitor
|
||||||
|
import appeng.api.storage.IMEMonitorHandlerReceiver
|
||||||
import appeng.api.storage.data.{IAEItemStack, IItemList}
|
import appeng.api.storage.data.{IAEItemStack, IItemList}
|
||||||
import appeng.me.helpers.IGridProxyable
|
import appeng.me.helpers.IGridProxyable
|
||||||
import appeng.util.item.AEItemStack
|
import appeng.util.item.AEItemStack
|
||||||
@ -315,9 +318,11 @@ object NetworkControl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class NetworkContents(var controller: TileEntity with IGridProxyable) extends AbstractValue
|
class NetworkContents(var controller: TileEntity with IGridProxyable) extends AbstractValue with IMEMonitorHandlerReceiver[IAEItemStack]
|
||||||
{
|
{
|
||||||
def this() = this(null)
|
def this() = this(null)
|
||||||
|
if (controller != null)
|
||||||
|
controller.getProxy.getStorage.getItemInventory.addListener(this, null)
|
||||||
var items : IItemList[IAEItemStack] = null
|
var items : IItemList[IAEItemStack] = null
|
||||||
var i : java.util.Iterator[IAEItemStack] = null
|
var i : java.util.Iterator[IAEItemStack] = null
|
||||||
var index = 0
|
var index = 0
|
||||||
@ -350,8 +355,11 @@ object NetworkControl {
|
|||||||
index = nbt.getInteger("index")
|
index = nbt.getInteger("index")
|
||||||
EventHandler.scheduleServer(() => {
|
EventHandler.scheduleServer(() => {
|
||||||
val tileEntity = DimensionManager.getWorld(dimension).getTileEntity(x, y, z)
|
val tileEntity = DimensionManager.getWorld(dimension).getTileEntity(x, y, z)
|
||||||
if (tileEntity != null && tileEntity.isInstanceOf[TileEntity with IGridProxyable])
|
if (tileEntity != null && tileEntity.isInstanceOf[TileEntity with IGridProxyable]) {
|
||||||
controller = tileEntity.asInstanceOf[TileEntity with IGridProxyable]
|
controller = tileEntity.asInstanceOf[TileEntity with IGridProxyable]
|
||||||
|
if (controller!= null)
|
||||||
|
controller.getProxy.getStorage.getItemInventory.addListener(this, null)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -365,6 +373,18 @@ object NetworkControl {
|
|||||||
nbt.setInteger("z", controller.zCoord)
|
nbt.setInteger("z", controller.zCoord)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var valid = true
|
||||||
|
def dispose(context: Nothing): Unit = {
|
||||||
|
valid = false
|
||||||
|
}
|
||||||
|
|
||||||
|
override def isValid(verificationToken: Any): Boolean = valid
|
||||||
|
override def onListUpdate(): Unit = {
|
||||||
|
this.items = null
|
||||||
|
}
|
||||||
|
override def postChange(monitor: IBaseMonitor[IAEItemStack], change: lang.Iterable[IAEItemStack], actionSource: BaseActionSource): Unit = {
|
||||||
|
this.items = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
def aeCraftItem(aeItem: IAEItemStack, tile: TileEntity with IGridProxyable): IAEItemStack = {
|
def aeCraftItem(aeItem: IAEItemStack, tile: TileEntity with IGridProxyable): IAEItemStack = {
|
||||||
val patterns = tile.getProxy.getCrafting.getCraftingFor(aeItem, null, 0, tile.getWorldObj)
|
val patterns = tile.getProxy.getCrafting.getCraftingFor(aeItem, null, 0, tile.getWorldObj)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user