From 790fdde0cb5ace0552527abde8e17b9f409c1a33 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 13 Oct 2022 20:53:41 +0700 Subject: [PATCH] when client ticks faster than server, don't die horribly since client either way handles teleportation logic by itself we just take care of discharging battery --- .../otm/android/feature/EnderTeleporterFeature.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt index 5fbbd4912..041a4308c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/feature/EnderTeleporterFeature.kt @@ -294,15 +294,24 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv } override fun activate(isClient: Boolean): Boolean { - if (!canUse()) { + val canUse = canUse() + + if (!canUse && isClient) { return false } + if (!isClient) { + cooldown = ServerConfig.EnderTeleporter.COOLDOWN + + if (!canUse) { + android.androidEnergy.extractEnergyInnerExact(ServerConfig.EnderTeleporter.ENERGY_COST, false) + return false + } + } + val (blockPos) = trace() blockPos ?: return false - cooldown = ServerConfig.EnderTeleporter.COOLDOWN - val server = ply.server if (server != null)