port to kutil 1.26

This commit is contained in:
Moritz Zwerger 2024-02-01 18:20:28 +01:00
parent a6fe96fde6
commit 3b61973040
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
34 changed files with 92 additions and 182 deletions

View File

@ -1,6 +1,6 @@
# #
# Minosoft # Minosoft
# Copyright (C) 2020-2023 Moritz Zwerger # Copyright (C) 2020-2024 Moritz Zwerger
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. # This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
# #
@ -17,5 +17,5 @@ lwjgl.version=3.3.3
ikonli.version=12.3.1 ikonli.version=12.3.1
netty.version=4.1.101.Final netty.version=4.1.101.Final
jackson.version=2.16.0 jackson.version=2.16.0
kutil.version=1.25.0 kutil.version=1.26.0
glm.version=0.9.9.1-12 glm.version=0.9.9.1-12

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -18,7 +18,7 @@ import de.bixilon.kutil.primitive.DoubleUtil
import de.bixilon.kutil.primitive.DoubleUtil.matches import de.bixilon.kutil.primitive.DoubleUtil.matches
import de.bixilon.kutil.primitive.FloatUtil import de.bixilon.kutil.primitive.FloatUtil
import de.bixilon.kutil.primitive.FloatUtil.matches import de.bixilon.kutil.primitive.FloatUtil.matches
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.minosoft.camera.ConnectionCamera import de.bixilon.minosoft.camera.ConnectionCamera
import de.bixilon.minosoft.data.entities.StatusEffectInstance import de.bixilon.minosoft.data.entities.StatusEffectInstance
@ -42,17 +42,17 @@ object PhysicsTestUtil {
const val MATCH_EXACTLY = true const val MATCH_EXACTLY = true
val VALUE_MARGIN = if (MATCH_EXACTLY) 0.0 else DoubleUtil.DEFAULT_MARGIN val VALUE_MARGIN = if (MATCH_EXACTLY) 0.0 else DoubleUtil.DEFAULT_MARGIN
private val PLAYER_ATTRIBUTES = LocalPlayerEntity::attributes.jvmField private val PLAYER_ATTRIBUTES = LocalPlayerEntity::attributes.jvmField.field
private val CONNECTION_PLAYER = PlayConnection::player.jvmField private val CONNECTION_PLAYER = PlayConnection::player.jvmField.field
private val CONNECTION_CAMERA = PlayConnection::camera.jvmField private val CONNECTION_CAMERA = PlayConnection::camera.jvmField.field
fun createPlayer(connection: PlayConnection = createConnection(light = false)): LocalPlayerEntity { fun createPlayer(connection: PlayConnection = createConnection(light = false)): LocalPlayerEntity {
val player = LocalPlayerEntity(connection.account, connection, SignatureKeyManagement(connection, connection.account)) val player = LocalPlayerEntity(connection.account, connection, SignatureKeyManagement(connection, connection.account))
PLAYER_ATTRIBUTES.forceSet(player, EntityAttributes(player.type.attributes)) PLAYER_ATTRIBUTES.set(player, EntityAttributes(player.type.attributes))
player.startInit() player.startInit()
CONNECTION_PLAYER.forceSet(connection, player) CONNECTION_PLAYER.set(connection, player)
CONNECTION_CAMERA.forceSet(connection, ConnectionCamera(connection)) CONNECTION_CAMERA.set(connection, ConnectionCamera(connection))
connection.camera.init() connection.camera.init()
connection.world.entities.remove(0) connection.world.entities.remove(0)
connection.world.entities.add(0, null, player) connection.world.entities.add(0, null, player)

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -14,8 +14,8 @@
package de.bixilon.minosoft.data.physics.parkour package de.bixilon.minosoft.data.physics.parkour
import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.kutil.string.WhitespaceUtil.trimWhitespaces import de.bixilon.kutil.string.WhitespaceUtil.trimWhitespaces
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.minosoft.commands.parser.brigadier._double.DoubleParser.Companion.readDouble import de.bixilon.minosoft.commands.parser.brigadier._double.DoubleParser.Companion.readDouble
import de.bixilon.minosoft.commands.parser.brigadier._float.FloatParser.Companion.readFloat import de.bixilon.minosoft.commands.parser.brigadier._float.FloatParser.Companion.readFloat
import de.bixilon.minosoft.commands.util.StringReader import de.bixilon.minosoft.commands.util.StringReader

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -13,11 +13,11 @@
package de.bixilon.minosoft.data.registries.registries.registry package de.bixilon.minosoft.data.registries.registries.registry
import de.bixilon.kutil.collections.spliterator.SpliteratorUtil.collect
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import org.testng.Assert.* import org.testng.Assert.*
import org.testng.annotations.Test import org.testng.annotations.Test
import java.util.*
@Test(groups = ["registry"]) @Test(groups = ["registry"])
class RegistryTest { class RegistryTest {
@ -114,14 +114,6 @@ class RegistryTest {
assertEquals(secondList.toSet(), setOf(c, d)) assertEquals(secondList.toSet(), setOf(c, d))
} }
@Deprecated("kutil 1.25")
fun <T> Spliterator<T>.collect(): List<T> {
val list: MutableList<T> = mutableListOf()
forEachRemaining { list += it }
return list
}
// TODO: codec, spliterating // TODO: codec, spliterating
private class Entry(override val identifier: ResourceLocation) : RegistryItem() { private class Entry(override val identifier: ResourceLocation) : RegistryItem() {

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -15,14 +15,14 @@ package de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex
import de.bixilon.kotlinglm.vec2.Vec2 import de.bixilon.kotlinglm.vec2.Vec2
import de.bixilon.kotlinglm.vec2.Vec2i import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.buffer.ByteBufferUtil.toByteArray import de.bixilon.kutil.buffer.ByteBufferUtil.readRemaining
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.minosoft.gui.rendering.font.types.unicode.UnicodeCodeRenderer import de.bixilon.minosoft.gui.rendering.font.types.unicode.UnicodeCodeRenderer
import de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex.UnihexFontType.Companion.fromHex
import de.bixilon.minosoft.test.IT.OBJENESIS import de.bixilon.minosoft.test.IT.OBJENESIS
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
import org.testng.Assert.* import org.testng.Assert.assertEquals
import org.testng.Assert.assertTrue
import org.testng.annotations.Test import org.testng.annotations.Test
import java.io.ByteArrayInputStream import java.io.ByteArrayInputStream
import java.io.InputStream import java.io.InputStream
@ -33,19 +33,6 @@ class UnihexFontTypeTest {
private val textureRemaining = UnifontTexture::class.java.getFieldOrNull("remaining")!! private val textureRemaining = UnifontTexture::class.java.getFieldOrNull("remaining")!!
val readUnihex = UnihexFontType::class.companionObject!!.java.getDeclaredMethod("readUnihex", InputStream::class.java, Int2ObjectOpenHashMap::class.java).apply { setUnsafeAccessible() } val readUnihex = UnihexFontType::class.companionObject!!.java.getDeclaredMethod("readUnihex", InputStream::class.java, Int2ObjectOpenHashMap::class.java).apply { setUnsafeAccessible() }
fun `from hex`() {
assertEquals('0'.code.fromHex(), 0x00)
assertEquals('9'.code.fromHex(), 0x09)
assertEquals('a'.code.fromHex(), 0x0A)
assertEquals('A'.code.fromHex(), 0x0A)
assertEquals('f'.code.fromHex(), 0x0F)
assertEquals('F'.code.fromHex(), 0x0F)
assertThrows { 'z'.code.fromHex() }
}
fun `read unihex`() { fun `read unihex`() {
val data = "0E01DB:555580000001A2382241A238140588380001B31808A1913020A9BB100001AAAA\n298B:0000000E0808080808080808080E000E" val data = "0E01DB:555580000001A2382241A238140588380001B31808A1913020A9BB100001AAAA\n298B:0000000E0808080808080808080E000E"
@ -112,7 +99,7 @@ class UnihexFontTypeTest {
assertEquals(code.uvEnd, Vec2(0.18749f, 1.0f)) assertEquals(code.uvEnd, Vec2(0.18749f, 1.0f))
assertEquals(remaining, intArrayOf(13)) assertEquals(remaining, intArrayOf(13))
val data = texture.data.buffer.data.toByteArray() val data = texture.data.buffer.data.readRemaining()
for (index in 0 until 48) { for (index in 0 until 48) {

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.gui.rendering.models.baked
import de.bixilon.kotlinglm.vec2.Vec2i import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.assets.MemoryAssetsManager import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.TestAssetsManager.box import de.bixilon.minosoft.assets.TestAssetsManager.box
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.direction.Directions
import de.bixilon.minosoft.gui.rendering.Rendering import de.bixilon.minosoft.gui.rendering.Rendering
import de.bixilon.minosoft.gui.rendering.models.block.element.face.ModelFace import de.bixilon.minosoft.gui.rendering.models.block.element.face.ModelFace

View File

@ -18,8 +18,8 @@ import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.latch.SimpleLatch import de.bixilon.kutil.latch.SimpleLatch
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.MemoryAssetsManager import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft import de.bixilon.minosoft.data.registries.identified.Namespaces.minosoft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -15,10 +15,10 @@ package de.bixilon.minosoft.gui.rendering.system.base.texture.skin
import de.bixilon.kotlinglm.vec2.Vec2i import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.kutil.url.URLUtil.toURL import de.bixilon.kutil.url.URLUtil.toURL
import de.bixilon.minosoft.assets.MemoryAssetsManager import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.entities.entities.player.RemotePlayerEntity import de.bixilon.minosoft.data.entities.entities.player.RemotePlayerEntity
import de.bixilon.minosoft.data.entities.entities.player.additional.PlayerAdditional import de.bixilon.minosoft.data.entities.entities.player.additional.PlayerAdditional
import de.bixilon.minosoft.data.entities.entities.player.properties.PlayerProperties import de.bixilon.minosoft.data.entities.entities.player.properties.PlayerProperties

View File

@ -14,8 +14,8 @@
package de.bixilon.minosoft.gui.rendering.textures package de.bixilon.minosoft.gui.rendering.textures
import de.bixilon.kotlinglm.vec2.Vec2i import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible import de.bixilon.kutil.unsafe.UnsafeUtil.setUnsafeAccessible
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGB8Buffer import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGB8Buffer
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGBA8Buffer import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.RGBA8Buffer
import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.TextureBuffer import de.bixilon.minosoft.gui.rendering.system.base.texture.data.buffer.TextureBuffer

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.tint.tints.grass package de.bixilon.minosoft.gui.rendering.tint.tints.grass
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.MemoryAssetsManager import de.bixilon.minosoft.assets.MemoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.testng.Assert.assertEquals import org.testng.Assert.assertEquals
import org.testng.annotations.Test import org.testng.annotations.Test

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.protocol.network.connection.play
import de.bixilon.kotlinglm.pow import de.bixilon.kotlinglm.pow
import de.bixilon.kutil.observer.DataObserver import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.minosoft.assets.connection.ConnectionAssetsManager import de.bixilon.minosoft.assets.connection.ConnectionAssetsManager
import de.bixilon.minosoft.assets.minecraft.MinecraftPackFormat.packFormat import de.bixilon.minosoft.assets.minecraft.MinecraftPackFormat.packFormat
@ -51,21 +51,21 @@ object ConnectionTestUtil {
reference() reference()
} }
private val LANGUAGE = PlayConnection::language.jvmField private val LANGUAGE = PlayConnection::language.jvmField.field
private val SEQUENCE = PlayConnection::sequence.jvmField private val SEQUENCE = PlayConnection::sequence.jvmField.field
private val ACCOUNT = PlayConnection::account.jvmField private val ACCOUNT = PlayConnection::account.jvmField.field
private val VERSION = PlayConnection::version.jvmField private val VERSION = PlayConnection::version.jvmField.field
private val REGISTRIES = PlayConnection::registries.jvmField private val REGISTRIES = PlayConnection::registries.jvmField.field
private val WORLD = PlayConnection::world.jvmField private val WORLD = PlayConnection::world.jvmField.field
private val PLAYER = PlayConnection::player.jvmField private val PLAYER = PlayConnection::player.jvmField.field
private val NETWORK = PlayConnection::network.jvmField private val NETWORK = PlayConnection::network.jvmField.field
private val EVENTS = PlayConnection::events.jvmField private val EVENTS = PlayConnection::events.jvmField.field
private val PROFILES = PlayConnection::profiles.jvmField private val PROFILES = PlayConnection::profiles.jvmField.field
private val ASSETS_MANAGER = PlayConnection::assetsManager.jvmField private val ASSETS_MANAGER = PlayConnection::assetsManager.jvmField.field
private val STATE = PlayConnection::state.jvmField private val STATE = PlayConnection::state.jvmField.field
private val TAGS = PlayConnection::tags.jvmField private val TAGS = PlayConnection::tags.jvmField.field
private val LEGACY_TAGS = PlayConnection::legacyTags.jvmField private val LEGACY_TAGS = PlayConnection::legacyTags.jvmField.field
private val CAMERA = PlayConnection::camera.jvmField private val CAMERA = PlayConnection::camera.jvmField.field
private val language = LanguageManager() private val language = LanguageManager()
private val signature = OBJENESIS.newInstance(SignatureKeyManagement::class.java) private val signature = OBJENESIS.newInstance(SignatureKeyManagement::class.java)
@ -73,25 +73,25 @@ object ConnectionTestUtil {
fun createConnection(worldSize: Int = 0, light: Boolean = false, version: String? = null): PlayConnection { fun createConnection(worldSize: Int = 0, light: Boolean = false, version: String? = null): PlayConnection {
val connection = OBJENESIS.newInstance(PlayConnection::class.java) val connection = OBJENESIS.newInstance(PlayConnection::class.java)
LANGUAGE.forceSet(connection, language) LANGUAGE.set(connection, language)
val version = if (version == null) IT.VERSION else Versions[version] ?: throw IllegalArgumentException("Can not find version: $version") val version = if (version == null) IT.VERSION else Versions[version] ?: throw IllegalArgumentException("Can not find version: $version")
SEQUENCE.forceSet(connection, AtomicInteger(1)) SEQUENCE.set(connection, AtomicInteger(1))
ACCOUNT.forceSet(connection, TestAccount) ACCOUNT.set(connection, TestAccount)
VERSION.forceSet(connection, version) VERSION.set(connection, version)
REGISTRIES.forceSet(connection, Registries()) REGISTRIES.set(connection, Registries())
connection.registries.updateFlattened(version.flattened) connection.registries.updateFlattened(version.flattened)
connection.registries.parent = if (version == IT.VERSION) IT.REGISTRIES else ITUtil.loadRegistries(version) connection.registries.parent = if (version == IT.VERSION) IT.REGISTRIES else ITUtil.loadRegistries(version)
WORLD.forceSet(connection, createWorld(connection, light, (worldSize * 2 + 1).pow(2))) WORLD.set(connection, createWorld(connection, light, (worldSize * 2 + 1).pow(2)))
PLAYER.forceSet(connection, LocalPlayerEntity(connection.account, connection, signature)) PLAYER.set(connection, LocalPlayerEntity(connection.account, connection, signature))
connection.player.startInit() connection.player.startInit()
NETWORK.forceSet(connection, TestNetwork(connection)) NETWORK.set(connection, TestNetwork(connection))
EVENTS.forceSet(connection, EventMaster()) EVENTS.set(connection, EventMaster())
PROFILES.forceSet(connection, profiles) PROFILES.set(connection, profiles)
ASSETS_MANAGER.forceSet(connection, ConnectionAssetsManager(AssetsManagerProperties(PackProperties(version.packFormat)))) ASSETS_MANAGER.set(connection, ConnectionAssetsManager(AssetsManagerProperties(PackProperties(version.packFormat))))
STATE.forceSet(connection, DataObserver(PlayConnectionStates.PLAYING)) STATE.set(connection, DataObserver(PlayConnectionStates.PLAYING))
TAGS.forceSet(connection, TagManager()) TAGS.set(connection, TagManager())
LEGACY_TAGS.forceSet(connection, FALLBACK_TAGS) LEGACY_TAGS.set(connection, FALLBACK_TAGS)
CAMERA.forceSet(connection, ConnectionCamera(connection)) CAMERA.set(connection, ConnectionCamera(connection))
connection.camera.init() connection.camera.init()
if (worldSize > 0) { if (worldSize > 0) {
connection.world.initialize(worldSize) { DummyBiomeSource(null) } connection.world.initialize(worldSize) { DummyBiomeSource(null) }

View File

@ -13,7 +13,7 @@
package de.bixilon.minosoft.protocol.packets.s2c.play package de.bixilon.minosoft.protocol.packets.s2c.play
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket import de.bixilon.minosoft.protocol.packets.s2c.S2CPacket

View File

@ -17,8 +17,8 @@ import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.observer.DataObserver import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.mbf.MBFBinaryReader import de.bixilon.mbf.MBFBinaryReader
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.blocks.state.BlockState import de.bixilon.minosoft.data.registries.blocks.state.BlockState
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.StoneBlock import de.bixilon.minosoft.data.registries.blocks.types.building.stone.StoneBlock

View File

@ -15,7 +15,7 @@ package de.bixilon.minosoft.protocol.packets.s2c.play.chunk
import de.bixilon.kutil.observer.DataObserver import de.bixilon.kutil.observer.DataObserver
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.dimension.DimensionProperties import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
import de.bixilon.minosoft.data.world.positions.ChunkPosition import de.bixilon.minosoft.data.world.positions.ChunkPosition
import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection import de.bixilon.minosoft.protocol.network.connection.play.ConnectionTestUtil.createConnection

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -13,7 +13,7 @@
package de.bixilon.minosoft.modding.dummy package de.bixilon.minosoft.modding.dummy
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.modding.loader.mod.ModMain import de.bixilon.minosoft.modding.loader.mod.ModMain

View File

@ -14,12 +14,12 @@
package de.bixilon.minosoft.assets.directory package de.bixilon.minosoft.assets.directory
import de.bixilon.kutil.latch.AbstractLatch import de.bixilon.kutil.latch.AbstractLatch
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.properties.manager.AssetsManagerProperties import de.bixilon.minosoft.assets.properties.manager.AssetsManagerProperties
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.FileUtil import de.bixilon.minosoft.assets.util.FileUtil
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet

View File

@ -14,10 +14,10 @@
package de.bixilon.minosoft.assets.file package de.bixilon.minosoft.assets.file
import de.bixilon.kutil.latch.AbstractLatch import de.bixilon.kutil.latch.AbstractLatch
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import java.io.File import java.io.File

View File

@ -17,10 +17,10 @@ import com.github.luben.zstd.ZstdInputStream
import com.github.luben.zstd.ZstdOutputStream import com.github.luben.zstd.ZstdOutputStream
import de.bixilon.kutil.array.ByteArrayUtil.toHex import de.bixilon.kutil.array.ByteArrayUtil.toHex
import de.bixilon.kutil.file.FileUtil.createParent import de.bixilon.kutil.file.FileUtil.createParent
import de.bixilon.kutil.stream.InputStreamUtil.copy
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.HashTypes.Companion.hashType import de.bixilon.minosoft.assets.util.HashTypes.Companion.hashType
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.util.KUtil.copy
import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType import de.bixilon.minosoft.util.logging.LogMessageType

View File

@ -16,10 +16,10 @@ package de.bixilon.minosoft.assets.util
import com.fasterxml.jackson.databind.JavaType import com.fasterxml.jackson.databind.JavaType
import com.fasterxml.jackson.databind.ObjectReader import com.fasterxml.jackson.databind.ObjectReader
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import de.bixilon.kutil.buffer.BufferDefinition
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.exception.ExceptionUtil.ignoreAll import de.bixilon.kutil.exception.ExceptionUtil.ignoreAll
import de.bixilon.kutil.json.JsonObject import de.bixilon.kutil.json.JsonObject
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.mbf.MBFBinaryReader import de.bixilon.mbf.MBFBinaryReader
import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.json.Jackson
import org.kamranzafar.jtar.TarInputStream import org.kamranzafar.jtar.TarInputStream
@ -28,27 +28,6 @@ import java.util.zip.ZipInputStream
object InputStreamUtil { object InputStreamUtil {
@Deprecated("kutil 1.26")
fun InputStream.readAsString(close: Boolean = true): String {
val builder = StringBuilder()
val buffer = ByteArray(BufferDefinition.DEFAULT_BUFFER_SIZE)
var length: Int
while (true) {
length = this.read(buffer, 0, buffer.size)
if (length < 0) {
break
}
builder.append(String(buffer, 0, length, Charsets.UTF_8))
}
if (close) {
this.close()
}
return builder.toString()
}
fun InputStream.readJsonObject(close: Boolean = true): JsonObject { fun InputStream.readJsonObject(close: Boolean = true): JsonObject {
return readJson(close = close, reader = Jackson.MAP_READER) return readJson(close = close, reader = Jackson.MAP_READER)
} }
@ -110,12 +89,4 @@ object InputStreamUtil {
fun InputStream.readMBFMap(): Map<Any, Any> { fun InputStream.readMBFMap(): Map<Any, Any> {
return this.use { MBFBinaryReader(this).readMBF().data.unsafeCast() } return this.use { MBFBinaryReader(this).readMBF().data.unsafeCast() }
} }
@Deprecated("kutil 1.26")
fun InputStream.readAll(close: Boolean = true): ByteArray {
if (close) {
return use { readAllBytes() }
}
return readAllBytes()
}
} }

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -26,8 +26,8 @@ import de.bixilon.kutil.file.watcher.FileWatcherService
import de.bixilon.kutil.observer.DataObserver.Companion.observe import de.bixilon.kutil.observer.DataObserver.Companion.observe
import de.bixilon.kutil.observer.DataObserver.Companion.observed import de.bixilon.kutil.observer.DataObserver.Companion.observed
import de.bixilon.kutil.observer.map.bi.BiMapObserver.Companion.observedBiMap import de.bixilon.kutil.observer.map.bi.BiMapObserver.Companion.observedBiMap
import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.assets.util.FileUtil.mkdirParent import de.bixilon.minosoft.assets.util.FileUtil.mkdirParent
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.minosoft.config.profile.ProfileType import de.bixilon.minosoft.config.profile.ProfileType
import de.bixilon.minosoft.config.profile.ProfileUtil.isValidName import de.bixilon.minosoft.config.profile.ProfileUtil.isValidName
import de.bixilon.minosoft.config.profile.profiles.Profile import de.bixilon.minosoft.config.profile.profiles.Profile

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -19,7 +19,7 @@ import de.bixilon.kutil.bit.BitByte.isBitMask
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.cast.CastUtil.unsafeNull import de.bixilon.kutil.cast.CastUtil.unsafeNull
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet import de.bixilon.kutil.reflection.ReflectionUtil.field
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.reflection.ReflectionUtil.jvmField import de.bixilon.kutil.reflection.ReflectionUtil.jvmField
import de.bixilon.kutil.time.TimeUtil.millis import de.bixilon.kutil.time.TimeUtil.millis
@ -242,12 +242,12 @@ abstract class Entity(
override fun init() { override fun init() {
DEFAULT_AABB.forceSet(this, createDefaultAABB()) DEFAULT_AABB.set(this, createDefaultAABB())
PHYSICS.forceSet(this, createPhysics()) PHYSICS.set(this, createPhysics())
forceTeleport(initialPosition) forceTeleport(initialPosition)
forceRotate(initialRotation) forceRotate(initialRotation)
if (!RunConfiguration.DISABLE_RENDERING) { if (!RunConfiguration.DISABLE_RENDERING) {
RENDER_INFO[this] = EntityRenderInfo(this) RENDER_INFO.set(this, EntityRenderInfo(this))
} }
} }
@ -262,9 +262,9 @@ abstract class Entity(
companion object { companion object {
private val RENDER_INFO = Entity::renderInfo.jvmField private val RENDER_INFO = Entity::renderInfo.jvmField.field
private val DEFAULT_AABB = Entity::defaultAABB.jvmField private val DEFAULT_AABB = Entity::defaultAABB.jvmField.field
private val PHYSICS = Entity::class.java.getFieldOrNull("physics")!! private val PHYSICS = Entity::class.java.getFieldOrNull("physics")!!.field
val FLAGS_DATA = EntityDataField("ENTITY_FLAGS") val FLAGS_DATA = EntityDataField("ENTITY_FLAGS")
val AIR_SUPPLY_DATA = EntityDataField("ENTITY_AIR_SUPPLY") val AIR_SUPPLY_DATA = EntityDataField("ENTITY_AIR_SUPPLY")

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -14,7 +14,7 @@
package de.bixilon.minosoft.example package de.bixilon.minosoft.example
import de.bixilon.kutil.observer.DataObserver.Companion.observe import de.bixilon.kutil.observer.DataObserver.Companion.observe
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.modding.event.events.chat.ChatMessageEvent import de.bixilon.minosoft.modding.event.events.chat.ChatMessageEvent
import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionCreateEvent import de.bixilon.minosoft.modding.event.events.connection.play.PlayConnectionCreateEvent
import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen import de.bixilon.minosoft.modding.event.listener.CallbackEventListener.Companion.listen

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -13,6 +13,7 @@
package de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex package de.bixilon.minosoft.gui.rendering.font.types.unicode.unihex
import de.bixilon.kutil.hex.HexUtil.fromHex
import de.bixilon.kutil.json.JsonObject import de.bixilon.kutil.json.JsonObject
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@ -79,15 +80,6 @@ class UnihexFontType(
return UnihexFontType(rasterized) return UnihexFontType(rasterized)
} }
fun Int.fromHex(): Int {
return this - when (this) {
in '0'.code..'9'.code -> '0'.code
in 'a'.code..'f'.code -> 'a'.code - 0x0A
in 'A'.code..'F'.code -> 'A'.code - 0x0A
else -> throw IllegalArgumentException("Invalid hex char: ${toChar()}!")
}
}
private fun InputStream.readHexInt(): Int { private fun InputStream.readHexInt(): Int {
var value = 0 var value = 0
while (true) { while (true) {
@ -95,6 +87,7 @@ class UnihexFontType(
if (byte < 0 || byte == '\n'.code) return -1 if (byte < 0 || byte == '\n'.code) return -1
if (byte == ':'.code) break // separator if (byte == ':'.code) break // separator
val hex = byte.fromHex() val hex = byte.fromHex()
if (hex < 0) throw IllegalArgumentException("Invalid hex char: ${byte.toChar()}!")
value = (value shl 4) or hex value = (value shl 4) or hex
} }
@ -110,6 +103,8 @@ class UnihexFontType(
if (byte < 0) break if (byte < 0) break
if (byte == '\n'.code) break // separator if (byte == '\n'.code) break // separator
val hex = byte.fromHex() val hex = byte.fromHex()
if (hex < 0) throw IllegalArgumentException("Invalid hex char: ${byte.toChar()}!")
if (index % 2 == 0) { if (index % 2 == 0) {
// most significant bits // most significant bits

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.gui.rendering.sound.sounds package de.bixilon.minosoft.gui.rendering.sound.sounds
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.lwjgl.BufferUtils import org.lwjgl.BufferUtils
import org.lwjgl.openal.AL10.AL_FORMAT_MONO16 import org.lwjgl.openal.AL10.AL_FORMAT_MONO16
import org.lwjgl.openal.AL10.AL_FORMAT_STEREO16 import org.lwjgl.openal.AL10.AL_FORMAT_STEREO16

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.system.base.shader.code.glsl package de.bixilon.minosoft.gui.rendering.system.base.shader.code.glsl
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.commands.util.StringReader import de.bixilon.minosoft.commands.util.StringReader
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -19,7 +19,7 @@ import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kotlinglm.vec4.Vec4 import de.bixilon.kotlinglm.vec4.Vec4
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.exception.ExceptionUtil.catchAll import de.bixilon.kutil.exception.ExceptionUtil.catchAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString import de.bixilon.kutil.stream.InputStreamUtil.readAsString
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.data.text.formatting.color.RGBColor import de.bixilon.minosoft.data.text.formatting.color.RGBColor
import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.RenderContext

View File

@ -1,6 +1,6 @@
/* /*
* Minosoft * Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger * Copyright (C) 2020-2024 Moritz Zwerger
* *
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* *
@ -18,7 +18,6 @@ import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kotlinglm.vec3.Vec3i import de.bixilon.kotlinglm.vec3.Vec3i
import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.kutil.primitive.IntUtil.toInt
import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inSectionHeight
import de.bixilon.minosoft.gui.rendering.util.VecUtil.sectionHeight import de.bixilon.minosoft.gui.rendering.util.VecUtil.sectionHeight
object Vec3iUtil { object Vec3iUtil {
@ -44,9 +43,6 @@ object Vec3iUtil {
val Vec3i.inChunkPosition: Vec3i val Vec3i.inChunkPosition: Vec3i
get() = Vec3i(x and 0x0F, y, this.z and 0x0F) get() = Vec3i(x and 0x0F, y, this.z and 0x0F)
@Deprecated("chunk data types")
val Vec3i.inChunkSectionPosition: Vec3i
get() = Vec3i(x and 0x0F, y.inSectionHeight, z and 0x0F)
fun Vec3i.toVec3(): Vec3 { fun Vec3i.toVec3(): Vec3 {
val array = array val array = array

View File

@ -15,8 +15,8 @@ package de.bixilon.minosoft.modding.loader
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull import de.bixilon.kutil.reflection.ReflectionUtil.getFieldOrNull
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath import de.bixilon.minosoft.assets.util.FileAssetsUtil.normalizePath
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import org.xeustechnologies.jcl.JarClassLoader import org.xeustechnologies.jcl.JarClassLoader
import org.xeustechnologies.jcl.JarResources import org.xeustechnologies.jcl.JarResources
import org.xeustechnologies.jcl.JclJarEntry import org.xeustechnologies.jcl.JclJarEntry

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.modding.loader.mod.source package de.bixilon.minosoft.modding.loader.mod.source
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson import de.bixilon.minosoft.assets.util.InputStreamUtil.readJson
import de.bixilon.minosoft.data.text.BaseComponent import de.bixilon.minosoft.data.text.BaseComponent
import de.bixilon.minosoft.data.text.TextComponent import de.bixilon.minosoft.data.text.TextComponent

View File

@ -21,6 +21,7 @@ import de.bixilon.kutil.hash.HashUtil
import de.bixilon.kutil.observer.DataObserver.Companion.observed import de.bixilon.kutil.observer.DataObserver.Companion.observed
import de.bixilon.kutil.os.PlatformInfo import de.bixilon.kutil.os.PlatformInfo
import de.bixilon.kutil.shutdown.ShutdownManager import de.bixilon.kutil.shutdown.ShutdownManager
import de.bixilon.kutil.stream.InputStreamUtil.copy
import de.bixilon.kutil.string.StringUtil.formatPlaceholder import de.bixilon.kutil.string.StringUtil.formatPlaceholder
import de.bixilon.kutil.url.URLUtil.toURL import de.bixilon.kutil.url.URLUtil.toURL
import de.bixilon.minosoft.assets.util.FileUtil import de.bixilon.minosoft.assets.util.FileUtil
@ -28,7 +29,6 @@ import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager
import de.bixilon.minosoft.properties.MinosoftProperties import de.bixilon.minosoft.properties.MinosoftProperties
import de.bixilon.minosoft.terminal.CommandLineArguments import de.bixilon.minosoft.terminal.CommandLineArguments
import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.copy
import de.bixilon.minosoft.util.http.HTTP2.get import de.bixilon.minosoft.util.http.HTTP2.get
import de.bixilon.minosoft.util.http.HTTPResponse import de.bixilon.minosoft.util.http.HTTPResponse
import de.bixilon.minosoft.util.http.exceptions.HTTPException import de.bixilon.minosoft.util.http.exceptions.HTTPException

View File

@ -21,7 +21,6 @@ import de.bixilon.kotlinglm.vec2.Vec2t
import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kotlinglm.vec3.Vec3t import de.bixilon.kotlinglm.vec3.Vec3t
import de.bixilon.kotlinglm.vec4.Vec4t import de.bixilon.kotlinglm.vec4.Vec4t
import de.bixilon.kutil.buffer.BufferDefinition
import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
@ -30,7 +29,6 @@ import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable import de.bixilon.kutil.concurrent.pool.runnable.ForcePooledRunnable
import de.bixilon.kutil.concurrent.schedule.TaskScheduler import de.bixilon.kutil.concurrent.schedule.TaskScheduler
import de.bixilon.kutil.exception.ExceptionUtil
import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.kutil.primitive.BooleanUtil.decide
import de.bixilon.kutil.primitive.DoubleUtil import de.bixilon.kutil.primitive.DoubleUtil
import de.bixilon.kutil.primitive.DoubleUtil.matches import de.bixilon.kutil.primitive.DoubleUtil.matches
@ -71,11 +69,7 @@ import io.netty.channel.SimpleChannelInboundHandler
import javafx.application.Platform import javafx.application.Platform
import org.kamranzafar.jtar.TarHeader import org.kamranzafar.jtar.TarHeader
import java.io.FileOutputStream import java.io.FileOutputStream
import java.io.InputStream
import java.io.OutputStream
import java.security.MessageDigest
import java.security.SecureRandom import java.security.SecureRandom
import java.security.Signature
import java.util.* import java.util.*
import javax.net.ssl.SSLContext import javax.net.ssl.SSLContext
@ -361,29 +355,4 @@ object KUtil {
stream.close() stream.close()
println("Packet dumped to $path") println("Packet dumped to $path")
} }
@Deprecated("kutil 1.26")
fun InputStream.copy(vararg output: OutputStream, digest: MessageDigest? = null, signature: Signature? = null, closeIn: Boolean = true, closeOut: Boolean = true) {
val buffer = ByteArray(BufferDefinition.DEFAULT_BUFFER_SIZE)
while (true) {
val length = read(buffer, 0, buffer.size)
if (length < 0) {
break
}
for (stream in output) {
stream.write(buffer, 0, length)
}
digest?.update(buffer, 0, length)
signature?.update(buffer, 0, length)
}
if (closeIn) ExceptionUtil.ignoreAll { close() }
if (closeOut) {
for (stream in output) {
ExceptionUtil.ignoreAll { stream.close() }
}
}
}
} }

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.util.signature package de.bixilon.minosoft.util.signature
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.IntegratedAssets import de.bixilon.minosoft.assets.IntegratedAssets
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import java.security.KeyFactory import java.security.KeyFactory
import java.security.PublicKey import java.security.PublicKey

View File

@ -13,8 +13,8 @@
package de.bixilon.minosoft.util.system package de.bixilon.minosoft.util.system
import de.bixilon.kutil.stream.InputStreamUtil.readAll
import de.bixilon.minosoft.assets.IntegratedAssets import de.bixilon.minosoft.assets.IntegratedAssets
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAll
import java.awt.Taskbar import java.awt.Taskbar
import java.awt.Toolkit import java.awt.Toolkit
import java.io.File import java.io.File