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:
parent
7a0d7d668a
commit
790fdde0cb
@ -294,15 +294,24 @@ class EnderTeleporterFeature(capability: MatteryPlayerCapability) : AndroidActiv
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun activate(isClient: Boolean): Boolean {
|
override fun activate(isClient: Boolean): Boolean {
|
||||||
if (!canUse()) {
|
val canUse = canUse()
|
||||||
|
|
||||||
|
if (!canUse && isClient) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isClient) {
|
||||||
|
cooldown = ServerConfig.EnderTeleporter.COOLDOWN
|
||||||
|
|
||||||
|
if (!canUse) {
|
||||||
|
android.androidEnergy.extractEnergyInnerExact(ServerConfig.EnderTeleporter.ENERGY_COST, false)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val (blockPos) = trace()
|
val (blockPos) = trace()
|
||||||
blockPos ?: return false
|
blockPos ?: return false
|
||||||
|
|
||||||
cooldown = ServerConfig.EnderTeleporter.COOLDOWN
|
|
||||||
|
|
||||||
val server = ply.server
|
val server = ply.server
|
||||||
|
|
||||||
if (server != null)
|
if (server != null)
|
||||||
|
Loading…
Reference in New Issue
Block a user