blob: 52767afff9ab76ce2e3cec746d9d32ef161cb643 [file] [log] [blame] [raw]
package li.cil.oc
import java.util.logging.Logger
import cpw.mods.fml.common.Mod.EventHandler
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent
import cpw.mods.fml.common.{Mod, SidedProxy}
import cpw.mods.fml.common.event._
import cpw.mods.fml.common.network.NetworkMod
import cpw.mods.fml.common.network.NetworkMod._
import li.cil.oc.client.{PacketHandler => ClientPacketHandler}
import li.cil.oc.common.Proxy
import li.cil.oc.common.template.AssemblerTemplates
import li.cil.oc.server.{CommandHandler, PacketHandler => ServerPacketHandler}
import scala.collection.convert.WrapAsScala._
@Mod(modid = OpenComputers.ID, name = OpenComputers.Name,
version = OpenComputers.Version, /* certificateFingerprint = OpenComputers.Fingerprint, */
modLanguage = "scala", useMetadata = true)
@NetworkMod(clientSideRequired = true, serverSideRequired = false,
clientPacketHandlerSpec = new SidedPacketHandler(
channels = Array("OpenComp"), packetHandler = classOf[ClientPacketHandler]),
serverPacketHandlerSpec = new SidedPacketHandler(
channels = Array("OpenComp"), packetHandler = classOf[ServerPacketHandler]))
object OpenComputers {
final val ID = "OpenComputers"
final val Name = "OpenComputers"
final val Version = "@VERSION@"
final val Fingerprint = "@FINGERPRINT@"
var log = Logger.getLogger("OpenComputers")
@SidedProxy(clientSide = "li.cil.oc.client.Proxy", serverSide = "li.cil.oc.server.Proxy")
var proxy: Proxy = null
var tampered: Option[FMLFingerprintViolationEvent] = None
// @EventHandler
// def invalidFingerprint(e: FMLFingerprintViolationEvent) = tampered = Some(e)
@EventHandler
def preInit(e: FMLPreInitializationEvent) {
proxy.preInit(e)
log = e.getModLog
}
@EventHandler
def init(e: FMLInitializationEvent) = proxy.init(e)
@EventHandler
def postInit(e: FMLPostInitializationEvent) = proxy.postInit(e)
@EventHandler
def serverStart(e: FMLServerStartingEvent) = CommandHandler.register(e)
@EventHandler
def imc(e: IMCEvent) = {
for (message <- e.getMessages) {
if (message.key == "registerAssemblerTemplate" && message.isNBTMessage) {
log.fine(s"Registering new assembler template from mod ${message.getSender}.")
AssemblerTemplates.add(message.getNBTValue)
}
}
}
}