mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 11:54:59 -04:00
network: HealthS2CP: handle errors more gracefully
This commit is contained in:
parent
83a67e337a
commit
48dbfdd780
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Minosoft
|
* Minosoft
|
||||||
* Copyright (C) 2020-2022 Moritz Zwerger
|
* Copyright (C) 2020-2023 Moritz Zwerger
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
@ -27,7 +27,7 @@ import de.bixilon.minosoft.util.logging.LogMessageType
|
|||||||
|
|
||||||
@LoadPacket
|
@LoadPacket
|
||||||
class HealthS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
|
class HealthS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
|
||||||
val hp: Float = buffer.readFloat().clamp(0.0f, Float.MAX_VALUE)
|
val hp: Float = buffer.readFloat()
|
||||||
val hunger = if (buffer.versionId < ProtocolVersions.V_14W04A) {
|
val hunger = if (buffer.versionId < ProtocolVersions.V_14W04A) {
|
||||||
buffer.readUnsignedShort()
|
buffer.readUnsignedShort()
|
||||||
} else {
|
} else {
|
||||||
@ -37,9 +37,9 @@ class HealthS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
|
|||||||
|
|
||||||
override fun handle(connection: PlayConnection) {
|
override fun handle(connection: PlayConnection) {
|
||||||
connection.player.healthCondition = HealthCondition(
|
connection.player.healthCondition = HealthCondition(
|
||||||
hp = hp,
|
hp = maxOf(0.0f, hp),
|
||||||
hunger = hunger,
|
hunger = hunger.clamp(0, 20),
|
||||||
saturation = saturation,
|
saturation = saturation.clamp(0.0f, 20.0f),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -54,11 +54,6 @@ class HealthS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun check(connection: PlayConnection) {
|
|
||||||
check(hunger in 0..20)
|
|
||||||
check(saturation in 0.0..20.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun log(reducedLog: Boolean) {
|
override fun log(reducedLog: Boolean) {
|
||||||
Log.log(LogMessageType.NETWORK_PACKETS_IN, level = LogLevels.VERBOSE) { "Health set (hp=$hp, hunger=$hunger, saturation=$saturation)" }
|
Log.log(LogMessageType.NETWORK_PACKETS_IN, level = LogLevels.VERBOSE) { "Health set (hp=$hp, hunger=$hunger, saturation=$saturation)" }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user