mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 09:56:37 -04:00
refactor packet registry
This unifies s2c and c2s registries and partly reverts the last rewrite (!40). It is now possible to register packets in multiple states (e.g. login and play). That will be required for 23w31a. It also makes classes resolvable in the ide or static coverage reports.
This commit is contained in:
parent
5b6fb3bf51
commit
8e7275eaa8
@ -222,7 +222,7 @@ testing {
|
||||
options {
|
||||
val options = this as TestNGOptions
|
||||
options.preserveOrder = true
|
||||
// options.excludeGroups("chunk", "input", "font", "command", "registry", "biome", "version", "fluid", "world", "raycasting", "pixlyzer", "item", "block", "physics", "light", "packet", "container", "item_stack", "signature", "private_key", "interaction", "item_digging", "chunk_renderer", "rendering")
|
||||
// options.excludeGroups("models", "mesher", "chunk", "input", "font", "command", "registry", "biome", "version", "fluid", "world", "raycasting", "pixlyzer", "item", "block", "physics", "light", "packet", "container", "item_stack", "signature", "private_key", "interaction", "item_digging", "chunk_renderer", "rendering")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,8 +17,7 @@ import de.bixilon.kutil.latch.SimpleLatch
|
||||
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
||||
import de.bixilon.minosoft.data.registries.fallback.FallbackRegistries
|
||||
import de.bixilon.minosoft.data.registries.fallback.tags.FallbackTags
|
||||
import de.bixilon.minosoft.protocol.packets.factory.PacketTypeRegistry
|
||||
import de.bixilon.minosoft.protocol.versions.Versions
|
||||
import de.bixilon.minosoft.protocol.versions.VersionLoader
|
||||
import de.bixilon.minosoft.test.IT
|
||||
import de.bixilon.minosoft.test.ITUtil
|
||||
import de.bixilon.minosoft.util.KUtil
|
||||
@ -37,7 +36,6 @@ internal object MinosoftSIT {
|
||||
disableGC()
|
||||
Log.log(LogMessageType.OTHER, LogLevels.INFO) { "Setting up integration tests...." }
|
||||
initAssetsManager()
|
||||
setupPacketRegistry()
|
||||
loadVersionsJson()
|
||||
loadAssetsProperties()
|
||||
loadDefaultRegistries()
|
||||
@ -62,12 +60,8 @@ internal object MinosoftSIT {
|
||||
Minosoft.MINOSOFT_ASSETS_MANAGER.load()
|
||||
}
|
||||
|
||||
fun setupPacketRegistry() {
|
||||
PacketTypeRegistry.init(null)
|
||||
}
|
||||
|
||||
fun loadVersionsJson() {
|
||||
Versions.load(SimpleLatch(0))
|
||||
VersionLoader.load(SimpleLatch(0))
|
||||
}
|
||||
|
||||
fun loadAssetsProperties() {
|
||||
|
@ -29,7 +29,7 @@ import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.c
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityAttackC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["interaction"])
|
||||
|
@ -21,9 +21,9 @@ import de.bixilon.minosoft.input.interaction.breaking.BreakHandlerTest.Companion
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityAttackC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["interaction"])
|
||||
|
@ -19,8 +19,8 @@ import de.bixilon.minosoft.input.interaction.KeyHandlerUtil.awaitTicks
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import org.testng.SkipException
|
||||
import org.testng.annotations.Test
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
@ -49,8 +49,8 @@ import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.c
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.test.ITUtil.todo
|
||||
import org.testng.Assert.assertEquals
|
||||
import org.testng.Assert.assertNull
|
||||
|
@ -35,8 +35,8 @@ import de.bixilon.minosoft.physics.ItemUsing
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.block.BlockInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.test.ITUtil.todo
|
||||
import org.testng.Assert.assertEquals
|
||||
import org.testng.Assert.assertNull
|
||||
|
@ -26,7 +26,7 @@ import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.asser
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityEmptyInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractPositionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import org.testng.Assert.assertEquals
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -28,11 +28,11 @@ import de.bixilon.minosoft.input.interaction.InteractionTestUtil.unsafeRelease
|
||||
import de.bixilon.minosoft.physics.ItemUsing
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.HotbarSlotC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.HotbarSlotC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.test.ITUtil.todo
|
||||
import org.testng.Assert.*
|
||||
import org.testng.annotations.Test
|
||||
|
@ -35,8 +35,8 @@ import de.bixilon.minosoft.input.interaction.InteractionTestUtil.unsafeRelease
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.block.BlockInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import org.testng.SkipException
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -35,8 +35,8 @@ import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.asser
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertOnlyPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.block.BlockInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["interaction"], dependsOnGroups = ["item", "block"])
|
||||
|
@ -37,8 +37,8 @@ import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.asser
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityEmptyInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractPositionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -37,9 +37,9 @@ import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.asser
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertOnlyPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.block.BlockInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import org.testng.Assert.assertEquals
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -21,8 +21,8 @@ import de.bixilon.minosoft.input.interaction.InteractionTestUtil
|
||||
import de.bixilon.minosoft.input.interaction.InteractionTestUtil.unsafePress
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertOnlyPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["interaction"], dependsOnGroups = ["item", "block"])
|
||||
|
@ -22,10 +22,10 @@ import de.bixilon.minosoft.input.interaction.KeyHandlerUtil.awaitTicks
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertNoPacket
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PacketTestUtil.assertPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["interaction"], dependsOnGroups = ["item"])
|
||||
|
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* 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 distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.registry
|
||||
|
||||
import de.bixilon.kutil.exception.Broken
|
||||
import de.bixilon.minosoft.protocol.network.connection.Connection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.InByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import org.testng.Assert.*
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["packet"])
|
||||
class PacketRegistryTest {
|
||||
|
||||
|
||||
fun `simple packet s2c mapping`() {
|
||||
val registry = PacketRegistry()
|
||||
|
||||
registry.register("dummy", factory = ::DummyS2CPacket)
|
||||
|
||||
val type = registry["dummy"]
|
||||
assertNotNull(type)
|
||||
assertEquals(type!!.name, "dummy")
|
||||
}
|
||||
|
||||
fun `simple packet c2s mapping`() {
|
||||
val registry = PacketRegistry()
|
||||
|
||||
registry.register("dummy", DummyC2SPacket::class)
|
||||
|
||||
|
||||
val type = registry[DummyC2SPacket::class]
|
||||
assertNotNull(type)
|
||||
assertEquals(type.name, "dummy")
|
||||
}
|
||||
|
||||
fun `register multiple same named c2s packets`() {
|
||||
val registry = PacketRegistry()
|
||||
|
||||
registry.register("dummy", DummyC2SPacket::class)
|
||||
registry.register("dummy", Dummy2C2SPacket::class)
|
||||
|
||||
|
||||
val type = registry[DummyC2SPacket::class]
|
||||
val type2 = registry[Dummy2C2SPacket::class]
|
||||
assertSame(type, type2)
|
||||
}
|
||||
|
||||
fun `register same packet with different names`() {
|
||||
val registry = PacketRegistry()
|
||||
|
||||
registry.register("1", DummyC2SPacket::class)
|
||||
registry.register("2", DummyC2SPacket::class)
|
||||
|
||||
assertSame(registry["1"], registry["2"])
|
||||
assertEquals(registry[DummyC2SPacket::class].name, "1")
|
||||
}
|
||||
|
||||
|
||||
private class DummyS2CPacket(buffer: InByteBuffer) : S2CPacket {
|
||||
|
||||
override fun handle(connection: Connection) = Broken()
|
||||
override fun log(reducedLog: Boolean) = Broken()
|
||||
}
|
||||
|
||||
private open class DummyC2SPacket : PlayC2SPacket {
|
||||
|
||||
override fun write(buffer: PlayOutByteBuffer) = Unit
|
||||
override fun log(reducedLog: Boolean) = Broken()
|
||||
}
|
||||
|
||||
private open class Dummy2C2SPacket : DummyC2SPacket()
|
||||
}
|
@ -18,6 +18,7 @@ import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.minosoft.commands.nodes.CommandNode
|
||||
import de.bixilon.minosoft.commands.nodes.NamedNode
|
||||
import de.bixilon.minosoft.commands.nodes.RootNode
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.chat.CommandsS2CP
|
||||
import org.testng.Assert.assertNotNull
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -23,6 +23,7 @@ import de.bixilon.minosoft.data.registries.blocks.types.stone.RockBlock
|
||||
import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.block.chunk.ChunkS2CP
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayInByteBuffer
|
||||
import org.testng.Assert.*
|
||||
import org.testng.annotations.Test
|
||||
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* 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 distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
|
||||
package de.bixilon.minosoft.protocol.protocol
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.handshake.HandshakeC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.registry.DefaultPackets
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.login.SuccessS2CP
|
||||
import org.testng.Assert.assertEquals
|
||||
import org.testng.annotations.Test
|
||||
|
||||
@Test(groups = ["packet"])
|
||||
class DefaultPacketMappingTest {
|
||||
|
||||
fun `verify handshake c2s id is 0x00`() {
|
||||
val type = DefaultPackets[PacketDirections.CLIENT_TO_SERVER][ProtocolStates.HANDSHAKE]!![HandshakeC2SP::class]
|
||||
val id = DefaultPacketMapping.C2S_PACKET_MAPPING[ProtocolStates.HANDSHAKE, type]
|
||||
assertEquals(id, 0x00)
|
||||
}
|
||||
|
||||
fun `verify login success s2c id is 0x02`() {
|
||||
val type = DefaultPackets[PacketDirections.SERVER_TO_CLIENT][ProtocolStates.LOGIN]!![SuccessS2CP::class]
|
||||
val id = DefaultPacketMapping.S2C_PACKET_MAPPING[ProtocolStates.LOGIN, type]
|
||||
assertEquals(id, 0x02)
|
||||
}
|
||||
}
|
@ -14,6 +14,7 @@
|
||||
package de.bixilon.minosoft
|
||||
|
||||
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
||||
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool.async
|
||||
import de.bixilon.kutil.concurrent.pool.ThreadPool
|
||||
import de.bixilon.kutil.concurrent.worker.task.TaskWorker
|
||||
import de.bixilon.kutil.concurrent.worker.task.WorkerTask
|
||||
@ -50,9 +51,8 @@ import de.bixilon.minosoft.modding.event.master.GlobalEventMaster
|
||||
import de.bixilon.minosoft.modding.loader.LoadingPhases
|
||||
import de.bixilon.minosoft.modding.loader.ModLoader
|
||||
import de.bixilon.minosoft.properties.MinosoftPropertiesLoader
|
||||
import de.bixilon.minosoft.protocol.packets.factory.PacketTypeRegistry
|
||||
import de.bixilon.minosoft.protocol.protocol.LANServerListener
|
||||
import de.bixilon.minosoft.protocol.versions.Versions
|
||||
import de.bixilon.minosoft.protocol.versions.VersionLoader
|
||||
import de.bixilon.minosoft.terminal.AutoConnect
|
||||
import de.bixilon.minosoft.terminal.CommandLineArguments
|
||||
import de.bixilon.minosoft.terminal.RunConfiguration
|
||||
@ -96,8 +96,7 @@ object Minosoft {
|
||||
|
||||
taskWorker += WorkerTask(identifier = BootTasks.CLI, priority = ThreadPool.HIGH, executor = CLI::startThread)
|
||||
|
||||
taskWorker += WorkerTask(identifier = BootTasks.PACKETS, priority = ThreadPool.HIGH, executor = PacketTypeRegistry::init)
|
||||
taskWorker += WorkerTask(identifier = BootTasks.VERSIONS, priority = ThreadPool.HIGH, dependencies = arrayOf(BootTasks.PACKETS), executor = Versions::load)
|
||||
taskWorker += WorkerTask(identifier = BootTasks.VERSIONS, priority = ThreadPool.HIGH, executor = VersionLoader::load)
|
||||
taskWorker += WorkerTask(identifier = BootTasks.PROFILES, priority = ThreadPool.HIGH, dependencies = arrayOf(BootTasks.VERSIONS), executor = GlobalProfileManager::initialize)
|
||||
taskWorker += WorkerTask(identifier = BootTasks.FILE_WATCHER, priority = ThreadPool.HIGH, optional = true, executor = this::startFileWatcherService)
|
||||
|
||||
@ -109,8 +108,8 @@ object Minosoft {
|
||||
taskWorker += WorkerTask(identifier = BootTasks.LAN_SERVERS, dependencies = arrayOf(BootTasks.PROFILES), executor = LANServerListener::listen)
|
||||
|
||||
if (!RunConfiguration.DISABLE_EROS) {
|
||||
async(ThreadPool.HIGHER) { javafx.scene.text.Font.getDefault() }
|
||||
taskWorker += WorkerTask(identifier = BootTasks.JAVAFX, executor = { JavaFXInitializer.start() })
|
||||
DefaultThreadPool += { javafx.scene.text.Font::class.java.forceInit() }
|
||||
|
||||
taskWorker += WorkerTask(identifier = BootTasks.STARTUP_PROGRESS, executor = { StartingDialog(BOOT_LATCH).show() }, dependencies = arrayOf(BootTasks.LANGUAGE_FILES, BootTasks.JAVAFX))
|
||||
|
||||
|
@ -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,8 @@ import de.bixilon.kutil.reflection.ReflectionUtil.forceInit
|
||||
import de.bixilon.minosoft.assets.InvalidAssetException
|
||||
import de.bixilon.minosoft.assets.minecraft.JarAssetsManager
|
||||
import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfileManager
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketMapping
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketDirections
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
import de.bixilon.minosoft.protocol.versions.VersionTypes
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -36,7 +38,8 @@ object AssetsPropertiesGenerator {
|
||||
profile.verify = false
|
||||
val (versionId, clientJarHash) = args
|
||||
|
||||
val assetsManager = JarAssetsManager("829c3804401b0727f70f73d4415e162400cbe57b", clientJarHash, profile, Version(versionId, -1, -1, VersionTypes.APRIL_FOOL, emptyMap(), emptyMap()))
|
||||
val version = Version(versionId, -1, -1, VersionTypes.APRIL_FOOL, PacketMapping(PacketDirections.SERVER_TO_CLIENT), PacketMapping(PacketDirections.CLIENT_TO_SERVER))
|
||||
val assetsManager = JarAssetsManager("829c3804401b0727f70f73d4415e162400cbe57b", clientJarHash, profile, version)
|
||||
try {
|
||||
assetsManager.load()
|
||||
} catch (exception: InvalidAssetException) {
|
||||
|
@ -21,9 +21,13 @@ import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.physics.entities.living.player.local.LocalPlayerPhysics
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.EntityActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.*
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.vehicle.MoveVehicleC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.vehicle.VehicleInputC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.GroundChangeC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.RotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.vehicle.MoveVehicleC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.vehicle.VehicleInputC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.ToggleFlyC2SP
|
||||
|
||||
class MovementPacketSender(
|
||||
private val physics: LocalPlayerPhysics,
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.registries.misc.event.world.handler.win
|
||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.misc.event.game.GameEventHandler
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.ClientActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.ClientActionC2SP
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
|
||||
object WinGameHandler : GameEventHandler {
|
||||
|
@ -44,11 +44,11 @@ import de.bixilon.minosoft.gui.eros.modding.invoker.JavaFXEventListener
|
||||
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
|
||||
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.ctext
|
||||
import de.bixilon.minosoft.modding.event.events.KickEvent
|
||||
import de.bixilon.minosoft.modding.event.events.LoginKickEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates.Companion.disconnected
|
||||
import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.util.DNSUtil
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import de.bixilon.minosoft.util.delegate.JavaFXDelegate.observeFX
|
||||
@ -163,20 +163,17 @@ class ServerListController : EmbeddedJavaFXController<Pane>(), Refreshable {
|
||||
}
|
||||
|
||||
connection.events.register(JavaFXEventListener.of<KickEvent> { event ->
|
||||
KickDialog(
|
||||
title = "minosoft:connection.kick.title".toResourceLocation(),
|
||||
header = "minosoft:connection.kick.header".toResourceLocation(),
|
||||
description = TranslatableComponents.CONNECTION_KICK_DESCRIPTION(server, account),
|
||||
reason = event.reason,
|
||||
).show()
|
||||
})
|
||||
connection.events.register(JavaFXEventListener.of<LoginKickEvent> { event ->
|
||||
KickDialog(
|
||||
(if (connection.network.state == ProtocolStates.LOGIN) KickDialog(
|
||||
title = "minosoft:connection.login_kick.title".toResourceLocation(),
|
||||
header = "minosoft:connection.login_kick.header".toResourceLocation(),
|
||||
description = TranslatableComponents.CONNECTION_LOGIN_KICK_DESCRIPTION(server, account),
|
||||
reason = event.reason,
|
||||
).show()
|
||||
) else KickDialog(
|
||||
title = "minosoft:connection.kick.title".toResourceLocation(),
|
||||
header = "minosoft:connection.kick.header".toResourceLocation(),
|
||||
description = TranslatableComponents.CONNECTION_KICK_DESCRIPTION(server, account),
|
||||
reason = event.reason,
|
||||
)).show()
|
||||
})
|
||||
val latch = CallbackLatch(1)
|
||||
val assetsDialog = VerifyAssetsDialog(latch = latch).apply { show() }
|
||||
|
@ -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.
|
||||
*
|
||||
@ -23,7 +23,7 @@ import de.bixilon.minosoft.gui.rendering.gui.elements.text.TextElement
|
||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||
import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.ClientActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.ClientActionC2SP
|
||||
|
||||
@Deprecated("ToDo")
|
||||
class CreditsScreen(
|
||||
|
@ -14,7 +14,7 @@
|
||||
package de.bixilon.minosoft.input.interaction
|
||||
|
||||
import de.bixilon.kutil.rate.RateLimiter
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
|
||||
class DropHandler(
|
||||
private val interactions: InteractionManager,
|
||||
|
@ -17,8 +17,8 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf
|
||||
import de.bixilon.kutil.rate.RateLimiter
|
||||
import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||
import de.bixilon.minosoft.data.container.equipment.EquipmentSlots
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.HotbarSlotC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.HotbarSlotC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
|
||||
class HotbarHandler(
|
||||
val interactions: InteractionManager,
|
||||
|
@ -24,7 +24,7 @@ import de.bixilon.minosoft.data.registries.item.items.Item
|
||||
import de.bixilon.minosoft.input.interaction.InteractionUtil.canInteract
|
||||
import de.bixilon.minosoft.input.interaction.breaking.BreakHandler
|
||||
import de.bixilon.minosoft.input.interaction.use.UseHandler
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.SwingArmC2SP
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
|
||||
class InteractionManager(val camera: ConnectionCamera) : Tickable {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.input.interaction.breaking.creative
|
||||
import de.bixilon.minosoft.camera.target.targets.BlockTarget
|
||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.input.interaction.breaking.BreakHandler
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
|
||||
class CreativeBreaker(
|
||||
private val breaking: BreakHandler,
|
||||
|
@ -25,7 +25,7 @@ import de.bixilon.minosoft.data.registries.fluid.fluids.WaterFluid
|
||||
import de.bixilon.minosoft.data.registries.item.items.tool.MiningTool
|
||||
import de.bixilon.minosoft.data.registries.item.items.tool.properties.requirement.ToolRequirement
|
||||
import de.bixilon.minosoft.input.interaction.breaking.BreakHandler
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
|
||||
class SurvivalDigger(
|
||||
private val breaking: BreakHandler,
|
||||
|
@ -18,7 +18,7 @@ import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.data.registries.item.handler.item.LongItemUseHandler
|
||||
import de.bixilon.minosoft.data.registries.item.handler.item.LongUseResults
|
||||
import de.bixilon.minosoft.physics.ItemUsing
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.PlayerActionC2SP
|
||||
|
||||
class LongUseHandler(
|
||||
private val interactionHandler: UseHandler,
|
||||
|
@ -19,8 +19,8 @@ import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.input.interaction.InteractionManager
|
||||
import de.bixilon.minosoft.input.interaction.KeyHandler
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.block.BlockInteractC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.item.UseItemC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.move.PositionRotationC2SP
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_15W31A
|
||||
|
||||
class UseHandler(
|
||||
|
@ -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.
|
||||
*
|
||||
@ -16,7 +16,6 @@ package de.bixilon.minosoft.main
|
||||
enum class BootTasks {
|
||||
PROFILES,
|
||||
LANGUAGE_FILES,
|
||||
PACKETS,
|
||||
VERSIONS,
|
||||
ASSETS_PROPERTIES,
|
||||
DEFAULT_REGISTRIES,
|
||||
|
@ -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.
|
||||
*
|
||||
@ -15,7 +15,6 @@ package de.bixilon.minosoft.modding.event.events
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.entity.EntityPlayerS2CP
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.entity.spawn.*
|
||||
|
||||
@Deprecated("Observables")
|
||||
|
@ -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.
|
||||
*
|
||||
@ -15,7 +15,7 @@ package de.bixilon.minosoft.modding.event.events
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.CameraS2CP
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.entity.player.CameraS2CP
|
||||
|
||||
/**
|
||||
* Fired when the player should spectate an entity
|
||||
|
@ -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,7 @@ import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.ExplosionS2CP
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.world.ExplosionS2CP
|
||||
|
||||
class ExplosionEvent(
|
||||
connection: PlayConnection,
|
||||
|
@ -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.
|
||||
*
|
||||
@ -15,12 +15,8 @@ package de.bixilon.minosoft.modding.event.events
|
||||
import de.bixilon.minosoft.data.text.ChatComponent
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.KickS2CP
|
||||
|
||||
open class KickEvent(
|
||||
connection: PlayConnection,
|
||||
val reason: ChatComponent,
|
||||
) : PlayConnectionEvent(connection) {
|
||||
|
||||
constructor(connection: PlayConnection, packet: KickS2CP) : this(connection, packet.reason)
|
||||
}
|
||||
) : PlayConnectionEvent(connection)
|
||||
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Minosoft
|
||||
* 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 distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.modding.event.events
|
||||
|
||||
import de.bixilon.minosoft.data.text.ChatComponent
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.login.KickS2CP
|
||||
|
||||
@Deprecated("check connection state")
|
||||
class LoginKickEvent(
|
||||
connection: PlayConnection,
|
||||
val reason: ChatComponent,
|
||||
) : PlayConnectionEvent(connection) {
|
||||
|
||||
constructor(connection: PlayConnection, packet: KickS2CP) : this(connection, packet.reason)
|
||||
}
|
@ -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,7 @@ import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.ParticleS2CP
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.world.ParticleS2CP
|
||||
|
||||
class ParticleSpawnEvent(
|
||||
connection: PlayConnection,
|
||||
|
@ -30,10 +30,10 @@ import de.bixilon.minosoft.modding.event.events.chat.ChatMessageSendEvent
|
||||
import de.bixilon.minosoft.modding.event.events.container.ContainerCloseEvent
|
||||
import de.bixilon.minosoft.protocol.ProtocolUtil.encodeNetwork
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.ClientActionC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.chat.ChatMessageC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.chat.CommandC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.chat.SignedChatMessageC2SP
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.play.entity.player.ClientActionC2SP
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
@ -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.
|
||||
*
|
||||
@ -13,10 +13,10 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.exceptions
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.factory.S2CPacketType
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketType
|
||||
|
||||
class PacketBufferUnderflowException(
|
||||
val type: S2CPacketType,
|
||||
val type: PacketType,
|
||||
val size: Int,
|
||||
val available: Int,
|
||||
) : NetworkException() {
|
||||
|
@ -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.
|
||||
*
|
||||
@ -13,14 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.exceptions
|
||||
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
import de.bixilon.minosoft.protocol.packets.factory.C2SPacketType
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketType
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
|
||||
class PacketNotAvailableException(
|
||||
val type: C2SPacketType,
|
||||
val type: PacketType,
|
||||
val state: ProtocolStates,
|
||||
val version: Version?,
|
||||
) : NetworkException() {
|
||||
override val message: String = "type=$type, state=$state, version=$version"
|
||||
override val message: String = "name=${type.name}, state=$state, version=$version"
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
@ -13,11 +13,10 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.exceptions
|
||||
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class WrongProtocolStateException(
|
||||
val required: ProtocolStates,
|
||||
val current: ProtocolStates,
|
||||
class PacketNotFoundException(
|
||||
val clazz: KClass<*>,
|
||||
) : NetworkException() {
|
||||
override val message: String = "required=$required, current=$current"
|
||||
override val message: String = "No packet is registered with class $clazz"
|
||||
}
|
@ -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.
|
||||
*
|
||||
@ -13,15 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.implementation
|
||||
|
||||
import de.bixilon.kutil.primitive.IntUtil.toHex
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.NetworkException
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
|
||||
class S2CPacketNotImplementedException(
|
||||
val packetId: Int,
|
||||
class PacketNotImplementedException(
|
||||
val name: String,
|
||||
val state: ProtocolStates,
|
||||
val version: Version?,
|
||||
) : NetworkException() {
|
||||
override val message: String = "packetId=0x${packetId.toHex(0)}, state=$state, version=$version"
|
||||
override val message: String = "name=$name, state=$state, version=$version"
|
||||
}
|
@ -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.
|
||||
*
|
||||
@ -15,7 +15,7 @@ package de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.unk
|
||||
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.realName
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.NetworkException
|
||||
import de.bixilon.minosoft.protocol.packets.Packet
|
||||
import de.bixilon.minosoft.protocol.packets.types.Packet
|
||||
|
||||
class UnknownPacketException(
|
||||
val clazz: Class<out Packet>,
|
||||
|
@ -26,7 +26,7 @@ import de.bixilon.minosoft.protocol.network.network.client.netty.NettyClient
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.NetworkException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.PacketHandleException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.WrongConnectionException
|
||||
import de.bixilon.minosoft.protocol.packets.factory.S2CPacketType
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketType
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.StatusS2CPacket
|
||||
@ -48,18 +48,23 @@ class ClientPacketHandler(
|
||||
}
|
||||
}
|
||||
|
||||
private fun tryHandle(context: ChannelHandlerContext, type: S2CPacketType, packet: S2CPacket) {
|
||||
private fun handleError(context: ChannelHandlerContext, type: PacketType, error: Throwable) {
|
||||
if (type.extra != null) {
|
||||
type.extra.onError(error, connection)
|
||||
}
|
||||
context.fireExceptionCaught(error)
|
||||
}
|
||||
|
||||
private fun tryHandle(context: ChannelHandlerContext, type: PacketType, packet: S2CPacket) {
|
||||
if (!client.connected) {
|
||||
return
|
||||
}
|
||||
try {
|
||||
handle(packet)
|
||||
} catch (exception: NetworkException) {
|
||||
type.onError(exception, connection)
|
||||
context.fireExceptionCaught(exception)
|
||||
handleError(context, type, exception)
|
||||
} catch (error: Throwable) {
|
||||
type.onError(error, connection)
|
||||
context.fireExceptionCaught(PacketHandleException(error))
|
||||
handleError(context, type, PacketHandleException(error))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
@ -13,10 +13,10 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.pipeline
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.factory.S2CPacketType
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketType
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket
|
||||
|
||||
data class QueuedS2CP<T : S2CPacket>(
|
||||
val type: S2CPacketType,
|
||||
val type: PacketType,
|
||||
val packet: T,
|
||||
)
|
||||
|
@ -14,19 +14,15 @@
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.pipeline.encoding
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.NettyClient
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.NetworkException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.PacketBufferUnderflowException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.PacketReadException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.ciritical.UnknownPacketIdException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.implementation.S2CPacketNotImplementedException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.implementation.PacketNotImplementedException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.pipeline.QueuedS2CP
|
||||
import de.bixilon.minosoft.protocol.packets.factory.S2CPacketType
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.Protocol
|
||||
import de.bixilon.minosoft.protocol.protocol.DefaultPacketMapping
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.InByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayInByteBuffer
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
import io.netty.channel.ChannelHandlerContext
|
||||
import io.netty.handler.codec.MessageToMessageDecoder
|
||||
@ -44,43 +40,31 @@ class PacketDecoder(
|
||||
|
||||
val state = client.state
|
||||
|
||||
val packetType = version?.s2cPackets?.get(state)?.getKey(packetId) ?: Protocol.S2C_PACKET_MAPPING[state]?.getKey(packetId) ?: throw UnknownPacketIdException(packetId, state, version)
|
||||
|
||||
if (packetType.clazz == S2CPacket::class.java) {
|
||||
throw S2CPacketNotImplementedException(packetId, state, version)
|
||||
}
|
||||
if (packetType.canSkip(client.connection)) {
|
||||
val type = version?.s2c?.get(state, packetId) ?: DefaultPacketMapping.S2C_PACKET_MAPPING[state, packetId] ?: throw UnknownPacketIdException(packetId, state, version)
|
||||
|
||||
if (type.extra != null && type.extra.skip(client.connection)) {
|
||||
return
|
||||
}
|
||||
|
||||
val packet = try {
|
||||
readPacket(packetType, data)
|
||||
type.create(data, client.connection).unsafeCast<S2CPacket>()
|
||||
} catch (error: PacketNotImplementedException) {
|
||||
error.printStackTrace()
|
||||
return
|
||||
} catch (exception: NetworkException) {
|
||||
packetType.onError(exception, client.connection)
|
||||
type.extra?.onError(exception, client.connection)
|
||||
throw exception
|
||||
} catch (error: Throwable) {
|
||||
var realError = error
|
||||
if (error is InvocationTargetException) {
|
||||
error.cause?.let { realError = it }
|
||||
}
|
||||
packetType.onError(realError, client.connection)
|
||||
type.extra?.onError(realError, client.connection)
|
||||
throw PacketReadException(realError)
|
||||
}
|
||||
|
||||
out += QueuedS2CP(packetType, packet)
|
||||
}
|
||||
|
||||
private fun readPacket(type: S2CPacketType, data: ByteArray): S2CPacket {
|
||||
val buffer: InByteBuffer = if (client.connection is PlayConnection) {
|
||||
PlayInByteBuffer(data, client.connection)
|
||||
} else {
|
||||
InByteBuffer(data)
|
||||
}
|
||||
val packet = type.factory?.createPacket(buffer) ?: throw IllegalStateException("Packet factory is null?")
|
||||
if (buffer.pointer < buffer.size) {
|
||||
throw PacketBufferUnderflowException(type, buffer.size, buffer.size - buffer.pointer)
|
||||
}
|
||||
return packet.unsafeCast()
|
||||
out += QueuedS2CP(type, packet)
|
||||
}
|
||||
|
||||
|
||||
|
@ -13,17 +13,18 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.network.client.netty.pipeline.encoding
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.nullCast
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.NettyClient
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.PacketNotAvailableException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.WrongConnectionException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.WrongProtocolStateException
|
||||
import de.bixilon.minosoft.protocol.network.network.client.netty.exceptions.unknown.UnknownPacketException
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.C2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.PacketTypeRegistry
|
||||
import de.bixilon.minosoft.protocol.protocol.Protocol
|
||||
import de.bixilon.minosoft.protocol.packets.registry.DefaultPackets
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketMapping
|
||||
import de.bixilon.minosoft.protocol.packets.registry.PacketType
|
||||
import de.bixilon.minosoft.protocol.protocol.DefaultPacketMapping
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.OutByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.protocol.versions.Version
|
||||
@ -35,27 +36,54 @@ class PacketEncoder(
|
||||
) : MessageToMessageEncoder<C2SPacket>() {
|
||||
private val version: Version? = client.connection.version
|
||||
|
||||
private fun PlayC2SPacket.write(): OutByteBuffer {
|
||||
if (client.connection !is PlayConnection) throw WrongConnectionException(PlayConnection::class.java, client.connection::class.java)
|
||||
val buffer = PlayOutByteBuffer(client.connection)
|
||||
write(buffer)
|
||||
|
||||
return buffer
|
||||
}
|
||||
|
||||
private fun C2SPacket.write(): OutByteBuffer {
|
||||
if (this is PlayC2SPacket) {
|
||||
return this.write()
|
||||
}
|
||||
val buffer = OutByteBuffer()
|
||||
write(buffer)
|
||||
|
||||
return buffer
|
||||
}
|
||||
|
||||
@JvmName("getVersionPacketId")
|
||||
private fun Version?.getPacketId(state: ProtocolStates, type: PacketType): Int {
|
||||
if (this == null) return PacketMapping.INVALID_ID
|
||||
return c2s[state, type]
|
||||
}
|
||||
|
||||
private fun getPacketId(version: Version?, state: ProtocolStates, type: PacketType): Int {
|
||||
var id = version.getPacketId(state, type)
|
||||
if (id != PacketMapping.INVALID_ID) {
|
||||
return id
|
||||
}
|
||||
|
||||
id = DefaultPacketMapping.C2S_PACKET_MAPPING[state, type]
|
||||
if (id != PacketMapping.INVALID_ID) {
|
||||
return id
|
||||
}
|
||||
|
||||
throw PacketNotAvailableException(type, state, version)
|
||||
}
|
||||
|
||||
override fun encode(context: ChannelHandlerContext, packet: C2SPacket, out: MutableList<Any>) {
|
||||
val state = client.state
|
||||
val packetData: OutByteBuffer
|
||||
when (packet) {
|
||||
is PlayC2SPacket -> {
|
||||
packetData = PlayOutByteBuffer(client.connection.nullCast() ?: throw WrongConnectionException(PlayConnection::class.java, client.connection::class.java))
|
||||
packet.write(packetData)
|
||||
}
|
||||
else -> {
|
||||
packetData = OutByteBuffer()
|
||||
packet.write(packetData)
|
||||
}
|
||||
}
|
||||
val packetType = PacketTypeRegistry.getC2S(packet::class.java) ?: throw UnknownPacketException(packet::class.java)
|
||||
if (packetType.state != state) {
|
||||
throw WrongProtocolStateException(packetType.state, state)
|
||||
}
|
||||
val packetId = version?.c2sPackets?.get(state)?.get(packetType) ?: Protocol.C2S_PACKET_MAPPING[state]?.get(packetType) ?: throw PacketNotAvailableException(packetType, state, version)
|
||||
|
||||
val type = DefaultPackets.C2S[state]?.get(packet::class) ?: throw UnknownPacketException(packet::class.java)
|
||||
val id = getPacketId(version, state, type)
|
||||
|
||||
val packetData = packet.write()
|
||||
|
||||
val data = OutByteBuffer()
|
||||
data.writeVarInt(packetId)
|
||||
data.writeVarInt(id)
|
||||
data.writeBareByteArray(packetData.toArray())
|
||||
|
||||
out += data.toArray()
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.Packet
|
||||
import de.bixilon.minosoft.protocol.packets.types.Packet
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.OutByteBuffer
|
||||
|
||||
/**
|
||||
|
@ -14,15 +14,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.handshake
|
||||
|
||||
import de.bixilon.minosoft.protocol.address.ServerAddress
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.C2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.OutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(state = ProtocolStates.HANDSHAKE)
|
||||
class HandshakeC2SP(
|
||||
val address: ServerAddress,
|
||||
val action: Actions = Actions.STATUS,
|
||||
|
@ -13,14 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.login
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(state = ProtocolStates.LOGIN)
|
||||
class ChannelC2SP(
|
||||
val messageId: Int,
|
||||
val data: ByteArray?,
|
||||
|
@ -15,8 +15,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.login
|
||||
import de.bixilon.kutil.base64.Base64Util.toBase64
|
||||
import de.bixilon.kutil.cast.CastUtil.nullCast
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.encryption.EncryptionSignatureData
|
||||
@ -24,7 +22,6 @@ import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(state = ProtocolStates.LOGIN)
|
||||
class EncryptionC2SP private constructor(
|
||||
val secret: ByteArray,
|
||||
val nonce: Any,
|
||||
|
@ -15,8 +15,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.login
|
||||
import de.bixilon.minosoft.data.entities.entities.player.local.LocalPlayerEntity
|
||||
import de.bixilon.minosoft.protocol.PlayerPublicKey
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolStates
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -24,7 +22,6 @@ import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import java.util.*
|
||||
|
||||
@LoadPacket(state = ProtocolStates.LOGIN)
|
||||
class StartC2SP(
|
||||
val username: String,
|
||||
val sessionId: UUID,
|
||||
|
@ -14,7 +14,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.OutByteBuffer
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
@ -22,7 +21,6 @@ import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class ChannelC2SP(
|
||||
val channel: ResourceLocation,
|
||||
val data: ByteArray,
|
||||
|
@ -13,14 +13,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class HeartbeatC2SP(
|
||||
val id: Long,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -14,13 +14,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class PongC2SP(val payload: Int) : PlayC2SPacket {
|
||||
|
||||
override fun write(buffer: PlayOutByteBuffer) {
|
||||
|
@ -13,14 +13,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class ResourcepackC2SP(
|
||||
val hash: String,
|
||||
val status: ResourcePackStates,
|
||||
|
@ -14,14 +14,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.protocol.PlayerPublicKey
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import java.util.*
|
||||
|
||||
@LoadPacket
|
||||
class SessionDataC2SP(
|
||||
val sessionId: UUID,
|
||||
val publicKey: PlayerPublicKey,
|
||||
|
@ -18,14 +18,12 @@ import de.bixilon.minosoft.data.entities.entities.player.Arms
|
||||
import de.bixilon.minosoft.data.entities.entities.player.SkinParts
|
||||
import de.bixilon.minosoft.data.world.difficulty.Difficulties
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class SettingsC2SP(
|
||||
val locale: String,
|
||||
var chatColors: Boolean,
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class TradeC2SP(
|
||||
val id: Int,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -13,12 +13,10 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.advancement.tab
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(parent = true)
|
||||
class AdvancementCloseTabC2SP : AdvancementTabC2SP(Action.CLOSE_TAB) {
|
||||
|
||||
override fun log(reducedLog: Boolean) {
|
||||
|
@ -13,13 +13,11 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.advancement.tab
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(parent = true)
|
||||
class AdvancementOpenTabC2SP(
|
||||
val tabName: String,
|
||||
) : AdvancementTabC2SP(Action.OPEN_TAB) {
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class AnvilItemNameC2SP(
|
||||
val name: String,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -15,14 +15,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
import de.bixilon.minosoft.data.registries.effects.StatusEffectType
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class BeaconEffectC2SP(
|
||||
val primaryEffect: Int?,
|
||||
val secondaryEffect: Int?,
|
||||
|
@ -18,7 +18,6 @@ import de.bixilon.minosoft.data.container.stack.ItemStack
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_15W31A
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
@ -26,7 +25,6 @@ import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
data class BlockInteractC2SP(
|
||||
val position: Vec3i?,
|
||||
val direction: Directions?,
|
||||
|
@ -15,13 +15,11 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class BlockNbtC2SP(
|
||||
val transactionId: Int,
|
||||
val blockPosition: Vec3i,
|
||||
|
@ -16,13 +16,11 @@ import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.kutil.enums.EnumUtil
|
||||
import de.bixilon.kutil.enums.ValuesEnum
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class CommandBlockC2SP(
|
||||
val position: Vec3i,
|
||||
val command: String,
|
||||
|
@ -14,14 +14,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class GenerateStructureC2SP(
|
||||
val position: Vec3i,
|
||||
val levels: Int,
|
||||
|
@ -14,14 +14,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class JigsawBlockC2SP(
|
||||
val position: Vec3i,
|
||||
val targetPool: String,
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.block
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class MinecartCommandBlockC2SP(
|
||||
val entityId: Int,
|
||||
val command: String,
|
||||
|
@ -17,14 +17,12 @@ import de.bixilon.minosoft.data.entities.block.sign.SignBlockEntity
|
||||
import de.bixilon.minosoft.data.entities.block.sign.SignSides
|
||||
import de.bixilon.minosoft.data.text.ChatComponent
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class SignTextC2SP(
|
||||
val position: Vec3i,
|
||||
val side: SignSides,
|
||||
|
@ -16,13 +16,11 @@ import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.kutil.enums.EnumUtil
|
||||
import de.bixilon.kutil.enums.ValuesEnum
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class StructureBlockC2SP(
|
||||
val position: Vec3i,
|
||||
val action: StructureBlockActions,
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(threadSafe = false)
|
||||
class ChatMessageC2SP(
|
||||
val message: String,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -10,16 +10,14 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class ChatPreviewC2SP(
|
||||
val id: Int,
|
||||
val query: String,
|
@ -14,7 +14,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.data.chat.signature.Acknowledgement
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -22,7 +21,6 @@ import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import java.time.Instant
|
||||
|
||||
@LoadPacket(threadSafe = false)
|
||||
class CommandC2SP(
|
||||
val command: String,
|
||||
val time: Instant = Instant.now(),
|
||||
|
@ -14,14 +14,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class CommandSuggestionsC2SP(
|
||||
val text: String,
|
||||
val assumeCommand: Boolean,
|
||||
|
@ -14,13 +14,11 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.data.chat.signature.Acknowledgement
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(threadSafe = false)
|
||||
class LegacyMessageAcknowledgementC2SP(
|
||||
val acknowledgement: Acknowledgement,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(threadSafe = false)
|
||||
class MessageAcknowledgementC2SP(
|
||||
val offset: Int,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -14,7 +14,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.chat
|
||||
|
||||
import de.bixilon.minosoft.data.chat.signature.Acknowledgement
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.KUtil
|
||||
@ -23,7 +22,6 @@ import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import java.time.Instant
|
||||
|
||||
@LoadPacket(threadSafe = false)
|
||||
class SignedChatMessageC2SP(
|
||||
val message: ByteArray,
|
||||
val time: Instant = Instant.now(),
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.container
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class CloseContainerC2SP(
|
||||
val containerId: Int,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.container
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
@Deprecated("Unknown purpose???")
|
||||
class ContainerActionC2SP(
|
||||
val containerId: Int,
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.container
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class ContainerButtonC2SP(
|
||||
private val containerId: Int,
|
||||
private val buttonId: Int,
|
||||
|
@ -14,7 +14,6 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.container
|
||||
|
||||
import de.bixilon.minosoft.data.container.stack.ItemStack
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_17_1_PRE1
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
@ -22,7 +21,6 @@ import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap
|
||||
|
||||
@LoadPacket
|
||||
data class ContainerClickC2SP(
|
||||
val containerId: Int,
|
||||
val revision: Int,
|
||||
|
@ -15,13 +15,11 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.difficulty
|
||||
|
||||
import de.bixilon.minosoft.data.world.difficulty.Difficulties
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class DifficultyC2SP(
|
||||
val difficulty: Difficulties,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -14,13 +14,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.difficulty
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class LockDifficultyC2SP(
|
||||
val lock: Boolean,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -17,14 +17,12 @@ import de.bixilon.kutil.enums.ValuesEnum
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class EntityActionC2SP(
|
||||
val entityId: Int,
|
||||
val action: EntityActions,
|
||||
|
@ -13,13 +13,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class EntityNbtC2SP(
|
||||
val transactionId: Int,
|
||||
val entityId: Int,
|
||||
|
@ -13,7 +13,6 @@
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
@ -23,7 +22,6 @@ import java.util.*
|
||||
/**
|
||||
* Teleports our self in spectator mode to an entity
|
||||
*/
|
||||
@LoadPacket
|
||||
class EntitySpectateC2SP(
|
||||
val uuid: UUID,
|
||||
) : PlayC2SPacket {
|
||||
|
@ -15,14 +15,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(parent = true)
|
||||
class EntityAttackC2SP(
|
||||
entityId: Int,
|
||||
override val sneaking: Boolean,
|
||||
|
@ -16,14 +16,12 @@ package de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(parent = true)
|
||||
class EntityEmptyInteractC2SP(
|
||||
entityId: Int,
|
||||
val hand: Hands,
|
||||
|
@ -17,14 +17,12 @@ import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket(parent = true)
|
||||
class EntityInteractPositionC2SP(
|
||||
entityId: Int,
|
||||
val position: Vec3,
|
||||
|
@ -10,16 +10,14 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class ConfirmTeleportC2SP(
|
||||
val teleportId: Int,
|
||||
) : PlayC2SPacket {
|
@ -10,16 +10,14 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class GroundChangeC2SP(
|
||||
val onGround: Boolean,
|
||||
) : PlayC2SPacket {
|
@ -10,18 +10,16 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class PositionC2SP(
|
||||
val position: Vec3d,
|
||||
val onGround: Boolean,
|
@ -10,19 +10,17 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.minosoft.data.entities.EntityRotation
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class PositionRotationC2SP(
|
||||
val position: Vec3d,
|
||||
val rotation: EntityRotation,
|
@ -10,17 +10,15 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move
|
||||
|
||||
import de.bixilon.minosoft.data.entities.EntityRotation
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class RotationC2SP(
|
||||
val rotation: EntityRotation,
|
||||
val onGround: Boolean,
|
@ -10,18 +10,16 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move.vehicle
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.vehicle
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.minosoft.data.entities.EntityRotation
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class MoveVehicleC2SP(
|
||||
val position: Vec3d,
|
||||
val rotation: EntityRotation,
|
@ -10,16 +10,14 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move.vehicle
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.vehicle
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class SteerBoatC2SP(
|
||||
val leftPaddle: Boolean,
|
||||
val rightPaddle: Boolean,
|
@ -10,17 +10,15 @@
|
||||
*
|
||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.move.vehicle
|
||||
package de.bixilon.minosoft.protocol.packets.c2s.play.entity.move.vehicle
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket
|
||||
import de.bixilon.minosoft.protocol.packets.factory.LoadPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.protocol.protocol.buffers.play.PlayOutByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
||||
@LoadPacket
|
||||
class VehicleInputC2SP(
|
||||
val sideways: Float,
|
||||
val forward: Float,
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user