From e86201d116dc0df69a2d3bd5554cdf15943e726d Mon Sep 17 00:00:00 2001 From: payonel Date: Sat, 27 Aug 2022 10:48:25 -0700 Subject: [PATCH 1/3] Use max instead of min to allow configuring max machine signal queue size. closes #3084 --- src/main/scala/li/cil/oc/Settings.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/Settings.scala b/src/main/scala/li/cil/oc/Settings.scala index 72c06a1d26..f0206da1f2 100644 --- a/src/main/scala/li/cil/oc/Settings.scala +++ b/src/main/scala/li/cil/oc/Settings.scala @@ -466,7 +466,7 @@ class Settings(val config: Config) { val disableLocaleChanging = config.getBoolean("debug.disableLocaleChanging") // >= 1.7.4 - val maxSignalQueueSize: Int = (if (config.hasPath("computer.maxSignalQueueSize")) config.getInt("computer.maxSignalQueueSize") else 256) min 256 + val maxSignalQueueSize: Int = (if (config.hasPath("computer.maxSignalQueueSize")) config.getInt("computer.maxSignalQueueSize") else 256) max 256 // >= 1.7.6 val vramSizes: Array[Double] = Array(config.getDoubleList("gpu.vramSizes"): _*) match { From 33eb8cb7fd6ae265ebc233a4a778134abd5aef6f Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sun, 28 Aug 2022 10:14:31 +0200 Subject: [PATCH 2/3] fix #3540, update changelog --- changelog.md | 2 ++ src/main/scala/li/cil/oc/server/component/MotionSensor.scala | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index cefe7844db..95d5399c42 100644 --- a/changelog.md +++ b/changelog.md @@ -41,6 +41,7 @@ * Fixed: [#2911] Inconsistent values used by getGameType() and setGameType() in Debug Card. * (1.12.2) Fixed: [#3472] Incorrect 3D print lighting. * Fixed: [#3226] Incorrect Hard Drive reported maximum stack size when formatted. +* Fixed: [#3084] Incorrect parsing of the 'maxSignalQueueSize' configuration option. * Fixed: [#3184] Incorrect redstone card sides inside racks and computers. * Fixed: [#3182] Incorrect reporting of entity inventory names in Transposer, plus other Transposer interaction issues. * Fixed: Missing null check for Blood Magic integration. @@ -48,6 +49,7 @@ * Fixed: [#3249] NullPointerException when remote terminal is missing. * Fixed: [#3401] 'rawSetForeground', 'rawSetBackground' not working correctly. * Fixed: [#3265] Relay 'setStrength' unlimited upper bound. (JamesOrdner) +* (1.7.10) Fixed: [#3540] Server-side crash with Motion Sensor * Fixed: [#1999] 'string.gsub' patterns now allow numbers. * Fixed: [#3195] Tier 1 Wireless Cards not receiving messages. * (1.7.10) Fixed: [#3239] Unnecessary/unwanted canEntityDestroy check in OpenComputers fake player. diff --git a/src/main/scala/li/cil/oc/server/component/MotionSensor.scala b/src/main/scala/li/cil/oc/server/component/MotionSensor.scala index ff5b566fa3..fc9dfa2632 100644 --- a/src/main/scala/li/cil/oc/server/component/MotionSensor.scala +++ b/src/main/scala/li/cil/oc/server/component/MotionSensor.scala @@ -111,7 +111,7 @@ class MotionSensor(val host: EnvironmentHost) extends prefab.ManagedEnvironment // is pseudo-infrared driven (it only works for *living* entities, after // all), so I think it makes more sense for it to work in the dark, too. /* entity.getBrightness(0) > 0.2 && */ { - val target = entity.getPosition(1.0F) + val target = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ) isClearPath(target) || isClearPath(target.addVector(0, entity.getEyeHeight, 0)) } From e84596e5222e979404ed551093200cd911b459b8 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sun, 28 Aug 2022 10:47:31 +0200 Subject: [PATCH 3/3] fix gtnh-found null fluid tank info crash --- changelog.md | 1 + .../cil/oc/server/component/traits/WorldTankAnalytics.scala | 5 ++++- src/main/scala/li/cil/oc/util/ExtendedArguments.scala | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 95d5399c42..f4646c918b 100644 --- a/changelog.md +++ b/changelog.md @@ -47,6 +47,7 @@ * Fixed: Missing null check for Blood Magic integration. * Fixed: [#3336] Missing null check for GregTech data stick NBTs. * Fixed: [#3249] NullPointerException when remote terminal is missing. +* Fixed: Potential edge case crash with the Tank Controller Upgrade. * Fixed: [#3401] 'rawSetForeground', 'rawSetBackground' not working correctly. * Fixed: [#3265] Relay 'setStrength' unlimited upper bound. (JamesOrdner) * (1.7.10) Fixed: [#3540] Server-side crash with Motion Sensor diff --git a/src/main/scala/li/cil/oc/server/component/traits/WorldTankAnalytics.scala b/src/main/scala/li/cil/oc/server/component/traits/WorldTankAnalytics.scala index 7a8a9ccbce..5a19533271 100644 --- a/src/main/scala/li/cil/oc/server/component/traits/WorldTankAnalytics.scala +++ b/src/main/scala/li/cil/oc/server/component/traits/WorldTankAnalytics.scala @@ -52,7 +52,10 @@ trait WorldTankAnalytics extends WorldAware with SideRestricted { def getTankCount(context: Context, args: Arguments): Array[AnyRef] = { val facing = checkSideForAction(args, 0) FluidUtils.fluidHandlerAt(position.offset(facing)) match { - case Some(handler) => result(handler.getTankInfo(facing.getOpposite).length) + case Some(handler) => handler.getTankInfo(facing.getOpposite) match { + case info: Array[FluidTankInfo] => result(info.length) + case _ => result(Unit, "no tank") + } case _ => result(Unit, "no tank") } } diff --git a/src/main/scala/li/cil/oc/util/ExtendedArguments.scala b/src/main/scala/li/cil/oc/util/ExtendedArguments.scala index b66da39197..5cfb32c74d 100644 --- a/src/main/scala/li/cil/oc/util/ExtendedArguments.scala +++ b/src/main/scala/li/cil/oc/util/ExtendedArguments.scala @@ -46,10 +46,11 @@ object ExtendedArguments { def checkTankInfo(handler: IFluidHandler, side: ForgeDirection, n: Int) = { val tank = args.checkInteger(n) - 1 - if (tank < 0 || tank >= handler.getTankInfo(side).length) { + val tankInfo = handler.getTankInfo(side) + if (tankInfo == null || tank < 0 || tank >= tankInfo.length) { throw new IllegalArgumentException("invalid tank index") } - handler.getTankInfo(side)(tank) + tankInfo(tank) } def optTankInfo(handler: IFluidHandler, side: ForgeDirection, n: Int, default: FluidTankInfo) = {