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
This commit is contained in:
DBotThePony 2022-10-13 20:53:41 +07:00
parent 7a0d7d668a
commit 790fdde0cb
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

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