From a383d5972c902b947aa6748c5017044992d75a25 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 17 Jan 2023 23:45:32 +0100 Subject: [PATCH] replace Abilities::creative with gamemode --- .../data/entities/entities/player/local/Abilities.kt | 3 +-- .../input/interaction/BreakInteractionHandler.kt | 3 +-- .../input/interaction/ItemPickInteractionHandler.kt | 5 +++-- .../protocol/packets/s2c/play/PlayerAbilitiesS2CP.kt | 9 ++++----- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/local/Abilities.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/local/Abilities.kt index 25269ac80..af03e5086 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/local/Abilities.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/local/Abilities.kt @@ -1,6 +1,6 @@ /* * 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. * @@ -17,7 +17,6 @@ data class Abilities( var isInvulnerable: Boolean = false, var isFlying: Boolean = false, var canFly: Boolean = false, - var creative: Boolean = false, // ToDo: This is the check if we are in creative mode, but no exactly sure... var flyingSpeed: Double = 0.05, var walkingSpeed: Double = 0.1, diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt index cdb7b393b..3482d7bb1 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt @@ -142,9 +142,8 @@ class BreakInteractionHandler( val canStartBreaking = currentTime - breakSent >= ProtocolDefinition.TICK_TIME - val canInstantBreak = connection.player.baseAbilities.creative || connection.player.gamemode == Gamemodes.CREATIVE - if (canInstantBreak) { + if (connection.player.gamemode == Gamemodes.CREATIVE) { if (!canStartBreaking) { return true } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt index fb986c3f5..f658d076d 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt @@ -1,6 +1,6 @@ /* * 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. * @@ -17,6 +17,7 @@ import de.bixilon.kutil.rate.RateLimiter import de.bixilon.minosoft.config.key.KeyActions import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes +import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.container.EquipmentSlots import de.bixilon.minosoft.data.container.ItemStackUtil import de.bixilon.minosoft.data.container.stack.ItemStack @@ -44,7 +45,7 @@ class ItemPickInteractionHandler( } fun pickItem(copyNBT: Boolean) { - if (!connection.player.baseAbilities.creative) { + if (connection.player.gamemode != Gamemodes.CREATIVE) { return } val target = context.camera.targetHandler.target ?: return diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/PlayerAbilitiesS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/PlayerAbilitiesS2CP.kt index 202aa98cc..41afba136 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/PlayerAbilitiesS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/PlayerAbilitiesS2CP.kt @@ -27,7 +27,7 @@ class PlayerAbilitiesS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { val isInvulnerable: Boolean val isFlying: Boolean val canFly: Boolean - val canInstantBuild: Boolean + val creative: Boolean val flyingSpeed: Double val walkingSpeed: Double @@ -38,9 +38,9 @@ class PlayerAbilitiesS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { canFly = flags.isBit(2) if (buffer.versionId < ProtocolVersions.V_14W03B) { // ToDo: Find out correct version isInvulnerable = flags.isBit(0) - canInstantBuild = flags.isBit(3) + creative = flags.isBit(3) } else { - canInstantBuild = flags.isBit(0) + creative = flags.isBit(0) isInvulnerable = flags.isBit(3) } flyingSpeed = buffer.readFloat().toDouble() @@ -48,7 +48,7 @@ class PlayerAbilitiesS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { } override fun log(reducedLog: Boolean) { - Log.log(LogMessageType.NETWORK_PACKETS_IN, level = LogLevels.VERBOSE) { "Player abilities (isInvulnerable=$isInvulnerable, isFlying=$isFlying, canFly=$canFly, canInstantBuild=$canInstantBuild, flyingSpeed=$flyingSpeed, walkingSpeed=$walkingSpeed)" } + Log.log(LogMessageType.NETWORK_PACKETS_IN, level = LogLevels.VERBOSE) { "Player abilities (isInvulnerable=$isInvulnerable, isFlying=$isFlying, canFly=$canFly, canInstantBuild=$creative, flyingSpeed=$flyingSpeed, walkingSpeed=$walkingSpeed)" } } override fun handle(connection: PlayConnection) { @@ -57,7 +57,6 @@ class PlayerAbilitiesS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket { abilities.isInvulnerable = isInvulnerable abilities.isFlying = isFlying abilities.canFly = canFly - abilities.creative = canInstantBuild abilities.flyingSpeed = flyingSpeed abilities.walkingSpeed = walkingSpeed