diff --git a/src/main/scala/li/cil/oc/server/component/UpgradeExperience.scala b/src/main/scala/li/cil/oc/server/component/UpgradeExperience.scala index ebaf9b735..7f924a3a8 100644 --- a/src/main/scala/li/cil/oc/server/component/UpgradeExperience.scala +++ b/src/main/scala/li/cil/oc/server/component/UpgradeExperience.scala @@ -24,6 +24,8 @@ import scala.collection.convert.WrapAsJava._ import scala.collection.convert.WrapAsScala._ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends prefab.ManagedEnvironment with DeviceInfo { + final val MaxLevel = 30 + override val node = api.Network.newNode(this, Visibility.Network). withComponent("experience"). withConnector(30 * Settings.get.bufferPerLevel). @@ -50,7 +52,7 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p def xpForNextLevel = xpForLevel(level + 1) def addExperience(value: Double) { - if (level < 30) { + if (level < MaxLevel) { experience = experience + value if (experience >= xpForNextLevel) { updateXpInfo() @@ -76,6 +78,9 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p @Callback(doc = """function():boolean -- Tries to consume an enchanted item to add experience to the upgrade.""") def consume(context: Context, args: Arguments): Array[AnyRef] = { + if (level >= MaxLevel) { + return result(Unit, "max level") + } val stack = host.mainInventory.getStackInSlot(host.selectedSlot) if (stack == null || stack.stackSize < 1) { return result(Unit, "no item")