Added debug.isModLoaded.

Added debug level log messages for registered drivers.
This commit is contained in:
Florian Nücke 2015-04-06 14:33:55 +02:00
parent 69cc18bcf8
commit ed516fc9d6
2 changed files with 21 additions and 3 deletions

View File

@ -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()

View File

@ -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) =