import java.util.* abstract class Module { var enabled = false abstract fun getName(): String abstract fun isOptional(): Boolean abstract fun onEnable() abstract fun onDisable() abstract fun onLogMessage(time: Date, messageBurstGroup: Short, message: String) fun enable() { enabled = true onEnable() } fun disable() { enabled = false onDisable() } fun isEnabled() = enabled }