diff --git a/src/main/scala/li/cil/oc/server/component/DebugCard.scala b/src/main/scala/li/cil/oc/server/component/DebugCard.scala index c0c965246..efa2c27ad 100644 --- a/src/main/scala/li/cil/oc/server/component/DebugCard.scala +++ b/src/main/scala/li/cil/oc/server/component/DebugCard.scala @@ -1,6 +1,8 @@ package li.cil.oc.server.component import com.google.common.base.Strings +import cpw.mods.fml.common.Loader +import cpw.mods.fml.common.ModAPIManager import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api.Network @@ -108,6 +110,13 @@ class DebugCard(host: EnvironmentHost) extends prefab.ManagedEnvironment { result(new DebugCard.PlayerValue(args.checkString(0))) } + @Callback(doc = """function(name:string):boolean -- Get whether a mod or API is loaded.""") + def isModLoaded(context: Context, args: Arguments): Array[AnyRef] = { + checkEnabled() + val name = args.checkString(0) + result(Loader.isModLoaded(name) || ModAPIManager.INSTANCE.hasAPI(name)) + } + @Callback(doc = """function(command:string):number -- Runs an arbitrary command using a fake player.""") def runCommand(context: Context, args: Arguments): Array[AnyRef] = { checkEnabled() diff --git a/src/main/scala/li/cil/oc/server/driver/Registry.scala b/src/main/scala/li/cil/oc/server/driver/Registry.scala index 811ad3c87..a2f58e0bd 100644 --- a/src/main/scala/li/cil/oc/server/driver/Registry.scala +++ b/src/main/scala/li/cil/oc/server/driver/Registry.scala @@ -44,17 +44,26 @@ private[oc] object Registry extends api.detail.DriverAPI { override def add(driver: api.driver.Block) { if (locked) throw new IllegalStateException("Please register all drivers in the init phase.") - if (!blocks.contains(driver)) blocks += driver + if (!blocks.contains(driver)) { + OpenComputers.log.debug(s"Registering block driver ${driver.getClass.getName}.") + blocks += driver + } } override def add(driver: api.driver.Item) { if (locked) throw new IllegalStateException("Please register all drivers in the init phase.") - if (!blocks.contains(driver)) items += driver + if (!blocks.contains(driver)) { + OpenComputers.log.debug(s"Registering item driver ${driver.getClass.getName}.") + items += driver + } } override def add(converter: Converter) { if (locked) throw new IllegalStateException("Please register all converters in the init phase.") - if (!converters.contains(converter)) converters += converter + if (!converters.contains(converter)) { + OpenComputers.log.debug(s"Registering converter ${converter.getClass.getName}.") + converters += converter + } } override def driverFor(world: World, x: Int, y: Int, z: Int) =