diff --git a/doc/Modding.md b/doc/Modding.md index d08178676..90a782765 100644 --- a/doc/Modding.md +++ b/doc/Modding.md @@ -104,20 +104,20 @@ If your start function needs much time, you can set the loading priority in the Create a Main class, here is an example + ```java package de.bixilon.example.mod.main; -import de.bixilon.minosoft.modding.MinosoftMod; import de.bixilon.minosoft.modding.loading.ModPhases; public class TestMod extends MinosoftMod { - - public boolean start(ModPhases phase) { - if (phase == ModPhases.BOOTING) { - getLogger().info("Hello world!"); + + public boolean start(ModPhases phase) { + if (phase == ModPhases.BOOTING) { + getLogger().info("Hello world!"); + } + return true; } - return true; - } } ``` Your `mod.json` can look like this diff --git a/pom.xml b/pom.xml index b6b222039..5b6d266f1 100644 --- a/pom.xml +++ b/pom.xml @@ -457,7 +457,7 @@ de.bixilon kutil - 1.0 + 1.1 diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.kt b/src/main/java/de/bixilon/minosoft/Minosoft.kt index 9ce8e9618..7d863670e 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.kt +++ b/src/main/java/de/bixilon/minosoft/Minosoft.kt @@ -16,8 +16,9 @@ package de.bixilon.minosoft import de.bixilon.kutil.concurrent.pool.ThreadPool import de.bixilon.kutil.concurrent.worker.TaskWorker import de.bixilon.kutil.concurrent.worker.tasks.Task -import de.bixilon.kutil.general.OSUtil +import de.bixilon.kutil.file.watcher.FileWatcherService import de.bixilon.kutil.latch.CountUpAndDownLatch +import de.bixilon.kutil.os.OSUtil import de.bixilon.minosoft.assets.file.ResourcesAssetsUtil import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties import de.bixilon.minosoft.config.profile.GlobalProfileManager @@ -35,7 +36,6 @@ import de.bixilon.minosoft.gui.eros.dialog.StartingDialog import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer import de.bixilon.minosoft.modding.event.events.FinishInitializingEvent import de.bixilon.minosoft.modding.event.master.GlobalEventMaster -import de.bixilon.minosoft.modding.loading.ModLoader import de.bixilon.minosoft.protocol.protocol.LANServerListener import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.AutoConnect @@ -46,7 +46,6 @@ import de.bixilon.minosoft.util.GitInfo import de.bixilon.minosoft.util.RenderPolling import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.YggdrasilUtil -import de.bixilon.minosoft.util.filewatcher.FileWatcherService import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -111,8 +110,6 @@ object Minosoft { Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Default registries loaded!" } }) - taskWorker += Task(identifier = StartupTasks.LOAD_MODS, dependencies = arrayOf(StartupTasks.LOAD_PROFILES), executor = { ModLoader.loadMods(it) }) - taskWorker += Task(identifier = StartupTasks.LISTEN_LAN_SERVERS, dependencies = arrayOf(StartupTasks.LOAD_PROFILES), executor = { LANServerListener.listen() diff --git a/src/main/java/de/bixilon/minosoft/assets/directory/DirectoryAssetsManager.kt b/src/main/java/de/bixilon/minosoft/assets/directory/DirectoryAssetsManager.kt index 5273e3786..1b84b7a5d 100644 --- a/src/main/java/de/bixilon/minosoft/assets/directory/DirectoryAssetsManager.kt +++ b/src/main/java/de/bixilon/minosoft/assets/directory/DirectoryAssetsManager.kt @@ -13,12 +13,12 @@ package de.bixilon.minosoft.assets.directory +import de.bixilon.kutil.file.FileUtil.slashPath import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName import de.bixilon.minosoft.assets.util.FileUtil import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.slashPath import java.io.File import java.io.FileNotFoundException import java.io.InputStream diff --git a/src/main/java/de/bixilon/minosoft/assets/minecraft/index/IndexAssetsManager.kt b/src/main/java/de/bixilon/minosoft/assets/minecraft/index/IndexAssetsManager.kt index 91fa0ed76..fa3df17cd 100644 --- a/src/main/java/de/bixilon/minosoft/assets/minecraft/index/IndexAssetsManager.kt +++ b/src/main/java/de/bixilon/minosoft/assets/minecraft/index/IndexAssetsManager.kt @@ -18,6 +18,7 @@ import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable import de.bixilon.kutil.latch.CountUpAndDownLatch +import de.bixilon.kutil.primitive.LongUtil.toLong import de.bixilon.minosoft.assets.minecraft.MinecraftAssetsManager import de.bixilon.minosoft.assets.util.FileAssetsUtil import de.bixilon.minosoft.assets.util.FileAssetsUtil.toAssetName @@ -27,7 +28,6 @@ import de.bixilon.minosoft.config.StaticConfiguration import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil.toLong import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.logging.Log diff --git a/src/main/java/de/bixilon/minosoft/assets/util/FileAssetsUtil.kt b/src/main/java/de/bixilon/minosoft/assets/util/FileAssetsUtil.kt index 46798a85f..154c9a170 100644 --- a/src/main/java/de/bixilon/minosoft/assets/util/FileAssetsUtil.kt +++ b/src/main/java/de/bixilon/minosoft/assets/util/FileAssetsUtil.kt @@ -15,10 +15,10 @@ package de.bixilon.minosoft.assets.util import com.github.luben.zstd.ZstdInputStream import com.github.luben.zstd.ZstdOutputStream +import de.bixilon.kutil.hex.HexUtil.isHexString import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil.isHexString import de.bixilon.minosoft.util.Util import java.io.* import java.net.URL diff --git a/src/main/java/de/bixilon/minosoft/config/profile/GlobalProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/GlobalProfileManager.kt index 294eaf8f8..460359beb 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/GlobalProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/GlobalProfileManager.kt @@ -7,6 +7,7 @@ import de.bixilon.kutil.collections.map.LockMap import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.time.TimeWorker import de.bixilon.kutil.concurrent.time.TimeWorkerTask +import de.bixilon.kutil.file.FileUtil import de.bixilon.minosoft.config.profile.profiles.Profile import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager import de.bixilon.minosoft.config.profile.profiles.audio.AudioProfileManager @@ -23,7 +24,6 @@ import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfileMan import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.json.Jackson import java.io.File @@ -90,7 +90,7 @@ object GlobalProfileManager { val data: Map = Jackson.MAPPER.convertValue(selectedProfiles.original, SELECTED_PROFILES_TYPE) val jsonString = Jackson.MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(data) - KUtil.safeSaveToFile(File(RunConfiguration.HOME_DIRECTORY + "config/selected_profiles.json"), jsonString) + FileUtil.safeSaveToFile(File(RunConfiguration.HOME_DIRECTORY + "config/selected_profiles.json"), jsonString) selectedProfilesChanges = false } catch (exception: Exception) { exception.crash() diff --git a/src/main/java/de/bixilon/minosoft/config/profile/ProfileManager.kt b/src/main/java/de/bixilon/minosoft/config/profile/ProfileManager.kt index a3b18f2e7..610f891ac 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/ProfileManager.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/ProfileManager.kt @@ -2,6 +2,11 @@ package de.bixilon.minosoft.config.profile import com.google.common.collect.HashBiMap import de.bixilon.kutil.concurrent.pool.DefaultThreadPool +import de.bixilon.kutil.exception.ExceptionUtil.tryCatch +import de.bixilon.kutil.file.FileUtil +import de.bixilon.kutil.file.watcher.FileWatcher +import de.bixilon.kutil.file.watcher.FileWatcherService +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.config.profile.delegate.delegate.BackingDelegate import de.bixilon.minosoft.config.profile.delegate.delegate.ProfileDelegate import de.bixilon.minosoft.config.profile.delegate.delegate.entry.ListDelegateProfile @@ -11,11 +16,7 @@ import de.bixilon.minosoft.config.profile.profiles.Profile import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.Util -import de.bixilon.minosoft.util.filewatcher.FileWatcher -import de.bixilon.minosoft.util.filewatcher.FileWatcherService import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels @@ -183,7 +184,7 @@ interface ProfileManager { val profileFile = File(getPath(profile.name)) profile.ignoreNextReload = true - KUtil.safeSaveToFile(profileFile, jsonString) + FileUtil.safeSaveToFile(profileFile, jsonString) profile.saved = true } catch (exception: Exception) { exception.printStackTrace() @@ -237,7 +238,7 @@ interface ProfileManager { fun readAndMigrate(path: String): Pair?> { var saveFile = false val json: MutableMap? - val jsonString = KUtil.tryCatch(FileNotFoundException::class.java) { Util.readFile(path) } + val jsonString = tryCatch(FileNotFoundException::class.java) { Util.readFile(path) } if (jsonString != null) { json = Jackson.MAPPER.readValue(jsonString, Jackson.JSON_MAP_TYPE)!! val version = json["version"]?.toInt() ?: throw IllegalArgumentException("Can not find version attribute in profile: $path") diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/general/GeneralC.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/general/GeneralC.kt index 77c0e0d04..53a6cc77f 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/general/GeneralC.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/eros/general/GeneralC.kt @@ -2,13 +2,13 @@ package de.bixilon.minosoft.config.profile.profiles.eros.general import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty +import de.bixilon.kutil.locale.LocaleUtil.fullName import de.bixilon.minosoft.config.profile.profiles.account.AccountProfile import de.bixilon.minosoft.config.profile.profiles.account.AccountProfileManager import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.delegate import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager.mapDelegate import de.bixilon.minosoft.data.language.LanguageManager import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.fullName import java.util.* class GeneralC { diff --git a/src/main/java/de/bixilon/minosoft/data/abilities/ItemCooldown.kt b/src/main/java/de/bixilon/minosoft/data/abilities/ItemCooldown.kt index bc1cb6227..faba208ec 100644 --- a/src/main/java/de/bixilon/minosoft/data/abilities/ItemCooldown.kt +++ b/src/main/java/de/bixilon/minosoft/data/abilities/ItemCooldown.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.data.abilities +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil data class ItemCooldown( val start: Long, @@ -23,5 +23,5 @@ data class ItemCooldown( val end: Long = start + (time * ProtocolDefinition.TICK_TIME) val ended: Boolean - get() = KUtil.time >= end + get() = TimeUtil.time >= end } diff --git a/src/main/java/de/bixilon/minosoft/data/accounts/types/MojangAccount.kt b/src/main/java/de/bixilon/minosoft/data/accounts/types/MojangAccount.kt index c85e42b21..299a7f5b6 100644 --- a/src/main/java/de/bixilon/minosoft/data/accounts/types/MojangAccount.kt +++ b/src/main/java/de/bixilon/minosoft/data/accounts/types/MojangAccount.kt @@ -16,11 +16,11 @@ package de.bixilon.minosoft.data.accounts.types import com.fasterxml.jackson.annotation.JsonProperty import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import de.bixilon.minosoft.data.accounts.Account import de.bixilon.minosoft.data.player.properties.PlayerProperties import de.bixilon.minosoft.data.registries.CompanionResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.asUUID import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.account.AccountUtil import de.bixilon.minosoft.util.http.HTTP2.postJson @@ -117,7 +117,7 @@ class MojangAccount( Log.log(LogMessageType.AUTHENTICATION, LogLevels.VERBOSE) { "Mojang login successful (email=$email)" } - val uuid = response.body["selectedProfile"].asCompound()["id"].toString().asUUID() + val uuid = response.body["selectedProfile"].asCompound()["id"].toString().toUUID() return MojangAccount( id = response.body["user"].asCompound()["id"].unsafeCast(), username = response.body["selectedProfile"].asCompound()["name"].unsafeCast(), diff --git a/src/main/java/de/bixilon/minosoft/data/commands/parser/EntityParser.java b/src/main/java/de/bixilon/minosoft/data/commands/parser/EntityParser.java index 5b6815dc6..e2af06476 100644 --- a/src/main/java/de/bixilon/minosoft/data/commands/parser/EntityParser.java +++ b/src/main/java/de/bixilon/minosoft/data/commands/parser/EntityParser.java @@ -23,7 +23,6 @@ import de.bixilon.minosoft.data.commands.parser.properties.ParserProperties; import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection; import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition; -import de.bixilon.minosoft.util.Util; import java.util.HashMap; import java.util.Map; @@ -101,7 +100,8 @@ public class EntityParser extends CommandParser { throw new PlayerOnlyEntityCommandParseException(stringReader, value); } try { - return Util.getUUIDFromString(value); + // return Util.getUUIDFromString(value); + throw new IllegalArgumentException("TODO"); } catch (Exception ignored) { } throw new UnknownEntitySelectorCommandParseException(stringReader, value); diff --git a/src/main/java/de/bixilon/minosoft/data/commands/parser/UUIDParser.kt b/src/main/java/de/bixilon/minosoft/data/commands/parser/UUIDParser.kt index f73b9c02b..dcc2cf627 100644 --- a/src/main/java/de/bixilon/minosoft/data/commands/parser/UUIDParser.kt +++ b/src/main/java/de/bixilon/minosoft/data/commands/parser/UUIDParser.kt @@ -16,7 +16,6 @@ import de.bixilon.minosoft.data.commands.CommandStringReader import de.bixilon.minosoft.data.commands.parser.exceptions.UUIDCommandParseException import de.bixilon.minosoft.data.commands.parser.properties.ParserProperties import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.Util import java.util.* object UUIDParser : CommandParser() { @@ -24,7 +23,7 @@ object UUIDParser : CommandParser() { override fun parse(connection: PlayConnection, properties: ParserProperties?, stringReader: CommandStringReader): UUID { val argument = stringReader.readString() try { - return Util.getUUIDFromString(argument) + return TODO() // Util.getUUIDFromString(argument) } catch (exception: IllegalArgumentException) { throw UUIDCommandParseException(stringReader, argument, exception) } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/StatusEffectInstance.kt b/src/main/java/de/bixilon/minosoft/data/entities/StatusEffectInstance.kt index 79f326b1c..4740d5f41 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/StatusEffectInstance.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/StatusEffectInstance.kt @@ -12,17 +12,17 @@ */ package de.bixilon.minosoft.data.entities +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.registries.effects.StatusEffect -import de.bixilon.minosoft.util.KUtil data class StatusEffectInstance( val statusEffect: StatusEffect, val amplifier: Int, val duration: Int, ) { - private val startMillis = KUtil.time + private val startMillis = TimeUtil.time val remainingMillis: Long - get() = KUtil.time - startMillis + get() = TimeUtil.time - startMillis } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/CampfireBlockEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/CampfireBlockEntity.kt index dc5554d7a..84a2fc77f 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/CampfireBlockEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/CampfireBlockEntity.kt @@ -14,6 +14,8 @@ package de.bixilon.minosoft.data.entities.block import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.IntUtil.toInt +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.registries.ResourceLocation @@ -23,8 +25,6 @@ import de.bixilon.minosoft.data.registries.blocks.types.CampfireBlock import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import glm_.vec3.Vec3d import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/MobSpawnerBlockEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/MobSpawnerBlockEntity.kt index 312b88cb7..a865f64fd 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/MobSpawnerBlockEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/MobSpawnerBlockEntity.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.data.entities.block +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.world.WorldEntities @@ -23,7 +24,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.toInt import glm_.vec3.Vec3d import glm_.vec3.Vec3i import kotlin.random.Random diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/NoteBlockBlockEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/NoteBlockBlockEntity.kt index 990d6af4e..cb1ad5888 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/NoteBlockBlockEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/NoteBlockBlockEntity.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.data.entities.block +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.MultiResourceLocationAble import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState @@ -21,7 +22,6 @@ import de.bixilon.minosoft.data.registries.blocks.properties.Instruments import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.NoteParticle import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3d import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt index 230eca6f5..04617794d 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.entities.entities import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.Poses @@ -56,7 +57,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3 import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import glm_.func.common.floor import glm_.vec2.Vec2 import glm_.vec3.Vec3 @@ -346,7 +346,7 @@ abstract class Entity( @Synchronized fun tick() { - val currentTime = KUtil.time + val currentTime = TimeUtil.time if (lastFakeTickTime == -1L) { lastFakeTickTime = currentTime return diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.kt index 7d8a85e20..dd73c036c 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.data.entities.entities +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.Poses @@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.sp import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.spell.EntityEffectParticle import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance import glm_.vec3.Vec3d import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/data/inventory/ItemStack.kt b/src/main/java/de/bixilon/minosoft/data/inventory/ItemStack.kt index 5397104ca..e5903e54f 100644 --- a/src/main/java/de/bixilon/minosoft/data/inventory/ItemStack.kt +++ b/src/main/java/de/bixilon/minosoft/data/inventory/ItemStack.kt @@ -17,6 +17,7 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.Rarities import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_COLOR_TAG import de.bixilon.minosoft.data.inventory.ItemNBTValues.DISPLAY_LORE_TAG @@ -41,7 +42,6 @@ import de.bixilon.minosoft.data.text.TextFormattable import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.util.BitByte.isBit import de.bixilon.minosoft.util.KUtil.synchronizedDeepCopy -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.getAndRemove import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast diff --git a/src/main/java/de/bixilon/minosoft/data/language/LanguageManager.kt b/src/main/java/de/bixilon/minosoft/data/language/LanguageManager.kt index cee66b755..9489d9019 100644 --- a/src/main/java/de/bixilon/minosoft/data/language/LanguageManager.kt +++ b/src/main/java/de/bixilon/minosoft/data/language/LanguageManager.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.data.language import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf +import de.bixilon.kutil.exception.ExceptionUtil.tryCatch import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.util.FileUtil.readAsString import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject @@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.versions.Version import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.TextComponent import de.bixilon.minosoft.protocol.protocol.ProtocolVersions -import de.bixilon.minosoft.util.KUtil.tryCatch import java.io.FileNotFoundException class LanguageManager( diff --git a/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt b/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt index bff304776..33433493e 100644 --- a/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt @@ -14,9 +14,10 @@ package de.bixilon.minosoft.data.player import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf -import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.math.MMath.clamp import de.bixilon.kutil.math.MMath.floor +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.ItemCooldown @@ -54,7 +55,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.c2s.play.* import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.Previous import glm_.func.cos @@ -218,7 +218,7 @@ class LocalPlayerEntity( if (connection.profiles.rendering.movement.disablePacketSending) { return } - val currentTime = KUtil.time + val currentTime = TimeUtil.time val isSprinting = isSprinting if (isSprinting != lastSprinting) { connection.sendPacket(EntityActionC2SP(this, connection, isSprinting.decide(EntityActionC2SP.EntityActions.START_SPRINTING, EntityActionC2SP.EntityActions.STOP_SPRINTING))) diff --git a/src/main/java/de/bixilon/minosoft/data/player/properties/PlayerProperties.kt b/src/main/java/de/bixilon/minosoft/data/player/properties/PlayerProperties.kt index 3b58e1239..230527376 100644 --- a/src/main/java/de/bixilon/minosoft/data/player/properties/PlayerProperties.kt +++ b/src/main/java/de/bixilon/minosoft/data/player/properties/PlayerProperties.kt @@ -1,10 +1,10 @@ package de.bixilon.minosoft.data.player.properties import com.fasterxml.jackson.annotation.JsonInclude +import de.bixilon.kutil.json.JsonUtil.toJsonList +import de.bixilon.kutil.uuid.UUIDUtil.trim import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.data.player.properties.textures.PlayerTextures -import de.bixilon.minosoft.util.KUtil.listCast -import de.bixilon.minosoft.util.KUtil.trim import de.bixilon.minosoft.util.Util import java.net.URL import java.util.* @@ -24,7 +24,7 @@ class PlayerProperties( var textures: PlayerTextures? = null - data["properties"]?.listCast()?.let { + data["properties"]?.toJsonList()?.let { for (property in it) { check(property is Map<*, *>) when (val name = property["name"]) { diff --git a/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTexture.kt b/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTexture.kt index fc88e6ea8..3b207ece7 100644 --- a/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTexture.kt +++ b/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTexture.kt @@ -1,9 +1,9 @@ package de.bixilon.minosoft.data.player.properties.textures import com.fasterxml.jackson.annotation.JsonIgnore +import de.bixilon.kutil.url.URLUtil.checkWeb import de.bixilon.minosoft.assets.util.FileAssetsUtil import de.bixilon.minosoft.assets.util.FileUtil -import de.bixilon.minosoft.util.KUtil.check import java.net.URL open class PlayerTexture( @@ -14,7 +14,7 @@ open class PlayerTexture( private set init { - url.check() + url.checkWeb() check(urlMatches(url, ALLOWED_DOMAINS) && !urlMatches(url, BLOCKED_DOMAINS)) { "URL hostname is not allowed!" } } diff --git a/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTextures.kt b/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTextures.kt index bfb3b1d8b..734f58b73 100644 --- a/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTextures.kt +++ b/src/main/java/de/bixilon/minosoft/data/player/properties/textures/PlayerTextures.kt @@ -2,8 +2,8 @@ package de.bixilon.minosoft.data.player.properties.textures import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.module.kotlin.convertValue -import de.bixilon.minosoft.util.KUtil.toLong -import de.bixilon.minosoft.util.Util +import de.bixilon.kutil.primitive.LongUtil.toLong +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import de.bixilon.minosoft.util.YggdrasilUtil import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast @@ -28,7 +28,7 @@ class PlayerTextures( val textures = json["textures"]?.compoundCast() return PlayerTextures( name = json["profileName"]?.toString(), - uuid = json["profileId"]?.toString()?.let { Util.getUUIDFromString(it) }, + uuid = json["profileId"]?.toString()?.toUUID(), date = json["timestamp"]?.toLong()?.let { Date(it) }, skin = textures?.get("SKIN")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) }, cape = textures?.get("CAPE")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) }, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt b/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt index 29e46bce9..038c9cd05 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt @@ -15,10 +15,10 @@ package de.bixilon.minosoft.data.registries import com.google.gson.JsonArray import com.google.gson.JsonPrimitive +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.gui.rendering.util.VecUtil.getMinDistanceDirection -import de.bixilon.minosoft.util.KUtil.toInt import glm_.vec3.Vec3d import glm_.vec3.Vec3t diff --git a/src/main/java/de/bixilon/minosoft/data/registries/biomes/Biome.kt b/src/main/java/de/bixilon/minosoft/data/registries/biomes/Biome.kt index 652f378ad..87dbae2b1 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/biomes/Biome.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/biomes/Biome.kt @@ -13,8 +13,9 @@ package de.bixilon.minosoft.data.registries.biomes import de.bixilon.kutil.cast.CastUtil.nullCast -import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.math.MMath.clamp +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem @@ -24,7 +25,6 @@ import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.tint.TintManager import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil.toInt import java.util.* data class Biome( @@ -63,10 +63,10 @@ data class Biome( check(registries != null) { "Registries is null!" } return Biome( resourceLocation = resourceLocation, - depth = data["depth"]?.unsafeCast() ?: 0.0f, - scale = data["scale"]?.unsafeCast() ?: 0.0f, - temperature = data["temperature"]?.unsafeCast() ?: 0.0f, - downfall = data["downfall"]?.unsafeCast() ?: 0.0f, + depth = data["depth"]?.toFloat() ?: 0.0f, + scale = data["scale"]?.toFloat() ?: 0.0f, + temperature = data["temperature"]?.toFloat() ?: 0.0f, + downfall = data["downfall"]?.toFloat() ?: 0.0f, waterColor = TintManager.getJsonColor(data["water_color"]?.toInt() ?: 0), waterFogColor = TintManager.getJsonColor(data["water_fog_color"]?.toInt() ?: 0), category = registries.biomeCategoryRegistry[data["category"]?.toInt() ?: -1] ?: DEFAULT_CATEGORY, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/BlockState.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/BlockState.kt index edeab54a5..5a3cc880b 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/BlockState.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/BlockState.kt @@ -13,6 +13,9 @@ package de.bixilon.minosoft.data.registries.blocks import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.VoxelShape import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties @@ -20,8 +23,6 @@ import de.bixilon.minosoft.data.registries.blocks.types.Block import de.bixilon.minosoft.data.registries.materials.Material import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.gui.rendering.models.baked.block.BakedBlockModel -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import java.util.* @@ -136,15 +137,15 @@ data class BlockState( collisionShape = collisionShape, occlusionShape = occlusionShape, outlineShape = outlineShape, - hardness = data["hardness"]?.unsafeCast() ?: 1.0f, + hardness = data["hardness"]?.toFloat() ?: 1.0f, requiresTool = data["requires_tool"]?.toBoolean() ?: material.soft, breakSoundEvent = data["break_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, stepSoundEvent = data["step_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, placeSoundEvent = data["place_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, hitSoundEvent = data["hit_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, fallSoundEvent = data["fall_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] }, - soundEventVolume = data["sound_type_volume"]?.unsafeCast() ?: 1.0f, - soundEventPitch = data["sound_type_pitch"]?.unsafeCast() ?: 1.0f, + soundEventVolume = data["sound_type_volume"]?.toFloat() ?: 1.0f, + soundEventPitch = data["sound_type_pitch"]?.toFloat() ?: 1.0f, ) } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityType.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityType.kt index 42cfd4fa5..51269ebff 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityType.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/entites/BlockEntityType.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.data.registries.blocks.entites +import de.bixilon.kutil.json.JsonUtil.toJsonList import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.block.BlockEntityFactory import de.bixilon.minosoft.data.entities.block.DefaultBlockEntityMetaDataFactory @@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.listCast data class BlockEntityType( override val resourceLocation: ResourceLocation, @@ -42,7 +42,7 @@ data class BlockEntityType( val blocks: MutableSet = mutableSetOf() - for (block in data["blocks"]?.listCast()!!) { + for (block in data["blocks"]?.toJsonList()!!) { blocks += registries.blockRegistry[block] ?: continue } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/BooleanBlockPropertiesSerializer.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/BooleanBlockPropertiesSerializer.kt index 3fdbc06f3..ecebe5123 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/BooleanBlockPropertiesSerializer.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/BooleanBlockPropertiesSerializer.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.data.registries.blocks.properties.serializer -import de.bixilon.minosoft.util.KUtil.toBoolean +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean object BooleanBlockPropertiesSerializer : BlockPropertiesSerializer { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/IntBlockPropertiesSerializer.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/IntBlockPropertiesSerializer.kt index bb1933b6f..20d121177 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/IntBlockPropertiesSerializer.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/properties/serializer/IntBlockPropertiesSerializer.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.data.registries.blocks.properties.serializer -import de.bixilon.minosoft.util.KUtil.toInt +import de.bixilon.kutil.primitive.IntUtil.toInt object IntBlockPropertiesSerializer : BlockPropertiesSerializer { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/Block.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/Block.kt index 1eefbcf5e..413c540f4 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/Block.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/Block.kt @@ -14,6 +14,10 @@ package de.bixilon.minosoft.data.registries.blocks.types import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.json.JsonUtil.asJsonObject +import de.bixilon.kutil.primitive.DoubleUtil.toDouble +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.inventory.ItemStack @@ -34,9 +38,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.tint.TintProvider import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.mapCast -import de.bixilon.minosoft.util.KUtil.toDouble -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import glm_.vec3.Vec3i import kotlin.random.Random @@ -46,7 +47,7 @@ open class Block( registries: Registries, data: Map, ) : RegistryItem() { - open val explosionResistance: Float = data["explosion_resistance"]?.unsafeCast() ?: 0.0f + open val explosionResistance: Float = data["explosion_resistance"]?.toFloat() ?: 0.0f open val randomOffsetType: RandomOffsetTypes? = data["offset_type"].nullCast()?.let { RandomOffsetTypes[it] } open val tint: ResourceLocation? = data["tint"].nullCast()?.let { ResourceLocation(it) } open var blockEntityType: BlockEntityType? = null @@ -119,7 +120,7 @@ open class Block( val properties: MutableMap> = mutableMapOf() val states: MutableSet = mutableSetOf() - for ((stateId, stateJson) in data["states"]?.mapCast()!!) { + for ((stateId, stateJson) in data["states"].asJsonObject()) { check(stateJson is Map<*, *>) { "Not a state element!" } val state = BlockState.deserialize(block, registries, stateJson.asCompound()) registries.blockStateRegistry[stateId.toInt()] = state diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/CampfireBlock.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/CampfireBlock.kt index 2eec370a3..fe2b592fe 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/CampfireBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/CampfireBlock.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.data.registries.blocks.types +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.registries.ResourceLocation @@ -29,8 +31,6 @@ import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.la import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontalPlus import de.bixilon.minosoft.gui.rendering.util.VecUtil.noise import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance -import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3 import glm_.vec3.Vec3d diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/wall/LeverBlock.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/wall/LeverBlock.kt index c904592a8..d5ee315a3 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/wall/LeverBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/wall/LeverBlock.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.data.registries.blocks.types.wall +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands @@ -28,7 +29,6 @@ import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.dust.DustParticle import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance import glm_.vec3.Vec3d import glm_.vec3.Vec3i import kotlin.random.Random diff --git a/src/main/java/de/bixilon/minosoft/data/registries/dimension/DimensionProperties.kt b/src/main/java/de/bixilon/minosoft/data/registries/dimension/DimensionProperties.kt index 3827dd707..7a19c1d85 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/dimension/DimensionProperties.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/dimension/DimensionProperties.kt @@ -1,12 +1,12 @@ package de.bixilon.minosoft.data.registries.dimension import de.bixilon.kutil.cast.CastUtil.nullCast -import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.util.VecUtil import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get data class DimensionProperties( @@ -59,7 +59,7 @@ data class DimensionProperties( return DimensionProperties( piglinSafe = data["piglin_safe"]?.toBoolean() ?: false, natural = data["natural"]?.toBoolean() ?: false, - ambientLight = data["ambient_light"]?.unsafeCast() ?: 0.0f, + ambientLight = data["ambient_light"]?.toFloat() ?: 0.0f, infiniBurn = ResourceLocation(data["infiniburn"].nullCast() ?: "infiniburn_overworld"), respawnAnchorWorks = data["respawn_anchor_works"]?.toBoolean() ?: false, hasSkyLight = data["has_skylight", "has_sky_light"]?.toBoolean() ?: false, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/DefaultStatusEffectAttributes.kt b/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/DefaultStatusEffectAttributes.kt index 951b89df4..9335786d2 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/DefaultStatusEffectAttributes.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/DefaultStatusEffectAttributes.kt @@ -13,8 +13,9 @@ package de.bixilon.minosoft.data.registries.effects.attributes -import de.bixilon.minosoft.util.KUtil.asUUID +import de.bixilon.kutil.uuid.UUIDUtil.toUUID + object DefaultStatusEffectAttributes { - val SPRINT_SPEED_BOOST = EntityAttributeModifier("Sprinting speed boost", "662A6B8D-DA3E-4C1C-8813-96EA6097278D".asUUID(), 0.30000001192092896, StatusEffectOperations.MULTIPLY_TOTAL) + val SPRINT_SPEED_BOOST = EntityAttributeModifier("Sprinting speed boost", "662A6B8D-DA3E-4C1C-8813-96EA6097278D".toUUID(), 0.30000001192092896, StatusEffectOperations.MULTIPLY_TOTAL) } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/EntityAttributeModifier.kt b/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/EntityAttributeModifier.kt index da3a6f6b2..78edfdbd5 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/EntityAttributeModifier.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/effects/attributes/EntityAttributeModifier.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.data.registries.effects.attributes import de.bixilon.kutil.cast.CastUtil.unsafeCast -import de.bixilon.minosoft.util.Util +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import java.util.* data class EntityAttributeModifier( @@ -30,7 +30,7 @@ data class EntityAttributeModifier( fun deserialize(data: Map): EntityAttributeModifier { return EntityAttributeModifier( name = data["name"].unsafeCast(), - uuid = Util.getUUIDFromString(data["uuid"].unsafeCast()), + uuid = data["uuid"].toString().toUUID(), amount = data["amount"].unsafeCast(), operation = StatusEffectOperations[data["operation"].unsafeCast()], ) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/entities/EntityType.kt b/src/main/java/de/bixilon/minosoft/data/registries/entities/EntityType.kt index 3a84560e7..b72375981 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/entities/EntityType.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/entities/EntityType.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.registries.entities import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.DefaultEntityFactories import de.bixilon.minosoft.data.entities.EntityMetaDataFields import de.bixilon.minosoft.data.entities.EntityRotation @@ -28,7 +29,6 @@ import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationD import de.bixilon.minosoft.data.registries.registries.registry.Translatable import de.bixilon.minosoft.datafixer.EntityAttributeFixer.fix import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import glm_.vec3.Vec3d diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt index 5fc0d1150..4179bee45 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/lava/LavaFluid.kt @@ -13,7 +13,8 @@ package de.bixilon.minosoft.data.registries.fluid.lava -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.registries.ResourceLocation @@ -30,7 +31,6 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3d import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt b/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt index 9f1481ac7..f44a49778 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/fluid/water/WaterFluid.kt @@ -13,7 +13,8 @@ package de.bixilon.minosoft.data.registries.fluid.water -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.random.RandomUtil.chance import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState @@ -33,7 +34,6 @@ import de.bixilon.minosoft.gui.rendering.tint.WaterTintProvider import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.chance import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3d import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/data/registries/inventory/CreativeModeTab.kt b/src/main/java/de/bixilon/minosoft/data/registries/inventory/CreativeModeTab.kt index 988b64ff1..3367fc195 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/inventory/CreativeModeTab.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/inventory/CreativeModeTab.kt @@ -13,10 +13,10 @@ package de.bixilon.minosoft.data.registries.inventory import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.registry.IdDeserializer import de.bixilon.minosoft.data.registries.registries.registry.RegistryFakeEnumerable -import de.bixilon.minosoft.util.KUtil.toBoolean data class CreativeModeTab( override val name: String, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/FoodItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/FoodItem.kt index 0ce3bac96..7693f3b2f 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/FoodItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/FoodItem.kt @@ -13,7 +13,10 @@ package de.bixilon.minosoft.data.registries.items -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands @@ -22,9 +25,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar.HotbarHungerElement import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toFloat -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound open class FoodItem( diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/Item.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/Item.kt index 38f48ed0b..3582369f7 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/Item.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/Item.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.data.registries.items import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.Rarities import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands @@ -45,8 +47,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.camera.target.targets.EntityTarget import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation open class Item( diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/SpawnEggItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/SpawnEggItem.kt index ea68b15fb..bcc09525f 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/SpawnEggItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/SpawnEggItem.kt @@ -13,11 +13,11 @@ package de.bixilon.minosoft.data.registries.items +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.entities.EntityType import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor -import de.bixilon.minosoft.util.KUtil.toInt open class SpawnEggItem( resourceLocation: ResourceLocation, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/armor/ArmorItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/armor/ArmorItem.kt index 232846627..0863585ea 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/armor/ArmorItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/armor/ArmorItem.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.data.registries.items.armor import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.FloatUtil.toFloat import de.bixilon.minosoft.data.inventory.InventorySlots import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.items.Item @@ -24,8 +25,8 @@ open class ArmorItem( registries: Registries, data: Map, ) : Item(resourceLocation, registries, data) { - val protection = data["defense"].unsafeCast() - val toughness = data["toughness"].unsafeCast() + val protection = data["defense"].toFloat() + val toughness = data["toughness"].toFloat() val equipmentSlot = data["equipment_slot"].unsafeCast().let { InventorySlots.EquipmentSlots[it] } - val knockbackResistance = data["knockback_resistance"]?.unsafeCast() ?: 0.0f + val knockbackResistance = data["knockback_resistance"]?.toFloat() ?: 0.0f } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/armor/HorseArmorItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/armor/HorseArmorItem.kt index 7e94d6e71..daf48ac06 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/armor/HorseArmorItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/armor/HorseArmorItem.kt @@ -14,10 +14,10 @@ package de.bixilon.minosoft.data.registries.items.armor import de.bixilon.kutil.cast.CastUtil.nullCast +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.items.Item import de.bixilon.minosoft.data.registries.registries.Registries -import de.bixilon.minosoft.util.KUtil.toInt open class HorseArmorItem( resourceLocation: ResourceLocation, diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/AxeItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/AxeItem.kt index 45f1fd643..3d7505b1e 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/AxeItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/AxeItem.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.data.registries.items.tools +import de.bixilon.kutil.json.JsonUtil.toJsonObject +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands import de.bixilon.minosoft.data.registries.ResourceLocation @@ -21,8 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.mapCast -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation open class AxeItem( @@ -31,7 +31,7 @@ open class AxeItem( data: Map, ) : MiningToolItem(resourceLocation, registries, data) { override val diggableTag: ResourceLocation = AXE_MINEABLE_TAG - val strippableBlocks: Map? = data["strippables_blocks"]?.mapCast()?.let { + val strippableBlocks: Map? = data["strippables_blocks"]?.toJsonObject()?.let { val entries: MutableMap = mutableMapOf() for ((origin, target) in it) { entries[registries.blockRegistry[origin.toInt()]] = registries.blockRegistry[target]!! diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/HoeItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/HoeItem.kt index b6d236d2b..ccafde5fd 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/HoeItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/HoeItem.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.data.registries.items.tools +import de.bixilon.kutil.json.JsonUtil.toJsonObject +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands @@ -24,8 +26,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.mapCast -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation open class HoeItem( @@ -34,7 +34,7 @@ open class HoeItem( data: Map, ) : MiningToolItem(resourceLocation, registries, data) { override val diggableTag: ResourceLocation = HOE_MINEABLE_TAG - val tillableBlockStates: Map? = data["tillables_block_states"]?.mapCast()?.let { + val tillableBlockStates: Map? = data["tillables_block_states"]?.toJsonObject()?.let { val entries: MutableMap = mutableMapOf() for ((origin, target) in it) { entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!! diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/MiningToolItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/MiningToolItem.kt index b76c70237..1176cb259 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/MiningToolItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/MiningToolItem.kt @@ -13,7 +13,8 @@ package de.bixilon.minosoft.data.registries.items.tools -import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.json.JsonUtil.toJsonList +import de.bixilon.kutil.primitive.FloatUtil.toFloat import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState @@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.play.TagsS2CP -import de.bixilon.minosoft.util.KUtil.listCast import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3i @@ -31,14 +31,14 @@ abstract class MiningToolItem( registries: Registries, data: Map, ) : ToolItem(resourceLocation, registries, data) { - val diggableBlocks: Set? = data["diggable_blocks"]?.listCast()?.let { + val diggableBlocks: Set? = data["diggable_blocks"]?.toJsonList()?.let { val entries: MutableList = mutableListOf() for (id in it) { entries += registries.blockRegistry[id]!! } entries.toSet() } - override val attackDamage: Float = data["attack_damage"]?.unsafeCast() ?: 1.0f + override val attackDamage: Float = data["attack_damage"]?.toFloat() ?: 1.0f abstract val diggableTag: ResourceLocation? diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ShovelItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ShovelItem.kt index 1ecd20c52..b0312dcb7 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ShovelItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ShovelItem.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.data.registries.items.tools +import de.bixilon.kutil.json.JsonUtil.toJsonObject +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.player.Hands @@ -24,8 +26,6 @@ import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget import de.bixilon.minosoft.gui.rendering.input.interaction.InteractionResults import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil.mapCast -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation open class ShovelItem( @@ -34,7 +34,7 @@ open class ShovelItem( data: Map, ) : MiningToolItem(resourceLocation, registries, data) { override val diggableTag: ResourceLocation = SHOVEL_MINEABLE_TAG - val flattenableBlockStates: Map? = data["flattenables_block_states"]?.mapCast()?.let { + val flattenableBlockStates: Map? = data["flattenables_block_states"]?.toJsonObject()?.let { val entries: MutableMap = mutableMapOf() for ((origin, target) in it) { entries[registries.blockRegistry[origin.toInt()]] = registries.blockStateRegistry[target]!! diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt index 2f8c274f8..e689c4813 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.data.registries.items.tools -import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.FloatUtil.toFloat import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.blocks.BlockState @@ -27,7 +27,7 @@ open class SwordItem( registries: Registries, data: Map, ) : ToolItem(resourceLocation, registries, data) { - override val attackDamage = data["attack_damage"]?.unsafeCast() ?: -1.0f + override val attackDamage = data["attack_damage"]?.toFloat() ?: -1.0f override fun getMiningSpeedMultiplier(connection: PlayConnection, blockState: BlockState, itemStack: ItemStack): Float { if (blockState.block.resourceLocation == MinecraftBlocks.COBWEB) { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ToolItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ToolItem.kt index ef718c034..ac66f085c 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ToolItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/ToolItem.kt @@ -13,11 +13,11 @@ package de.bixilon.minosoft.data.registries.items.tools -import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.items.Item import de.bixilon.minosoft.data.registries.registries.Registries -import de.bixilon.minosoft.util.KUtil.toInt open class ToolItem( @@ -26,8 +26,8 @@ open class ToolItem( data: Map, ) : Item(resourceLocation, registries, data) { val durability = data["uses"]?.toInt() ?: 1 - val speed = data["speed"]?.unsafeCast() ?: 1.0f - open val attackDamage = data["attack_damage_bonus"]?.unsafeCast() ?: 1.0f + val speed = data["speed"]?.toFloat() ?: 1.0f + open val attackDamage = data["attack_damage_bonus"]?.toFloat() ?: 1.0f val miningLevel = data["level"]?.toInt() ?: 1 val enchantmentValue = data["enchantment_value"]?.toInt() ?: 1 } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/materials/Material.kt b/src/main/java/de/bixilon/minosoft/data/registries/materials/Material.kt index 0583ae568..0690f0070 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/materials/Material.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/materials/Material.kt @@ -13,14 +13,14 @@ package de.bixilon.minosoft.data.registries.materials import de.bixilon.kutil.cast.CastUtil.nullCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationDeserializer import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.tint.TintManager -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import java.util.* data class Material( diff --git a/src/main/java/de/bixilon/minosoft/data/registries/particle/ParticleType.kt b/src/main/java/de/bixilon/minosoft/data/registries/particle/ParticleType.kt index 6f91ba072..77fbd3765 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/particle/ParticleType.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/particle/ParticleType.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.data.registries.particle +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.particle.data.ParticleData import de.bixilon.minosoft.data.registries.registries.Registries @@ -21,7 +22,6 @@ import de.bixilon.minosoft.gui.rendering.particle.DefaultParticleFactory import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory import de.bixilon.minosoft.gui.rendering.particle.types.Particle import de.bixilon.minosoft.gui.rendering.textures.Texture -import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt index f18564038..cdcb1ffcf 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/Registries.kt @@ -47,8 +47,6 @@ import de.bixilon.minosoft.data.registries.versions.Version import de.bixilon.minosoft.protocol.packets.c2s.play.EntityActionC2SP import de.bixilon.minosoft.protocol.packets.s2c.play.EntityAnimationS2CP import de.bixilon.minosoft.protocol.packets.s2c.play.title.TitleS2CF -import de.bixilon.minosoft.util.KUtil.listCast -import de.bixilon.minosoft.util.KUtil.mapCast import de.bixilon.minosoft.util.collections.Clearable import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import java.lang.reflect.Field @@ -146,9 +144,9 @@ class Registries { loadEnumRegistry(version, pixlyzerData["entity_actions"], entityActionsRegistry, DefaultRegistries.ENTITY_ACTIONS_REGISTRY) // id stuff - biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.mapCast(), this, BiomeCategory) - biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.mapCast(), this, BiomePrecipitation) - creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.mapCast(), this, CreativeModeTab) + biomeCategoryRegistry.initialize(pixlyzerData["biome_categories"]?.unsafeCast(), this, BiomeCategory) + biomePrecipitationRegistry.initialize(pixlyzerData["biome_precipitations"]?.unsafeCast(), this, BiomePrecipitation) + creativeModeTabRegistry.initialize(pixlyzerData["creative_inventory_tab"]?.unsafeCast(), this, CreativeModeTab) // id resource location stuff containerTypeRegistry.rawInitialize(pixlyzerData["container_types"]?.compoundCast(), this, ContainerType, alternative = DefaultRegistries.CONTAINER_TYPE_REGISTRY.forVersion(version)) @@ -187,7 +185,7 @@ class Registries { private fun loadShapes(pixlyzerData: Map?) { pixlyzerData ?: return val aabbs = loadAABBs(pixlyzerData["aabbs"].nullCast()!!) - loadVoxelShapes(pixlyzerData["shapes"]?.listCast()!!, aabbs) + loadVoxelShapes(pixlyzerData["shapes"].unsafeCast(), aabbs) } private fun loadVoxelShapes(pixlyzerData: Collection, aabbs: List) { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/FakeEnumRegistry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/FakeEnumRegistry.kt index b4bcd94e5..e6ac89d21 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/FakeEnumRegistry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/FakeEnumRegistry.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.data.registries.registries.registry +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.registries.Registries -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.collections.Clearable import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt index c198cef3a..bc12dd389 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt @@ -15,11 +15,11 @@ package de.bixilon.minosoft.data.registries.registries.registry import com.google.gson.JsonElement import com.google.gson.JsonPrimitive +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.MultiResourceLocationAble import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.ResourceLocationAble import de.bixilon.minosoft.data.registries.registries.Registries -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt index 967f90b14..1ac7e2245 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/RegistryItem.kt @@ -13,9 +13,9 @@ package de.bixilon.minosoft.data.registries.registries.registry +import de.bixilon.kutil.reflection.ReflectionUtil.setValue import de.bixilon.minosoft.data.registries.ResourceLocationAble import de.bixilon.minosoft.data.registries.registries.Registries -import de.bixilon.minosoft.util.KUtil.setValue import kotlin.reflect.KProperty import kotlin.reflect.jvm.javaField diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/ResourceLocationRegistry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/ResourceLocationRegistry.kt index 663ba4aa8..c8cc1b0ff 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/ResourceLocationRegistry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/ResourceLocationRegistry.kt @@ -1,7 +1,7 @@ package de.bixilon.minosoft.data.registries.registries.registry +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap class ResourceLocationRegistry( diff --git a/src/main/java/de/bixilon/minosoft/data/registries/versions/Version.kt b/src/main/java/de/bixilon/minosoft/data/registries/versions/Version.kt index f0a99a73b..b6718a5f6 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/versions/Version.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/versions/Version.kt @@ -1,6 +1,6 @@ package de.bixilon.minosoft.data.registries.versions -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile import de.bixilon.minosoft.data.registries.registries.Registries import de.bixilon.minosoft.data.registries.registries.RegistriesLoader diff --git a/src/main/java/de/bixilon/minosoft/data/registries/versions/Versions.kt b/src/main/java/de/bixilon/minosoft/data/registries/versions/Versions.kt index b00a1e9b1..fa3e05def 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/versions/Versions.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/versions/Versions.kt @@ -1,11 +1,11 @@ package de.bixilon.minosoft.data.registries.versions import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.assets.util.FileUtil.readJson import de.bixilon.minosoft.protocol.protocol.PacketTypes import de.bixilon.minosoft.protocol.protocol.ProtocolStates -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation object Versions : Iterable { diff --git a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt index 335e14e1e..7dc1da9ec 100644 --- a/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt +++ b/src/main/java/de/bixilon/minosoft/data/scoreboard/ScoreboardManager.kt @@ -14,7 +14,7 @@ package de.bixilon.minosoft.data.scoreboard import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.modding.event.events.scoreboard.ScoreTeamChangeEvent import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection diff --git a/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt b/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt index b0530ea2c..46828770d 100644 --- a/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt +++ b/src/main/java/de/bixilon/minosoft/data/text/BaseComponent.kt @@ -14,14 +14,14 @@ package de.bixilon.minosoft.data.text import de.bixilon.kutil.cast.CastUtil.nullCast +import de.bixilon.kutil.json.JsonUtil.toJsonList +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.language.Translator import de.bixilon.minosoft.data.text.ChatCode.Companion.toColor import de.bixilon.minosoft.data.text.events.ClickEvent import de.bixilon.minosoft.data.text.events.HoverEvent import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.util.KUtil.format -import de.bixilon.minosoft.util.KUtil.listCast -import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get @@ -139,7 +139,7 @@ class BaseComponent : ChatComponent { var currentText = "" fun parseExtra() { - json["extra"]?.listCast()?.let { + json["extra"].toJsonList()?.let { for (data in it) { parts += ChatComponent.of(data, translator, currentParent) } @@ -184,11 +184,11 @@ class BaseComponent : ChatComponent { parseExtra() - json["translate"]?.nullCast()?.let { + json["translate"]?.toString()?.let { val with: MutableList = mutableListOf() - json["with"]?.listCast()?.let { withArray -> + json["with"].toJsonList()?.let { withArray -> for (part in withArray) { - with.add(part) + with.add(part ?: continue) } } parts += translator?.translate(it.toResourceLocation(), currentParent, *with.toTypedArray()) ?: ChatComponent.of(json["with"], translator, currentParent) diff --git a/src/main/java/de/bixilon/minosoft/data/text/events/data/EntityHoverData.kt b/src/main/java/de/bixilon/minosoft/data/text/events/data/EntityHoverData.kt index c4bb42def..4ab0441de 100644 --- a/src/main/java/de/bixilon/minosoft/data/text/events/data/EntityHoverData.kt +++ b/src/main/java/de/bixilon/minosoft/data/text/events/data/EntityHoverData.kt @@ -14,9 +14,9 @@ package de.bixilon.minosoft.data.text.events.data import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.text.ChatComponent -import de.bixilon.minosoft.util.KUtil.asUUID import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.json.Jackson import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound @@ -44,7 +44,7 @@ class EntityHoverData( type = it.toResourceLocation() } - return EntityHoverData(json["id"].unsafeCast().asUUID(), type, ChatComponent.of(json["name"])) + return EntityHoverData(json["id"].toString().toUUID(), type, ChatComponent.of(json["name"])) } } } diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/XStartOnFirstThreadWarning.kt b/src/main/java/de/bixilon/minosoft/gui/eros/XStartOnFirstThreadWarning.kt index 47c2d5f6c..ec76eaf69 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/XStartOnFirstThreadWarning.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/XStartOnFirstThreadWarning.kt @@ -1,6 +1,6 @@ package de.bixilon.minosoft.gui.eros -import de.bixilon.kutil.general.OSUtil +import de.bixilon.kutil.os.OSUtil import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileManager import de.bixilon.minosoft.gui.eros.dialog.SimpleErosWarningDialog import de.bixilon.minosoft.terminal.RunConfiguration diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/crash/ErosCrashReport.kt b/src/main/java/de/bixilon/minosoft/gui/eros/crash/ErosCrashReport.kt index 16c0f112f..f9c34ac5b 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/crash/ErosCrashReport.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/crash/ErosCrashReport.kt @@ -15,7 +15,14 @@ package de.bixilon.minosoft.gui.eros.crash import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet import de.bixilon.kutil.concurrent.pool.DefaultThreadPool -import de.bixilon.kutil.general.OSUtil +import de.bixilon.kutil.exception.ExceptionUtil.toStackTrace +import de.bixilon.kutil.exception.ExceptionUtil.tryCatch +import de.bixilon.kutil.file.FileUtil.slashPath +import de.bixilon.kutil.file.watcher.FileWatcherService +import de.bixilon.kutil.os.OSUtil +import de.bixilon.kutil.time.TimeUtil +import de.bixilon.kutil.unit.UnitFormatter.formatBytes +import de.bixilon.kutil.unsafe.UnsafeUtil import de.bixilon.minosoft.ShutdownReasons import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController import de.bixilon.minosoft.gui.eros.util.JavaFXInitializer @@ -23,12 +30,10 @@ import de.bixilon.minosoft.gui.eros.util.JavaFXUtil import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.terminal.CommandLineArguments import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.* -import de.bixilon.minosoft.util.KUtil.slashPath -import de.bixilon.minosoft.util.KUtil.toStackTrace -import de.bixilon.minosoft.util.KUtil.tryCatch -import de.bixilon.minosoft.util.UnitFormatter.formatBytes -import de.bixilon.minosoft.util.filewatcher.FileWatcherService +import de.bixilon.minosoft.util.GitInfo +import de.bixilon.minosoft.util.ShutdownManager +import de.bixilon.minosoft.util.SystemInformation +import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -79,7 +84,7 @@ class ErosCrashReport : JavaFXWindowController() { } fun hardCrash() { - KUtil.hardCrash() + UnsafeUtil.hardCrash() } companion object { @@ -143,7 +148,7 @@ class ErosCrashReport : JavaFXWindowController() { val crashReportFolder = File(RunConfiguration.HOME_DIRECTORY + "crash-reports") crashReportFolder.mkdirs() - crashReportPath = "${crashReportFolder.slashPath}/crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(KUtil.time)}.txt" + crashReportPath = "${crashReportFolder.slashPath}/crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(TimeUtil.time)}.txt" val stream = FileOutputStream(crashReportPath) @@ -197,7 +202,7 @@ class ErosCrashReport : JavaFXWindowController() { ----- Minosoft Crash Report ----- // ${CRASH_REPORT_COMMENTS.random()} -Time: ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(KUtil.time)} (${KUtil.time / 1000L}) +Time: ${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(TimeUtil.time)} (${TimeUtil.time / 1000L}) Crash thread: ${Thread.currentThread().name} ${exception?.toStackTrace() ?: ""} diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ErosErrorReport.kt b/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ErosErrorReport.kt index 6567ebd8b..b375d521e 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ErosErrorReport.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ErosErrorReport.kt @@ -13,6 +13,8 @@ package de.bixilon.minosoft.gui.eros.dialog +import de.bixilon.kutil.exception.ExceptionUtil.toStackTrace +import de.bixilon.kutil.reflection.ReflectionUtil.realName import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.data.text.TranslatableComponents.GENERAL_IGNORE import de.bixilon.minosoft.gui.eros.controller.DialogController @@ -21,9 +23,7 @@ import de.bixilon.minosoft.gui.eros.util.JavaFXUtil import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.ctext import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.text import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil.realName import de.bixilon.minosoft.util.KUtil.toResourceLocation -import de.bixilon.minosoft.util.KUtil.toStackTrace import javafx.fxml.FXML import javafx.scene.control.Button import javafx.scene.control.TextArea diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ServerModifyDialog.kt b/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ServerModifyDialog.kt index fb014efd1..3734882fe 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ServerModifyDialog.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/dialog/ServerModifyDialog.kt @@ -14,7 +14,7 @@ package de.bixilon.minosoft.gui.eros.dialog import de.bixilon.kutil.concurrent.pool.DefaultThreadPool -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/account/AccountController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/account/AccountController.kt index aa6d97823..19a3a681e 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/account/AccountController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/account/AccountController.kt @@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.eros.main.account import de.bixilon.kutil.collections.CollectionUtil.extend import de.bixilon.kutil.concurrent.pool.DefaultThreadPool -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.config.profile.delegate.watcher.entry.MapProfileDelegateWatcher.Companion.profileWatchMapFX import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt index 22e1e6a73..f5be43b84 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/ServerListController.kt @@ -14,8 +14,9 @@ package de.bixilon.minosoft.gui.eros.main.play.server import de.bixilon.kutil.concurrent.pool.DefaultThreadPool -import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.latch.CountUpAndDownLatch +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.primitive.IntUtil.thousands import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.config.profile.ConnectionProfiles import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX @@ -48,7 +49,6 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection import de.bixilon.minosoft.protocol.network.connection.status.StatusConnectionStates import de.bixilon.minosoft.util.DNSUtil -import de.bixilon.minosoft.util.KUtil.thousands import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.delegate.watcher.entry.ListDelegateWatcher.Companion.watchListFX import javafx.fxml.FXML diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/card/ServerCardController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/card/ServerCardController.kt index 04fef9f26..fec3b028f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/card/ServerCardController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/card/ServerCardController.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.gui.eros.main.play.server.card import de.bixilon.kutil.concurrent.pool.DefaultThreadPool +import de.bixilon.kutil.primitive.IntUtil.thousands import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.text.ChatComponent @@ -31,7 +32,6 @@ import de.bixilon.minosoft.modding.event.events.connection.status.ServerStatusRe import de.bixilon.minosoft.modding.event.events.connection.status.StatusConnectionStateChangeEvent import de.bixilon.minosoft.modding.event.events.connection.status.StatusPongReceiveEvent import de.bixilon.minosoft.util.KUtil.text -import de.bixilon.minosoft.util.KUtil.thousands import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.PixelImageView import javafx.fxml.FXML diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/profiles/ProfilesListController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/profiles/ProfilesListController.kt index c0211bea8..22a1e46bd 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/profiles/ProfilesListController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/profiles/ProfilesListController.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.eros.main.profiles -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.config.profile.ProfileManager import de.bixilon.minosoft.config.profile.profiles.Profile diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt index 66e8054cf..cda03a6dd 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.gui.eros.util import com.sun.javafx.util.WeakReferenceQueue import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.reflection.ReflectionUtil.setValue import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchFX import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager @@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.eros.controller.EmbeddedJavaFXController import de.bixilon.minosoft.gui.eros.controller.JavaFXController import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController -import de.bixilon.minosoft.util.KUtil.setValue import javafx.application.HostServices import javafx.application.Platform import javafx.css.StyleableProperty diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/RenderWindow.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/RenderWindow.kt index af3b16713..fd103eefb 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/RenderWindow.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/RenderWindow.kt @@ -15,9 +15,11 @@ package de.bixilon.minosoft.gui.rendering import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.concurrent.queue.Queue import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.math.MMath.round10 +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -60,10 +62,8 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.play.PositionAndRotationS2CP import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.toResourceLocation -import de.bixilon.minosoft.util.Queue import de.bixilon.minosoft.util.Stopwatch import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels @@ -123,7 +123,7 @@ class RenderWindow( var tickCount = 0L - var lastTickTimer = KUtil.time + var lastTickTimer = TimeUtil.time private var initialPositionReceived = false @@ -319,7 +319,7 @@ class RenderWindow( renderSystem.clear(IntegratedBufferTypes.COLOR_BUFFER, IntegratedBufferTypes.DEPTH_BUFFER) - val currentTickTime = KUtil.time + val currentTickTime = TimeUtil.time if (currentTickTime - this.lastTickTimer > ProtocolDefinition.TICK_TIME) { tickCount++ // inputHandler.currentKeyConsumer?.tick(tickCount) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/frustum/Frustum.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/frustum/Frustum.kt index 939c77698..9baadd37a 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/frustum/Frustum.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/frustum/Frustum.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.gui.rendering.camera.frustum +import de.bixilon.kutil.collections.CollectionUtil.get import de.bixilon.kutil.enums.EnumUtil import de.bixilon.kutil.enums.ValuesEnum import de.bixilon.minosoft.data.registries.AABB @@ -21,7 +22,6 @@ import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.camera.MatrixHandler import de.bixilon.minosoft.gui.rendering.util.VecUtil.of import de.bixilon.minosoft.gui.rendering.util.vec.vec4.Vec4Util.dot -import de.bixilon.minosoft.util.KUtil.get import glm_.mat3x3.Mat3 import glm_.vec2.Vec2i import glm_.vec3.Vec3 diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/target/TargetHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/target/TargetHandler.kt index cca8e9b0d..fa2f00d23 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/target/TargetHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/target/TargetHandler.kt @@ -1,6 +1,6 @@ package de.bixilon.minosoft.gui.rendering.camera.target -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.registries.VoxelShape import de.bixilon.minosoft.data.registries.blocks.types.FluidBlock diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/font/CharData.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/font/CharData.kt index 6cc5ab71d..4dd54b350 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/font/CharData.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/font/CharData.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.gui.rendering.font -import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.math.MMath.ceil +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.PreChatFormattingCodes import de.bixilon.minosoft.data.text.RGBColor diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/font/FontLoader.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/font/FontLoader.kt index de67fce3d..21ebf25a3 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/font/FontLoader.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/font/FontLoader.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.gui.rendering.font +import de.bixilon.kutil.check.CheckUtil.check import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.data.registries.factory.DefaultFactory import de.bixilon.minosoft.gui.rendering.RenderWindow @@ -20,7 +21,6 @@ import de.bixilon.minosoft.gui.rendering.font.provider.BitmapFontProvider import de.bixilon.minosoft.gui.rendering.font.provider.FontProvider import de.bixilon.minosoft.gui.rendering.font.provider.FontProviderFactory import de.bixilon.minosoft.gui.rendering.font.provider.LegacyUnicodeFontProvider -import de.bixilon.minosoft.util.KUtil.check import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/font/provider/BitmapFontProvider.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/font/provider/BitmapFontProvider.kt index 93bcb1edf..f2cc11d6d 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/font/provider/BitmapFontProvider.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/font/provider/BitmapFontProvider.kt @@ -14,14 +14,14 @@ package de.bixilon.minosoft.gui.rendering.font.provider import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.json.JsonUtil.asJsonList +import de.bixilon.kutil.primitive.DoubleUtil.toDouble import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.font.CharData import de.bixilon.minosoft.gui.rendering.font.Font import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture -import de.bixilon.minosoft.util.KUtil.asList -import de.bixilon.minosoft.util.KUtil.toDouble import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec2.Vec2 @@ -35,7 +35,7 @@ class BitmapFontProvider( private set init { - val charRows = data["chars"].asList() + val charRows = data["chars"].asJsonList() val texture = renderWindow.textureManager.staticTextures.createTexture(data["file"].toResourceLocation().texture()) texture.load(renderWindow.connection.assetsManager) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/items/ItemElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/items/ItemElement.kt index cf47c1cb6..5c379c631 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/items/ItemElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/items/ItemElement.kt @@ -1,6 +1,6 @@ package de.bixilon.minosoft.gui.rendering.gui.elements.items -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.registries.items.block.BlockItem import de.bixilon.minosoft.data.text.ChatColors diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/FadingTextElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/FadingTextElement.kt index 2e5f9a069..8c2cc1b31 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/FadingTextElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/FadingTextElement.kt @@ -13,7 +13,8 @@ package de.bixilon.minosoft.gui.rendering.gui.elements.text -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.gui.elements.Element @@ -23,7 +24,6 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY -import de.bixilon.minosoft.util.KUtil import glm_.vec2.Vec2i class FadingTextElement( @@ -44,7 +44,7 @@ class FadingTextElement( if (hidden || !super.cacheEnabled) { return false } - val time = KUtil.time + val time = TimeUtil.time return (time >= fadeInEndTime) && (time < fadeOutStartTime) } set(value) { @@ -78,7 +78,7 @@ class FadingTextElement( } fun show() { - val time = KUtil.time + val time = TimeUtil.time if (time in (fadeInEndTime + 1) until fadeOutStartTime) { fadeOutStartTime = time + stayTime } else { @@ -95,7 +95,7 @@ class FadingTextElement( return } // ToDo: Eventually fade out when fading in - val time = KUtil.time + val time = TimeUtil.time fadeInStartTime = -1L fadeInEndTime = -1L fadeOutStartTime = time @@ -110,7 +110,7 @@ class FadingTextElement( if (hidden) { return false } - val hidden = KUtil.time > fadeOutEndTime + val hidden = TimeUtil.time > fadeOutEndTime if (this.hidden != hidden) { this.hidden = hidden return true @@ -122,7 +122,7 @@ class FadingTextElement( if (hidden) { return 0 } - val time = KUtil.time + val time = TimeUtil.time if (time > fadeOutEndTime) { return 0 } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextElement.kt index 5564ae1e0..c5927c6c8 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextElement.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.gui.elements.text -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.RenderConstants diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextFlowElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextFlowElement.kt index 73b98fc0a..2b156b412 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextFlowElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/elements/text/TextFlowElement.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.gui.rendering.gui.elements.text import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.gui.rendering.RenderConstants import de.bixilon.minosoft.gui.rendering.font.Font @@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.max -import de.bixilon.minosoft.util.KUtil import glm_.vec2.Vec2i class TextFlowElement( @@ -68,7 +68,7 @@ class TextFlowElement( val visibleLines: MutableList = mutableListOf() val maxSize = maxSize val maxLines = maxSize.y / Font.TOTAL_CHAR_HEIGHT - val currentTime = KUtil.time + val currentTime = TimeUtil.time var textSize = Vec2i.EMPTY @@ -126,7 +126,7 @@ class TextFlowElement( operator fun plusAssign(message: ChatComponent) = addMessage(message) private fun checkExpiredLines() { - val currentTime = KUtil.time + val currentTime = TimeUtil.time for (line in visibleLines) { if (currentTime - line.text.addTime > messageExpireTime) { @@ -142,7 +142,7 @@ class TextFlowElement( private data class TextFlowTextElement( val text: ChatComponent, - val addTime: Long = KUtil.time, + val addTime: Long = TimeUtil.time, ) private data class TextFlowLineElement( diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDRenderer.kt index 87497354a..c3604ab55 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDRenderer.kt @@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -47,7 +48,6 @@ import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.glm import glm_.mat4x4.Mat4 @@ -154,7 +154,7 @@ class HUDRenderer( override fun drawOther() { val hudElements = hudElements.toSynchronizedMap().values - val time = KUtil.time + val time = TimeUtil.time if (time - lastTickTime > ProtocolDefinition.TICK_TIME) { for (element in hudElements) { if (!element.enabled) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/atlas/HUDAtlasManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/atlas/HUDAtlasManager.kt index 822c432fc..78ae51538 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/atlas/HUDAtlasManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/atlas/HUDAtlasManager.kt @@ -13,12 +13,13 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.atlas +import de.bixilon.kutil.json.JsonUtil.asJsonObject +import de.bixilon.kutil.json.JsonUtil.toJsonObject +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.gui.hud.HUDRenderer import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2i -import de.bixilon.minosoft.util.KUtil.mapCast -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec2.Vec2 import glm_.vec2.Vec2i @@ -49,16 +50,16 @@ class HUDAtlasManager(private val hudRenderer: HUDRenderer) { // can not find version that matches our one continue } - val versionData = versions[versionToUse.toString()]?.mapCast()!! + val versionData = versions[versionToUse.toString()].asJsonObject() val texture = hudRenderer.renderWindow.textureManager.staticTextures.createTexture(versionData["texture"].toResourceLocation()) val start = versionData["start"].toVec2i() val end = versionData["end"].toVec2i() val slots: MutableMap = mutableMapOf() - versionData["slots"]?.mapCast()?.let { + versionData["slots"].toJsonObject()?.let { for ((slotId, slotData) in it) { - val slot = slotData.mapCast()!! + val slot = slotData.asJsonObject() slots[slotId.toInt()] = Vec2iBinding( start = slot["start"].toVec2i(), end = slot["end"].toVec2i(), diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarHealthElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarHealthElement.kt index bd4074911..63e709585 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarHealthElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarHealthElement.kt @@ -14,8 +14,8 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar import de.bixilon.kutil.cast.CastUtil.unsafeCast -import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.math.MMath.round10 +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames import de.bixilon.minosoft.data.text.BaseComponent diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarVehicleHealthElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarVehicleHealthElement.kt index 92ab9cd15..eea001a09 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarVehicleHealthElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/hotbar/HotbarVehicleHealthElement.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.hotbar -import de.bixilon.kutil.general.BooleanUtil.decide import de.bixilon.kutil.math.MMath.round10 +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.entities.entities.LivingEntity import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames import de.bixilon.minosoft.data.text.ChatComponent diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt index 42466ef17..7ec068c13 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.other import de.bixilon.kutil.math.MMath.round10 +import de.bixilon.kutil.unit.UnitFormatter.formatBytes import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -42,14 +43,12 @@ import de.bixilon.minosoft.gui.rendering.world.WorldRenderer import de.bixilon.minosoft.modding.event.events.DifficultyChangeEvent import de.bixilon.minosoft.modding.event.events.TimeChangeEvent import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker -import de.bixilon.minosoft.modding.loading.ModLoader import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.util.GitInfo import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.SystemInformation -import de.bixilon.minosoft.util.UnitFormatter.formatBytes import glm_.vec2.Vec2i import glm_.vec4.Vec4i import kotlin.math.abs @@ -223,7 +222,7 @@ class DebugHUDElement(hudRenderer: HUDRenderer) : LayoutedHUDElement layout += LineSpacerElement(hudRenderer) - layout += TextElement(hudRenderer, "Mods ${ModLoader.MOD_MAP.size}x loaded, ${connection.size}x listeners", HorizontalAlignments.RIGHT) + layout += TextElement(hudRenderer, "${connection.size}x listeners", HorizontalAlignments.RIGHT) layout += LineSpacerElement(hudRenderer) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt index 5ab514569..3b44f152b 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt @@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.tab import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.gui.elements.Element import de.bixilon.minosoft.gui.rendering.gui.elements.HorizontalAlignments diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt index 86f4c0355..c50890324 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -31,7 +32,6 @@ import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.packets.c2s.play.ArmSwingC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.pow import glm_.vec3.Vec3i @@ -77,7 +77,7 @@ class BreakInteractionHandler( } private fun swingArm() { - val currentTime = KUtil.time + val currentTime = TimeUtil.time if (currentTime - lastSwing <= ProtocolDefinition.TICK_TIME) { return } @@ -86,7 +86,7 @@ class BreakInteractionHandler( } private fun checkBreaking(isKeyDown: Boolean, deltaTime: Double): Boolean { - val currentTime = KUtil.time + val currentTime = TimeUtil.time if (!isKeyDown) { creativeLastHoldBreakTime = 0L diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt index 74ed21d84..f420890b9 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt @@ -1,12 +1,12 @@ package de.bixilon.minosoft.gui.rendering.input.interaction import de.bixilon.kutil.rate.RateLimiter +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.protocol.packets.c2s.play.PlayerActionC2SP -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation class DropInteractionManager( @@ -33,7 +33,7 @@ class DropInteractionManager( fun dropItem(stack: Boolean) { - val time = KUtil.time + val time = TimeUtil.time val type = if (stack) { connection.player.inventory.getHotbarSlot()?.count = 0 PlayerActionC2SP.Actions.DROP_ITEM_STACK diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt index 8efc345d4..4fa66e963 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -30,7 +31,6 @@ import de.bixilon.minosoft.protocol.packets.c2s.play.PositionAndRotationC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractAtC2SP import de.bixilon.minosoft.protocol.packets.c2s.play.entity.interact.EntityInteractC2SP import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.vec3.Vec3 @@ -217,7 +217,7 @@ class InteractInteractionHandler( } fun draw(delta: Double) { - val time = KUtil.time + val time = TimeUtil.time if (time - lastUse < ProtocolDefinition.TICK_TIME) { return } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt index 0205b0322..bc4e301de 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.gui.rendering.input.key +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.StaticConfiguration import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding @@ -30,7 +31,6 @@ import de.bixilon.minosoft.gui.rendering.system.window.CursorModes import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.format import de.bixilon.minosoft.util.KUtil.toResourceLocation @@ -110,7 +110,7 @@ class RenderWindowInputHandler( return } } - val currentTime = KUtil.time + val currentTime = TimeUtil.time if (keyDown) { keysDown += keyCode @@ -206,7 +206,7 @@ class RenderWindowInputHandler( } // Log.debug("Changing $resourceLocation because of $keyCode -> $thisKeyBindingDown") - pair.lastChange = KUtil.time + pair.lastChange = TimeUtil.time for (callback in pair.callback) { callback(thisKeyBindingDown) } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/UnbakedBlockModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/UnbakedBlockModel.kt index 4c38aa526..aa8b0d759 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/UnbakedBlockModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/UnbakedBlockModel.kt @@ -13,9 +13,9 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.models.baked.BakedModel -import de.bixilon.minosoft.util.KUtil.toBoolean class UnbakedBlockModel( parent: GenericUnbakedModel?, diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedBlockStateModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedBlockStateModel.kt index 22994de4d..f6e2e0a47 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedBlockStateModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedBlockStateModel.kt @@ -14,6 +14,8 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked.block import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.gui.rendering.RenderWindow @@ -31,8 +33,6 @@ import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.rad import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.toVec2iN import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.rotateAssign -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import glm_.func.rad import glm_.vec2.Vec2 diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElement.kt index ac39a6e16..d1a678e2e 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElement.kt @@ -14,9 +14,9 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked.element import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3 -import de.bixilon.minosoft.util.KUtil.toBoolean import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import glm_.vec3.Vec3 diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementFace.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementFace.kt index 13c51ee8a..a09fe5add 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementFace.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementFace.kt @@ -13,9 +13,9 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked.element +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.gui.rendering.models.unbaked.element.UnbakedElement.Companion.BLOCK_RESOLUTION -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast import glm_.vec2.Vec2 diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementRotation.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementRotation.kt index 8814273c5..5816ec796 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementRotation.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/element/UnbakedElementRotation.kt @@ -13,10 +13,10 @@ package de.bixilon.minosoft.gui.rendering.models.unbaked.element +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.FloatUtil.toFloat import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3 -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toFloat import glm_.vec3.Vec3 data class UnbakedElementRotation( diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt index 14b16e744..97a464caf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/ParticleRenderer.kt @@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.particle import de.bixilon.kutil.concurrent.lock.ReadWriteLock import de.bixilon.kutil.concurrent.time.TimeWorker import de.bixilon.kutil.concurrent.time.TimeWorkerTask +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.* @@ -31,7 +32,6 @@ import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates.Companion.disconnected import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.chunk.ChunkUtil.isInViewDistance import de.bixilon.minosoft.util.collections.floats.DirectArrayFloatList import glm_.mat4x4.Mat4 @@ -151,7 +151,7 @@ class ParticleRenderer( particlesLock.acquire() try { - val time = KUtil.time + val time = TimeUtil.time for (particle in particles) { if (!particle.chunkPosition.isInViewDistance(particleViewDistance, cameraPosition)) { particle.dead = true @@ -219,7 +219,7 @@ class ParticleRenderer( particlesLock.acquire() - val time = KUtil.time + val time = TimeUtil.time for (particle in particles) { if (particle.dead) { continue diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt index 735ed276d..d9fcabfc4 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.gui.rendering.particle.types +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.physics.PhysicsEntity import de.bixilon.minosoft.data.registries.AABB import de.bixilon.minosoft.data.registries.particle.data.ParticleData @@ -25,7 +26,6 @@ import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import glm_.vec2.Vec2i import glm_.vec3.Vec3 import glm_.vec3.Vec3d @@ -58,7 +58,7 @@ abstract class Particle( // moving val cameraPosition: Vec3d - get() = getCameraPosition(KUtil.time) + get() = getCameraPosition(TimeUtil.time) final override val velocity: Vec3d = Vec3d(velocity) var previousPosition = position diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/AudioPlayer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/AudioPlayer.kt index f6c02015f..660418875 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/AudioPlayer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/AudioPlayer.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.gui.rendering.sound import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList +import de.bixilon.kutil.concurrent.queue.Queue import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch import de.bixilon.minosoft.data.registries.ResourceLocation @@ -26,7 +27,6 @@ import de.bixilon.minosoft.gui.rendering.sound.sounds.Sound import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.Queue import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/SoundSource.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/SoundSource.kt index 893ebf10e..709fa1f36 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/SoundSource.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/SoundSource.kt @@ -13,9 +13,9 @@ package de.bixilon.minosoft.gui.rendering.sound +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.gui.rendering.sound.sounds.Sound import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY -import de.bixilon.minosoft.util.KUtil import glm_.vec3.Vec3 import org.lwjgl.openal.AL10.* @@ -78,10 +78,10 @@ class SoundSource { get() = alGetSourcei(source, AL_SOURCE_STATE) == AL_PLAYING val available: Boolean - get() = !isPlaying || KUtil.time - playTime > (sound?.data?.length ?: 0L) // ToDo: Allow pause + get() = !isPlaying || TimeUtil.time - playTime > (sound?.data?.length ?: 0L) // ToDo: Allow pause fun play() { - playTime = KUtil.time + playTime = TimeUtil.time alSourcePlay(source) } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/Sound.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/Sound.kt index c08fde8c3..7b198c4cf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/Sound.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/Sound.kt @@ -13,12 +13,12 @@ package de.bixilon.minosoft.gui.rendering.sound.sounds +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.FloatUtil.toFloat +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.gui.rendering.sound.SoundUtil.sound -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toFloat -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/SoundType.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/SoundType.kt index 27e1c4a37..8f1881d35 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/SoundType.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sound/sounds/SoundType.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.gui.rendering.sound.sounds +import de.bixilon.kutil.json.JsonUtil.asJsonList import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.asList import de.bixilon.minosoft.util.KUtil.toResourceLocation import java.util.* import kotlin.math.abs @@ -58,8 +58,8 @@ data class SoundType( val subtitle = data["subtitle"]?.toResourceLocation() val sounds: MutableSet = mutableSetOf() - for (soundData in data["sounds"].asList()) { - sounds += Sound(soundEvent, soundData) + for (soundData in data["sounds"].asJsonList()) { + sounds += Sound(soundEvent, soundData ?: continue) } return SoundType( soundEvent = soundEvent, diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/stats/ExperimentalRenderStats.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/stats/ExperimentalRenderStats.kt index dde792a14..48ba87f01 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/stats/ExperimentalRenderStats.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/stats/ExperimentalRenderStats.kt @@ -15,8 +15,8 @@ package de.bixilon.minosoft.gui.rendering.stats import de.bixilon.kutil.avg.Average import de.bixilon.kutil.avg.LongAverage -import de.bixilon.minosoft.util.KUtil -import de.bixilon.minosoft.util.KUtil.nextFloat +import de.bixilon.kutil.random.RandomUtil.nextFloat +import de.bixilon.kutil.time.TimeUtil import glm_.func.common.clamp import kotlin.random.Random @@ -31,7 +31,7 @@ class ExperimentalRenderStats : AbstractRenderStats { private var lastSmoothFPSCalculationTime = 0L override var smoothAvgFPS: Double = 0.0 get() { - val time = KUtil.time + val time = TimeUtil.time if (time - lastSmoothFPSCalculationTime > 100) { field = avgFPS lastSmoothFPSCalculationTime = time diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/stats/RenderStats.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/stats/RenderStats.kt index 05819ce96..664510365 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/stats/RenderStats.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/stats/RenderStats.kt @@ -14,7 +14,7 @@ package de.bixilon.minosoft.gui.rendering.stats import de.bixilon.kutil.avg.LongAverage -import de.bixilon.minosoft.util.KUtil +import de.bixilon.kutil.time.TimeUtil class RenderStats : AbstractRenderStats { override val avgFrameTime: LongAverage = LongAverage(1L * 1000000000L) // 1 second * SECOND_SCALE @@ -27,7 +27,7 @@ class RenderStats : AbstractRenderStats { override var smoothAvgFPS: Double = 0.0 get() { - val time = KUtil.time + val time = TimeUtil.time if (time - lastSmoothFPSCalculationTime > 100) { field = avgFPS lastSmoothFPSCalculationTime = time diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/system/opengl/texture/OpenGLSpriteAnimator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/system/opengl/texture/OpenGLSpriteAnimator.kt index 60b8897b5..33dba3871 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/system/opengl/texture/OpenGLSpriteAnimator.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/system/opengl/texture/OpenGLSpriteAnimator.kt @@ -13,11 +13,11 @@ package de.bixilon.minosoft.gui.rendering.system.opengl.texture +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.gui.rendering.system.base.shader.Shader import de.bixilon.minosoft.gui.rendering.system.base.texture.SpriteAnimator import de.bixilon.minosoft.gui.rendering.system.opengl.buffer.uniform.IntOpenGLUniformBuffer import de.bixilon.minosoft.gui.rendering.textures.TextureAnimation -import de.bixilon.minosoft.util.KUtil class OpenGLSpriteAnimator : SpriteAnimator { val animations: MutableList = mutableListOf() @@ -38,7 +38,7 @@ class OpenGLSpriteAnimator : SpriteAnimator { } private fun recalculate() { - val currentTime = KUtil.time + val currentTime = TimeUtil.time val deltaLastDraw = currentTime - lastRun lastRun = currentTime diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/system/window/GLFWWindow.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/system/window/GLFWWindow.kt index 35d951851..15f427d8f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/system/window/GLFWWindow.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/system/window/GLFWWindow.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.system.window -import de.bixilon.kutil.general.OSUtil +import de.bixilon.kutil.os.OSUtil import de.bixilon.minosoft.config.key.KeyCodes import de.bixilon.minosoft.config.profile.profiles.rendering.RenderingProfile import de.bixilon.minosoft.gui.rendering.RenderWindow diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/textures/properties/AnimationProperties.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/textures/properties/AnimationProperties.kt index c989261d6..21a9959bf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/textures/properties/AnimationProperties.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/textures/properties/AnimationProperties.kt @@ -15,8 +15,8 @@ package de.bixilon.minosoft.gui.rendering.textures.properties import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture -import de.bixilon.minosoft.util.KUtil.toInt data class AnimationProperties( val interpolate: Boolean = false, diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt index dd25c9470..7d7bfe045 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt @@ -1,11 +1,11 @@ package de.bixilon.minosoft.gui.rendering.tint import de.bixilon.kutil.math.MMath.clamp +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.biomes.Biome import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties import de.bixilon.minosoft.data.text.RGBColor -import de.bixilon.minosoft.util.KUtil.toInt object RedstoneWireTintCalculator : TintProvider { private val COLORS = IntArray(16) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt index 0bcd01970..07bed7b78 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt @@ -1,9 +1,9 @@ package de.bixilon.minosoft.gui.rendering.tint +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.registries.biomes.Biome import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties -import de.bixilon.minosoft.util.KUtil.toInt object StemTintCalculator : TintProvider { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/ScreenshotTaker.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/ScreenshotTaker.kt index 253391cfe..25b155adf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/ScreenshotTaker.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/ScreenshotTaker.kt @@ -16,6 +16,8 @@ package de.bixilon.minosoft.gui.rendering.util import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable +import de.bixilon.kutil.file.FileUtil.slashPath +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.text.BaseComponent import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.TextComponent @@ -24,8 +26,6 @@ import de.bixilon.minosoft.data.text.events.HoverEvent import de.bixilon.minosoft.gui.rendering.RenderWindow import de.bixilon.minosoft.gui.rendering.system.base.PixelTypes import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil -import de.bixilon.minosoft.util.KUtil.slashPath import de.bixilon.minosoft.util.Util import glm_.vec2.Vec2i import java.awt.image.BufferedImage @@ -43,7 +43,7 @@ class ScreenshotTaker( val height = renderWindow.window.size.y val buffer = renderWindow.renderSystem.readPixels(Vec2i(0, 0), Vec2i(width, height), PixelTypes.RGBA) - val basePath = "${RunConfiguration.HOME_DIRECTORY}/screenshots/${renderWindow.connection.address.hostname}/${DATE_FORMATTER.format(KUtil.time)}" + val basePath = "${RunConfiguration.HOME_DIRECTORY}/screenshots/${renderWindow.connection.address.hostname}/${DATE_FORMATTER.format(TimeUtil.time)}" var path = "$basePath.png" var i = 1 while (File(path).exists()) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2Util.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2Util.kt index 5c45b5b43..263fabd49 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2Util.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2Util.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.util.vec.vec2 -import de.bixilon.minosoft.util.KUtil.toFloat +import de.bixilon.kutil.primitive.FloatUtil.toFloat import glm_.vec2.Vec2 object Vec2Util { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2dUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2dUtil.kt index ac57f617b..19afecbcf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2dUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2dUtil.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.util.vec.vec2 -import de.bixilon.minosoft.util.KUtil.toDouble +import de.bixilon.kutil.primitive.DoubleUtil.toDouble import glm_.vec2.Vec2d object Vec2dUtil { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2iUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2iUtil.kt index 3e75aba4e..8fcd9408f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2iUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec2/Vec2iUtil.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.gui.rendering.util.vec.vec2 +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.Axes -import de.bixilon.minosoft.util.KUtil.toInt import glm_.func.rad import glm_.vec2.Vec2 import glm_.vec2.Vec2i diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3Util.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3Util.kt index 71b301470..a2023a0e8 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3Util.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3Util.kt @@ -13,9 +13,9 @@ package de.bixilon.minosoft.gui.rendering.util.vec.vec3 +import de.bixilon.kutil.primitive.FloatUtil.toFloat import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.text.RGBColor -import de.bixilon.minosoft.util.KUtil.toFloat import glm_.func.cos import glm_.func.sin import glm_.vec2.Vec2 diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3iUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3iUtil.kt index de5967ad4..60385bc85 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3iUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/vec/vec3/Vec3iUtil.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.util.vec.vec3 -import de.bixilon.minosoft.util.KUtil.toInt +import de.bixilon.kutil.primitive.IntUtil.toInt import glm_.vec3.Vec3 import glm_.vec3.Vec3i diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt index 4de3fd598..aae485cdb 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt @@ -21,6 +21,7 @@ import de.bixilon.kutil.concurrent.pool.DefaultThreadPool import de.bixilon.kutil.concurrent.pool.ThreadPool.Priorities.HIGH import de.bixilon.kutil.concurrent.pool.ThreadPool.Priorities.LOW import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.key.KeyAction import de.bixilon.minosoft.config.key.KeyBinding import de.bixilon.minosoft.config.key.KeyCodes @@ -66,7 +67,6 @@ import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnectionStates import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.chunk.ChunkUtil import de.bixilon.minosoft.util.chunk.ChunkUtil.isInViewDistance @@ -547,10 +547,10 @@ class WorldRenderer( } var addedMeshes = 0 - val time = KUtil.time + val time = TimeUtil.time val maxTime = if (connection.player.velocity.empty) 50L else 20L // If the player is still, then we can load more chunks (to not cause lags) - while ((KUtil.time - time < maxTime) && meshesToLoad.isNotEmpty()) { + while ((TimeUtil.time - time < maxTime) && meshesToLoad.isNotEmpty()) { val item = meshesToLoad.removeAt(0) val mesh = item.mesh ?: continue @@ -584,10 +584,10 @@ class WorldRenderer( return } - val time = KUtil.time + val time = TimeUtil.time val maxTime = if (connection.player.velocity.empty) 50L else 20L // If the player is still, then we can load more chunks (to not cause lags) - while ((KUtil.time - time < maxTime) && meshesToUnload.isNotEmpty()) { + while ((TimeUtil.time - time < maxTime) && meshesToUnload.isNotEmpty()) { val mesh = meshesToUnload.removeAt(0) visible.removeMesh(mesh) mesh.unload() diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/preparer/GreedySectionPreparer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/preparer/GreedySectionPreparer.kt index 9c68ac516..841c065ad 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/preparer/GreedySectionPreparer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/preparer/GreedySectionPreparer.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.gui.rendering.world.preparer -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.direction.Directions import de.bixilon.minosoft.data.registries.blocks.BlockState import de.bixilon.minosoft.data.world.Chunk diff --git a/src/main/java/de/bixilon/minosoft/modding/MinosoftMod.java b/src/main/java/de/bixilon/minosoft/modding/MinosoftMod.java deleted file mode 100644 index f385c9475..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/MinosoftMod.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding; - -import de.bixilon.minosoft.modding.loading.ModInfo; -import de.bixilon.minosoft.modding.loading.ModPhases; - -@Deprecated -public abstract class MinosoftMod { - protected boolean enabled = true; - private ModInfo info; - - public boolean isEnabled() { - return this.enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public ModInfo getInfo() { - return this.info; - } - - public void setInfo(ModInfo info) { - if (this.info != null) { - throw new RuntimeException(String.format("Mod info already set %s vs %s", this.info, info)); - } - this.info = info; - } - - /** - * @param phase The current loading phase - * @return If the loading was successful. If not, the mod is getting disabled. - */ - public abstract boolean start(ModPhases phase); -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/LoadingInfo.java b/src/main/java/de/bixilon/minosoft/modding/loading/LoadingInfo.java deleted file mode 100644 index 8984e2832..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/LoadingInfo.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -public class LoadingInfo { - Priorities loadingPriority; - - public LoadingInfo(Priorities loadingPriority) { - this.loadingPriority = loadingPriority; - } - - public LoadingInfo() { - } - - public Priorities getLoadingPriority() { - return this.loadingPriority; - } - - public void setLoadingPriority(Priorities loadingPriority) { - this.loadingPriority = loadingPriority; - } -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModDependency.java b/src/main/java/de/bixilon/minosoft/modding/loading/ModDependency.java deleted file mode 100644 index 706264a7d..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModDependency.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import de.bixilon.minosoft.util.Util; - -import java.util.HashSet; -import java.util.UUID; - -public class ModDependency { - - private final UUID uuid; - private Integer versionMinimum; - private Integer versionMaximum; - - public ModDependency(UUID uuid, Integer versionMinimum, Integer versionMaximum) { - this.uuid = uuid; - this.versionMinimum = versionMinimum; - this.versionMaximum = versionMaximum; - } - - public ModDependency(UUID uuid) { - this.uuid = uuid; - } - - public static ModDependency serialize(JsonObject json) { - UUID uuid = Util.getUUIDFromString(json.get("uuid").getAsString()); - Integer versionMinimum = null; - Integer versionMaximum = null; - - if (json.has("version")) { - JsonObject version = json.getAsJsonObject("version"); - if (version.has("minimum")) { - versionMinimum = version.get("minimum").getAsInt(); - } - if (version.has("maximum")) { - versionMaximum = version.get("maximum").getAsInt(); - } - } - return new ModDependency(uuid, versionMinimum, versionMaximum); - } - - public static HashSet serializeDependencyArray(JsonArray json) { - HashSet result = new HashSet<>(); - json.forEach((jsonElement -> result.add(serialize(jsonElement.getAsJsonObject())))); - return result; - } - - public UUID getUUID() { - return this.uuid; - } - - public Integer getVersionMinimum() { - return this.versionMinimum; - } - - public Integer getVersionMaximum() { - return this.versionMaximum; - } - - @Override - public int hashCode() { - int result = this.uuid.hashCode(); - if (this.versionMinimum != null && this.versionMinimum > 0) { - result *= this.versionMinimum; - } - - if (this.versionMaximum != null && this.versionMaximum > 0) { - result *= this.versionMaximum; - } - return result; - } - - @Override - public boolean equals(Object obj) { - if (super.equals(obj)) { - return true; - } - if (hashCode() != obj.hashCode()) { - return false; - } - ModDependency their = (ModDependency) obj; - return getUUID().equals(their.getUUID()) && getVersionMaximum().equals(their.getVersionMaximum()) && getVersionMinimum().equals(their.getVersionMinimum()); - } - - @Override - public String toString() { - String result = this.uuid.toString(); - if (this.versionMinimum != null) { - result += " >" + this.versionMinimum; - } - if (this.versionMaximum != null) { - result += " <" + this.versionMaximum; - } - return result; - } -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModInfo.java b/src/main/java/de/bixilon/minosoft/modding/loading/ModInfo.java deleted file mode 100644 index a53d2ae19..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModInfo.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; - -import java.util.HashSet; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicInteger; - -public class ModInfo { - private final String versionName; - private final String name; - private final String[] authors; - private final int moddingAPIVersion; - private final String resourceNamespace; - private final String mainClass; - private final HashSet hardDependencies = new HashSet<>(); - private final HashSet softDependencies = new HashSet<>(); - private final ModVersionIdentifier modVersionIdentifier; - LoadingInfo loadingInfo; - - public ModInfo(JsonObject json) throws ModLoadingException { - this.modVersionIdentifier = ModVersionIdentifier.serialize(json); - this.versionName = json.get("version_name").getAsString(); - this.name = json.get("name").getAsString(); - JsonArray authors = json.get("authors").getAsJsonArray(); - this.authors = new String[authors.size()]; - AtomicInteger i = new AtomicInteger(); - authors.forEach((authorElement) -> this.authors[i.getAndIncrement()] = authorElement.getAsString()); - this.moddingAPIVersion = json.get("modding_api_version").getAsInt(); - if (this.moddingAPIVersion > ModLoader.CURRENT_MODDING_API_VERSION) { - throw new ModLoadingException(String.format("Mod was written with for a newer version of minosoft (moddingAPIVersion=%d, expected=%d)", this.moddingAPIVersion, ModLoader.CURRENT_MODDING_API_VERSION)); - } - this.resourceNamespace = json.get("resource_namespace").getAsString(); - this.mainClass = json.get("main_class").getAsString(); - if (json.has("loading")) { - JsonObject loading = json.getAsJsonObject("loading"); - this.loadingInfo = new LoadingInfo(); - if (loading.has("priority")) { - this.loadingInfo.setLoadingPriority(Priorities.valueOf(loading.get("priority").getAsString())); - } - } - if (json.has("dependencies")) { - JsonObject dependencies = json.getAsJsonObject("dependencies"); - if (dependencies.has("hard")) { - this.hardDependencies.addAll(ModDependency.serializeDependencyArray(dependencies.getAsJsonArray("hard"))); - } - if (dependencies.has("soft")) { - this.softDependencies.addAll(ModDependency.serializeDependencyArray(dependencies.getAsJsonArray("soft"))); - } - } - } - - public String[] getAuthors() { - return this.authors; - } - - public String getResourceNamespace() { - return this.resourceNamespace; - } - - public String getMainClass() { - return this.mainClass; - } - - public LoadingInfo getLoadingInfo() { - return this.loadingInfo; - } - - @Deprecated - public UUID getUUID() { - return this.modVersionIdentifier.getUUID(); - } - - @Deprecated - public int getVersionId() { - return this.modVersionIdentifier.getVersionId(); - } - - public ModVersionIdentifier getModVersionIdentifier() { - return this.modVersionIdentifier; - } - - public String getVersionName() { - return this.versionName; - } - - public String getName() { - return this.name; - } - - public HashSet getHardDependencies() { - return this.hardDependencies; - } - - public HashSet getSoftDependencies() { - return this.softDependencies; - } - - @Override - public String toString() { - return String.format("name=\"%s\", uuid=%s, versionName=\"%s\", versionId=%d", getName(), getUUID(), getVersionName(), getVersionId()); - } -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModLoader.java b/src/main/java/de/bixilon/minosoft/modding/loading/ModLoader.java deleted file mode 100644 index 24db19e9e..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModLoader.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -import de.bixilon.kutil.concurrent.pool.DefaultThreadPool; -import de.bixilon.kutil.latch.CountUpAndDownLatch; -import de.bixilon.minosoft.modding.MinosoftMod; -import de.bixilon.minosoft.terminal.RunConfiguration; -import de.bixilon.minosoft.util.KUtil; -import de.bixilon.minosoft.util.Util; -import de.bixilon.minosoft.util.logging.Log; -import de.bixilon.minosoft.util.logging.LogLevels; -import de.bixilon.minosoft.util.logging.LogMessageType; -import org.xeustechnologies.jcl.JarClassLoader; -import org.xeustechnologies.jcl.JclObjectFactory; - -import javax.annotation.Nullable; -import java.io.File; -import java.util.Map; -import java.util.TreeMap; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CountDownLatch; -import java.util.zip.ZipFile; - -@Deprecated -public class ModLoader { - public static final int CURRENT_MODDING_API_VERSION = 1; - public static final ConcurrentHashMap MOD_MAP = new ConcurrentHashMap<>(); - - public static void loadMods(CountUpAndDownLatch progress) throws Exception { - final long startTime = KUtil.INSTANCE.getTime(); - Log.log(LogMessageType.MOD_LOADING, LogLevels.INFO, () -> "Start loading mods..."); - - // load all jars, parse the mod.json - // sort the list and prioritize - // load all lists and dependencies async - File[] files = new File(RunConfiguration.INSTANCE.getHOME_DIRECTORY() + "mods").listFiles(); - if (files == null) { - // no mods to load - return; - } - CountDownLatch latch = new CountDownLatch(files.length); - for (File modFile : files) { - if (modFile.isDirectory()) { - continue; - } - DefaultThreadPool.INSTANCE.execute(() -> { - MinosoftMod mod = loadMod(progress, modFile); - if (mod != null) { - MOD_MAP.put(mod.getInfo().getModVersionIdentifier().getUUID(), mod); - } - latch.countDown(); - }); - } - latch.await(); - - if (MOD_MAP.isEmpty()) { - Log.log(LogMessageType.MOD_LOADING, LogLevels.INFO, () -> "No mods to load."); - return; - } - - progress.setCount(progress.getCount() + MOD_MAP.size() * ModPhases.values().length); // count * mod phases - - // check if all dependencies are available - modLoop: - for (Map.Entry modEntry : MOD_MAP.entrySet()) { - ModInfo currentModInfo = modEntry.getValue().getInfo(); - - for (ModDependency dependency : currentModInfo.getHardDependencies()) { - ModInfo info = getModInfoByUUID(dependency.getUUID()); - if (info == null) { - Log.warn("Could not satisfy mod dependency for mod %s (Requires %s)", modEntry.getValue().getInfo(), dependency.getUUID()); - MOD_MAP.remove(modEntry.getKey()); - continue modLoop; - } - if (dependency.getVersionMinimum() < info.getModVersionIdentifier().getVersionId()) { - Log.warn("Could not satisfy mod dependency for mod %s (Requires %s version > %d)", modEntry.getValue().getInfo(), dependency.getUUID(), dependency.getVersionMinimum()); - MOD_MAP.remove(modEntry.getKey()); - continue modLoop; - } - if (dependency.getVersionMaximum() > info.getModVersionIdentifier().getVersionId()) { - Log.warn("Could not satisfy mod dependency for mod %s (Requires %s version < %d)", modEntry.getValue().getInfo(), dependency.getUUID(), dependency.getVersionMaximum()); - MOD_MAP.remove(modEntry.getKey()); - continue modLoop; - } - } - for (ModDependency dependency : currentModInfo.getSoftDependencies()) { - ModInfo info = getModInfoByUUID(dependency.getUUID()); - if (info == null) { - Log.warn("Could not satisfy mod soft dependency for mod %s (Requires %s)", modEntry.getValue().getInfo(), dependency.getUUID()); - continue; - } - if (dependency.getVersionMinimum() < info.getModVersionIdentifier().getVersionId()) { - Log.warn("Could not satisfy mod dependency for mod %s (Requires %s version > %d)", modEntry.getValue().getInfo(), dependency.getUUID(), dependency.getVersionMinimum()); - continue; - } - if (dependency.getVersionMaximum() > info.getModVersionIdentifier().getVersionId()) { - Log.warn("Could not satisfy mod soft dependency for mod %s (Requires %s version < %d)", modEntry.getValue().getInfo(), dependency.getUUID(), dependency.getVersionMaximum()); - } - } - - } - - final TreeMap sortedModMap = new TreeMap<>((mod1UUID, mod2UUID) -> { - // ToDo: Load dependencies first - if (mod1UUID == null || mod2UUID == null) { - return 0; - } - return -(getLoadingPriorityOrDefault(MOD_MAP.get(mod2UUID).getInfo()).ordinal() - getLoadingPriorityOrDefault(MOD_MAP.get(mod1UUID).getInfo()).ordinal()); - }); - - sortedModMap.putAll(MOD_MAP); - - for (ModPhases phase : ModPhases.values()) { - Log.log(LogMessageType.MOD_LOADING, LogLevels.VERBOSE, () -> "Mod initializing started in " + phase); - CountDownLatch modLatch = new CountDownLatch(sortedModMap.size()); - for (Map.Entry entry : sortedModMap.entrySet()) { - DefaultThreadPool.INSTANCE.execute(() -> { - if (!entry.getValue().isEnabled()) { - modLatch.countDown(); - progress.dec(); - return; - } - Log.log(LogMessageType.MOD_LOADING, LogLevels.VERBOSE, () -> "Loading mod " + entry.getValue().getInfo() + "in " + phase); - try { - if (!entry.getValue().start(phase)) { - Log.log(LogMessageType.MOD_LOADING, LogLevels.WARN, () -> "Loading mod " + entry.getValue().getInfo() + "in " + phase + "failed!"); - } - } catch (Throwable e) { - e.printStackTrace(); - Log.log(LogMessageType.MOD_LOADING, LogLevels.WARN, () -> "Loading mod " + entry.getValue().getInfo() + "in " + phase + "failed!"); - entry.getValue().setEnabled(false); - } - modLatch.countDown(); - progress.dec(); - }); - } - modLatch.await(); - } - - for (Map.Entry entry : sortedModMap.entrySet()) { - if (entry.getValue().isEnabled()) { - // ToDo: Minosoft.EVENT_MANAGERS.add(entry.getValue().getEventManager()); - } else { - MOD_MAP.remove(entry.getKey()); - } - } - Log.log(LogMessageType.MOD_LOADING, LogLevels.INFO, () -> "Initialized " + sortedModMap.size() + " in " + (KUtil.INSTANCE.getTime() - startTime) + "!"); - } - - public static MinosoftMod loadMod(CountUpAndDownLatch progress, File file) { - MinosoftMod instance; - try { - Log.log(LogMessageType.MOD_LOADING, LogLevels.VERBOSE, () -> "Trying to load " + file.getAbsolutePath()); - progress.inc(); - ZipFile zipFile = new ZipFile(file); - ModInfo modInfo = new ModInfo(Util.readJsonFromZip("mod.json", zipFile)); - if (isModLoaded(modInfo)) { - Log.warn(String.format("Mod %s:%d (uuid=%s) is loaded multiple times! Skipping", modInfo.getName(), modInfo.getModVersionIdentifier().getVersionId(), modInfo.getModVersionIdentifier().getUUID())); - return null; - } - JarClassLoader jcl = new JarClassLoader(); - jcl.add(file.getAbsolutePath()); - JclObjectFactory factory = JclObjectFactory.getInstance(); - - instance = (MinosoftMod) factory.create(jcl, modInfo.getMainClass()); - instance.setInfo(modInfo); - Log.verbose(String.format("[MOD] Mod file loaded and added to classpath (%s)", modInfo)); - zipFile.close(); - } catch (Throwable e) { - instance = null; - e.printStackTrace(); - Log.log(LogMessageType.MOD_LOADING, LogLevels.WARN, () -> "Could not load " + file.getAbsolutePath()); - } - progress.dec(); // failed - return instance; - } - - private static Priorities getLoadingPriorityOrDefault(ModInfo info) { - if (info.getLoadingInfo() != null && info.getLoadingInfo().getLoadingPriority() != null) { - return info.getLoadingInfo().getLoadingPriority(); - } - return Priorities.NORMAL; - } - - public static boolean isModLoaded(ModInfo info) { - return MOD_MAP.containsKey(info.getModVersionIdentifier().getUUID()); - } - - @Nullable - public static MinosoftMod getModByUUID(UUID uuid) { - return MOD_MAP.get(uuid); - } - - @Nullable - public static ModInfo getModInfoByUUID(UUID uuid) { - MinosoftMod mod = getModByUUID(uuid); - if (mod == null) { - return null; - } - return mod.getInfo(); - } -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModLoadingException.java b/src/main/java/de/bixilon/minosoft/modding/loading/ModLoadingException.java deleted file mode 100644 index 8614e38d6..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModLoadingException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -public class ModLoadingException extends Exception { - - public ModLoadingException() { - } - - public ModLoadingException(String message) { - super(message); - } - - public ModLoadingException(String message, Throwable cause) { - super(message, cause); - } - - public ModLoadingException(Throwable cause) { - super(cause); - } - - public ModLoadingException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModPhases.java b/src/main/java/de/bixilon/minosoft/modding/loading/ModPhases.java deleted file mode 100644 index f9a21392e..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModPhases.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.modding.loading; - -public enum ModPhases { - BOOTING, - INITIALIZING, - LOADING, - STARTING, - STARTED -} diff --git a/src/main/java/de/bixilon/minosoft/modding/loading/ModVersionIdentifier.kt b/src/main/java/de/bixilon/minosoft/modding/loading/ModVersionIdentifier.kt deleted file mode 100644 index 6e554eb42..000000000 --- a/src/main/java/de/bixilon/minosoft/modding/loading/ModVersionIdentifier.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ -package de.bixilon.minosoft.modding.loading - -import com.google.gson.JsonObject -import de.bixilon.minosoft.util.Util -import java.util.* - -data class ModVersionIdentifier(val uUID: UUID, val versionId: Int) { - - override fun toString(): String { - return String.format("uuid=%s, versionId=%d", uUID, versionId) - } - - companion object { - @JvmStatic - fun serialize(json: JsonObject): ModVersionIdentifier { - return ModVersionIdentifier(Util.getUUIDFromString(json["uuid"].asString), json["versionId"].asInt) - } - } -} diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/c2s/login/EncryptionResponseC2SP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/c2s/login/EncryptionResponseC2SP.kt index 5141404a8..4ca547521 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/c2s/login/EncryptionResponseC2SP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/c2s/login/EncryptionResponseC2SP.kt @@ -12,10 +12,10 @@ */ package de.bixilon.minosoft.protocol.packets.c2s.login +import de.bixilon.kutil.base64.Base64Util.toBase64 import de.bixilon.minosoft.protocol.packets.c2s.PlayC2SPacket import de.bixilon.minosoft.protocol.protocol.CryptManager import de.bixilon.minosoft.protocol.protocol.PlayOutByteBuffer -import de.bixilon.minosoft.util.KUtil.toBase64 import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/EncryptionRequestS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/EncryptionRequestS2CP.kt index 18b6d923b..e3f19f143 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/EncryptionRequestS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/EncryptionRequestS2CP.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.login +import de.bixilon.kutil.base64.Base64Util.toBase64 import de.bixilon.minosoft.protocol.ErrorHandler import de.bixilon.minosoft.protocol.network.connection.Connection import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection @@ -19,7 +20,6 @@ import de.bixilon.minosoft.protocol.packets.c2s.login.EncryptionResponseC2SP import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.protocol.CryptManager import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer -import de.bixilon.minosoft.util.KUtil.toBase64 import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/LoginSuccessS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/LoginSuccessS2CP.kt index 1028a24ae..cf006d437 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/LoginSuccessS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/login/LoginSuccessS2CP.kt @@ -12,7 +12,7 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.login -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ChunkDataS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ChunkDataS2CP.kt index 03dbecbe5..97d1d9b81 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ChunkDataS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ChunkDataS2CP.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.play +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.entities.block.BlockEntity import de.bixilon.minosoft.data.world.ChunkData import de.bixilon.minosoft.data.world.biome.source.SpatialBiomeArray @@ -32,7 +33,6 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_9_4 import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_20W45A import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W03A import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W37A -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.chunk.ChunkUtil diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ExplosionS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ExplosionS2CP.kt index daf5ef8cc..ec07923ba 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ExplosionS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ExplosionS2CP.kt @@ -12,7 +12,7 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.play -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.modding.event.events.ExplosionEvent import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ItemCooldownSetS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ItemCooldownSetS2CP.kt index f7dee912e..b0954f072 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ItemCooldownSetS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/play/ItemCooldownSetS2CP.kt @@ -12,11 +12,11 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.play +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.data.abilities.ItemCooldown import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -26,7 +26,7 @@ class ItemCooldownSetS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() { val time = buffer.readVarInt() override fun handle(connection: PlayConnection) { - connection.player.itemCooldown[item] = ItemCooldown(KUtil.time, time) + connection.player.itemCooldown[item] = ItemCooldown(TimeUtil.time, time) } override fun log(reducedLog: Boolean) { diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/status/StatusPongS2CP.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/status/StatusPongS2CP.kt index 1a8cb613c..3a9ea863c 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/status/StatusPongS2CP.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/s2c/status/StatusPongS2CP.kt @@ -12,13 +12,13 @@ */ package de.bixilon.minosoft.protocol.packets.s2c.status +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.modding.event.EventInitiators import de.bixilon.minosoft.modding.event.events.connection.status.StatusPongReceiveEvent import de.bixilon.minosoft.protocol.network.connection.status.StatusConnection import de.bixilon.minosoft.protocol.network.connection.status.StatusConnectionStates import de.bixilon.minosoft.protocol.packets.s2c.StatusS2CPacket import de.bixilon.minosoft.protocol.protocol.InByteBuffer -import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType @@ -32,7 +32,7 @@ class StatusPongS2CP(buffer: InByteBuffer) : StatusS2CPacket() { Log.log(LogMessageType.NETWORK_PACKETS_IN, LogLevels.WARN) { "Unknown status pong (pingId=$pingId, expected=${pingQuery.pingId})" } // return ToDo: feather-rs is sending a wrong ping id back } - val latency = KUtil.time - pingQuery.time + val latency = TimeUtil.time - pingQuery.time connection.disconnect() // ToDo: Log.info(String.format("Server is running on version %s (versionId=%d, protocolId=%d), reconnecting...", connection.getVersion().getVersionName(), connection.getVersion().getVersionId(), connection.getVersion().getProtocolId())); val pongEvent = StatusPongReceiveEvent(connection, EventInitiators.SERVER, pingId, latency) diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt index 9705aa432..f3f8083fe 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.kt @@ -12,6 +12,7 @@ */ package de.bixilon.minosoft.protocol.protocol +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import de.bixilon.minosoft.data.commands.CommandArgumentNode import de.bixilon.minosoft.data.commands.CommandLiteralNode import de.bixilon.minosoft.data.commands.CommandNode @@ -262,7 +263,7 @@ open class InByteBuffer { } fun readUUIDString(): UUID { - return Util.getUUIDFromString(readString()) + return readString().toUUID() } fun readUUIDStringArray(length: Int = readVarInt()): Array { diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/PingQuery.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/PingQuery.kt index b74c6ab15..da4b5c352 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PingQuery.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PingQuery.kt @@ -12,10 +12,10 @@ */ package de.bixilon.minosoft.protocol.protocol -import de.bixilon.minosoft.util.KUtil +import de.bixilon.kutil.time.TimeUtil import java.util.concurrent.ThreadLocalRandom class PingQuery( val pingId: Long = ThreadLocalRandom.current().nextLong(), - val time: Long = KUtil.time, + val time: Long = TimeUtil.time, ) diff --git a/src/main/java/de/bixilon/minosoft/protocol/status/ServerStatus.kt b/src/main/java/de/bixilon/minosoft/protocol/status/ServerStatus.kt index 4a19e5c06..bea3dd8bc 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/status/ServerStatus.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/status/ServerStatus.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.protocol.status +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.data.text.ChatComponent -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import java.util.* diff --git a/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt b/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt index b1bd20b6f..587b6418f 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt +++ b/src/main/java/de/bixilon/minosoft/terminal/RunConfiguration.kt @@ -14,10 +14,10 @@ package de.bixilon.minosoft.terminal import com.google.common.base.StandardSystemProperty -import de.bixilon.kutil.general.OSUtil +import de.bixilon.kutil.file.FileUtil.slashPath +import de.bixilon.kutil.os.OSUtil import de.bixilon.minosoft.config.StaticConfiguration import de.bixilon.minosoft.data.registries.ResourceLocation -import de.bixilon.minosoft.util.KUtil.slashPath import java.io.File import java.lang.management.ManagementFactory diff --git a/src/main/java/de/bixilon/minosoft/util/GitInfo.kt b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt index 6161aec67..92a79a273 100644 --- a/src/main/java/de/bixilon/minosoft/util/GitInfo.kt +++ b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt @@ -14,13 +14,13 @@ package de.bixilon.minosoft.util import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.primitive.BooleanUtil.toBoolean +import de.bixilon.kutil.primitive.IntUtil.toInt import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil.toBoolean -import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType diff --git a/src/main/java/de/bixilon/minosoft/util/KUtil.kt b/src/main/java/de/bixilon/minosoft/util/KUtil.kt index 10c3fac12..8438cafbb 100644 --- a/src/main/java/de/bixilon/minosoft/util/KUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/KUtil.kt @@ -13,12 +13,12 @@ package de.bixilon.minosoft.util -import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide +import de.bixilon.kutil.reflection.ReflectionUtil.realName import de.bixilon.minosoft.data.entities.entities.Entity import de.bixilon.minosoft.data.inventory.ItemStack import de.bixilon.minosoft.data.registries.ResourceLocation @@ -34,24 +34,10 @@ import glm_.vec2.Vec2t import glm_.vec3.Vec3t import glm_.vec4.Vec4t import org.kamranzafar.jtar.TarHeader -import sun.misc.Unsafe -import java.io.* -import java.lang.reflect.Field -import java.net.URL -import java.nio.ByteBuffer -import java.time.Instant import java.util.* -import kotlin.random.Random object KUtil { - val UNSAFE: Unsafe - - init { - val unsafeField = Unsafe::class.java.getDeclaredField("theUnsafe") - unsafeField.isAccessible = true - UNSAFE = unsafeField[null] as Unsafe - } fun bitSetOf(long: Long): BitSet { return BitSet.valueOf(longArrayOf(long)) @@ -117,17 +103,6 @@ object KUtil { var setBreakPointHere = 1 } - fun hardCrash() { - val field = Unsafe::class.java.getDeclaredField("theUnsafe") - field.isAccessible = true - val unsafe = field[null] as Unsafe - unsafe.putAddress(0, 0) - } - - fun Random.nextFloat(min: Float = Float.MIN_VALUE, max: Float = Float.MAX_VALUE): Float { - return min + this.nextFloat() * (max - min) - } - /** * Converts millis to ticks */ @@ -140,14 +115,6 @@ object KUtil { val Number.millis: Int get() = this.toInt() * ProtocolDefinition.TICK_TIME - fun Random.chance(intPercent: Int): Boolean { - return this.nextInt(100) < intPercent - } - - fun String.asUUID(): UUID { - return Util.getUUIDFromString(this) - } - fun Collection.entities(connection: PlayConnection): Set { val entities: MutableList = mutableListOf() for (id in this) { @@ -156,14 +123,6 @@ object KUtil { return entities.toSet() } - operator fun List.get(enum: Enum<*>): T { - return this[enum.ordinal] - } - - operator fun Array.get(enum: Enum<*>): T { - return this[enum.ordinal] - } - fun Any?.format(): ChatComponent { return ChatComponent.of(when (this) { is ChatComponent -> return this @@ -190,31 +149,6 @@ object KUtil { }) } - - fun Field.setValue(instance: Any, value: Any?) { - this.isAccessible = true - - // ToDo - // if (Modifier.isFinal(this.modifiers)) { - // FieldUtils.removeFinalModifier(this) - // } - - this.set(instance, value) - } - - - fun Any.mapCast(): Map? { - return this.nullCast() - } - - fun Any.listCast(): Collection? { - return this.nullCast() - } - - fun Any?.asList(): List { - return this.unsafeCast() - } - fun Any.toJson(beautiful: Boolean = false): String { return if (beautiful) { Jackson.MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(this) @@ -227,87 +161,9 @@ object KUtil { return Jackson.MAPPER.readValue(this, Jackson.JSON_MAP_TYPE) } - fun Any?.toInt(): Int { - return when (this) { - is Int -> this - is Long -> this.toInt() - is Number -> this.toInt() - is String -> Integer.valueOf(this) - else -> TODO() - } - } - - fun Any?.toLong(): Long { - return when (this) { - is Long -> this - is Int -> this.toLong() - is Number -> this.toLong() - else -> TODO() - } - } - - fun Any?.toDouble(): Double { - return when (this) { - is Double -> this - is Number -> this.toDouble() - else -> TODO() - } - } - - fun Any?.toFloat(): Float { - return when (this) { - is Float -> this - is Number -> this.toFloat() - else -> TODO() - } - } - - fun Any?.toBoolean(): Boolean { - return when (this) { - is Boolean -> this - is Number -> this.toInt() == 0x01 - "true" -> true - "false" -> false - else -> TODO("$this is not a boolean!") - } - } - - fun tryCatch(vararg exceptions: Class = arrayOf(), executor: () -> T): T? { - try { - return executor() - } catch (thrown: Throwable) { - if (exceptions.isEmpty()) { - // Catch all - return null - } - for (exception in exceptions) { - if (exception.isAssignableFrom(thrown::class.java)) { - return null - } - } - throw thrown - } - } - val Throwable.text: TextComponent get() = TextComponent(this::class.java.realName + ": " + this.message).color(ChatColors.DARK_RED) - fun Throwable.toStackTrace(): String { - val stringWriter = StringWriter() - this.printStackTrace(PrintWriter(stringWriter)) - return stringWriter.toString() - } - - fun Int.thousands(): String { - return String.format("%,d", this) - } - - val Class<*>.realName: String - get() = this.name.removePrefix(this.packageName).removePrefix(".") - - fun UUID.trim(): String { - return this.toString().replace("-", "") - } fun List.asResourceLocationMap(): Map { val ret: MutableMap = mutableMapOf() @@ -319,17 +175,6 @@ object KUtil { return ret.toMap() } - fun T?.check(message: (() -> Any)? = null): T { - if (this == null) { - throw NullPointerException(message?.invoke()?.toString() ?: "Null check failed") - } - return this - } - - fun ByteArray.toBase64(): String { - return Base64.getEncoder().encodeToString(this) - } - fun String?.nullCompare(other: String?): Int? { if (this == null || other == null) { return null @@ -366,11 +211,6 @@ object KUtil { return string } - fun ByteBuffer.toByteArray(): ByteArray { - val array = ByteArray(this.remaining()) - this.get(array) - return array - } val BooleanArray.isTrue: Boolean get() { @@ -382,57 +222,6 @@ object KUtil { return true } - val time: Long - get() = Instant.now().toEpochMilli() - - fun safeSaveToFile(destination: File, content: String) { - val parent = destination.parentFile - if (!parent.exists()) { - parent.mkdirs() - if (!parent.isDirectory) { - throw IOException("Could not create folder: ${parent.path}") - } - } - - val tempFile = File("${destination.path}.tmp") - if (tempFile.exists()) { - if (!tempFile.delete()) { - throw IOException("Could not delete $tempFile!") - } - } - FileWriter(tempFile).apply { - write(content) - close() - } - if (destination.exists() && !destination.delete()) { - throw IOException("Could not delete $destination!") - } - if (!tempFile.renameTo(destination)) { - throw IOException("Could not move $tempFile to $destination!") - } - } - - val Locale.fullName: String - get() = language + "_" + country.ifEmpty { language.uppercase() } - - - fun URL.check() { - check(this.protocol == "http" || this.protocol == "https") { "Url is not a web address" } - } - - val String.isHexString: Boolean - get() { - for (digit in toCharArray()) { - if (digit !in '0'..'9' && digit !in 'a'..'f') { - return false - } - } - return true - } - - val File.slashPath: String - get() = absolutePath.replace('\\', '/') - fun TarHeader.generalize() { userId = 0 groupId = 0 diff --git a/src/main/java/de/bixilon/minosoft/util/Previous.kt b/src/main/java/de/bixilon/minosoft/util/Previous.kt index beb1e39a2..cc613234c 100644 --- a/src/main/java/de/bixilon/minosoft/util/Previous.kt +++ b/src/main/java/de/bixilon/minosoft/util/Previous.kt @@ -14,16 +14,17 @@ package de.bixilon.minosoft.util import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf +import de.bixilon.kutil.time.TimeUtil class Previous(value: T, private val interpolator: ((previous: Previous, delta: Long) -> T)? = null) { private val changeListeners: MutableSet<(value: T, previous: T) -> Unit> = synchronizedSetOf() - private var lastChangeTime = KUtil.time + private var lastChangeTime = TimeUtil.time var value: T = value @Synchronized set(value) { previous = field field = value - lastChangeTime = KUtil.time + lastChangeTime = TimeUtil.time for (listener in changeListeners) { listener(value, previous) } @@ -47,7 +48,7 @@ class Previous(value: T, private val interpolator: ((previous: Previous, d } fun interpolate(): T { - return interpolator!!(this, (KUtil.time - lastChangeTime)) + return interpolator!!(this, (TimeUtil.time - lastChangeTime)) } } diff --git a/src/main/java/de/bixilon/minosoft/util/Queue.kt b/src/main/java/de/bixilon/minosoft/util/Queue.kt deleted file mode 100644 index 179e7427e..000000000 --- a/src/main/java/de/bixilon/minosoft/util/Queue.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2021 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.util - -import de.bixilon.kutil.collections.CollectionUtil.synchronizedListOf -import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedList - -class Queue { - private val queue: MutableList = synchronizedListOf() - - @Synchronized - fun add(runnable: Runnable) { - queue += runnable - } - - operator fun plusAssign(runnable: Runnable) { - add(runnable) - } - - fun work(maxJobs: Int = Int.MAX_VALUE) { - var jobsDone = 0 - for (runnable in queue.toSynchronizedList()) { - this.queue.remove(runnable) - if (jobsDone == maxJobs) { - break - } - runnable.run() - jobsDone++ - } - } - - fun timeWork(time: Long) { - check(time > 0L) { "Can not have <= 0 time to do jobs!" } - val start = KUtil.time - for (runnable in queue.toSynchronizedList()) { - this.queue.remove(runnable) - if (KUtil.time - start >= time) { - break - } - runnable.run() - } - } - - fun clear() { - queue.clear() - } -} diff --git a/src/main/java/de/bixilon/minosoft/util/ShutdownManager.kt b/src/main/java/de/bixilon/minosoft/util/ShutdownManager.kt index 4f0a6f5f4..c92e5e1be 100644 --- a/src/main/java/de/bixilon/minosoft/util/ShutdownManager.kt +++ b/src/main/java/de/bixilon/minosoft/util/ShutdownManager.kt @@ -15,9 +15,9 @@ package de.bixilon.minosoft.util import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet import de.bixilon.kutil.concurrent.pool.DefaultThreadPool +import de.bixilon.kutil.file.watcher.FileWatcherService import de.bixilon.minosoft.ShutdownReasons import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.util.filewatcher.FileWatcherService import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels import de.bixilon.minosoft.util.logging.LogMessageType diff --git a/src/main/java/de/bixilon/minosoft/util/Stopwatch.kt b/src/main/java/de/bixilon/minosoft/util/Stopwatch.kt index 180281497..731d2a092 100644 --- a/src/main/java/de/bixilon/minosoft/util/Stopwatch.kt +++ b/src/main/java/de/bixilon/minosoft/util/Stopwatch.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.util +import de.bixilon.kutil.unit.UnitFormatter import de.bixilon.minosoft.util.logging.Log class Stopwatch { diff --git a/src/main/java/de/bixilon/minosoft/util/SystemInformation.kt b/src/main/java/de/bixilon/minosoft/util/SystemInformation.kt index 3236d0330..5bc8fda60 100644 --- a/src/main/java/de/bixilon/minosoft/util/SystemInformation.kt +++ b/src/main/java/de/bixilon/minosoft/util/SystemInformation.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.util -import de.bixilon.minosoft.util.UnitFormatter.formatBytes +import de.bixilon.kutil.unit.UnitFormatter.formatBytes import oshi.SystemInfo @Deprecated(message = "Will be refactored") diff --git a/src/main/java/de/bixilon/minosoft/util/UnitFormatter.kt b/src/main/java/de/bixilon/minosoft/util/UnitFormatter.kt deleted file mode 100644 index d88c37e68..000000000 --- a/src/main/java/de/bixilon/minosoft/util/UnitFormatter.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2021 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 . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.util - -object UnitFormatter { - private val BYTE_UNITS = arrayOf("B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB") - private val UNITS = arrayOf("", "k", "M", "G", "T", "P", "E", "Z", "Y") - private val TIME_UNITS = arrayOf("ns", "μs", "ms", "s", "m", "h", "d", "w", "M", "Y") - - fun Long.formatBytes(): String { - if (this < 0) { - return "Unknown" - } - return formatUnit(this, BYTE_UNITS, 1024L) - } - - fun formatNumber(number: Int): String { - return formatNumber(number.toLong()) - } - - fun formatNumber(number: Long): String { - return formatUnit(number, UNITS, 1000L) - } - - private fun formatUnit(number: Long, units: Array, factor: Long): String { - var lastFactor = 1L - var currentFactor = factor - for (unit in units) { - if (number < currentFactor) { - if (number < (lastFactor * 10)) { - return "${"%.1f".format(number / lastFactor.toFloat())}${unit}" - } - return "${number / lastFactor}${unit}" - } - lastFactor = currentFactor - currentFactor *= factor - } - throw IllegalArgumentException() - } - - fun formatNanos(nanos: Long): String { - return "${nanos / 1000000}ms" - - // ToDo - } - - fun formatMillis(millis: Long): String { - return formatNanos(millis * 1000) - } -} diff --git a/src/main/java/de/bixilon/minosoft/util/Util.java b/src/main/java/de/bixilon/minosoft/util/Util.java index 0fd1f1046..205b47715 100644 --- a/src/main/java/de/bixilon/minosoft/util/Util.java +++ b/src/main/java/de/bixilon/minosoft/util/Util.java @@ -36,12 +36,10 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.*; import java.util.concurrent.ThreadFactory; -import java.util.regex.Pattern; import java.util.zip.*; @Deprecated(forRemoval = true) public final class Util { - public static final Pattern UUID_FIX_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); // thanks https://www.spigotmc.org/threads/free-code-easily-convert-between-trimmed-and-full-uuids.165615 public static final char[] RANDOM_STRING_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); public static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static final Gson GSON = new Gson(); @@ -63,17 +61,6 @@ public final class Util { } } - public static UUID getUUIDFromString(String uuid) { - uuid = uuid.trim(); - if (uuid.length() == 36) { - return UUID.fromString(uuid); - } - if (uuid.length() == 32) { - return UUID.fromString(UUID_FIX_PATTERN.matcher(uuid.replace("-", "")).replaceAll("$1-$2-$3-$4-$5")); - } - throw new IllegalArgumentException(String.format("%s is not a valid UUID String", uuid)); - } - public static PlayInByteBuffer decompress(byte[] bytes, PlayConnection connection) { return new PlayInByteBuffer(decompress(bytes), connection); } diff --git a/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt b/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt index 3fee2627c..7e55efb64 100644 --- a/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt @@ -15,9 +15,9 @@ package de.bixilon.minosoft.util.account import de.bixilon.kutil.cast.CastUtil.nullCast import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.uuid.UUIDUtil.trim import de.bixilon.minosoft.data.accounts.MojangAccountInfo import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil.trim import de.bixilon.minosoft.util.http.HTTP2.getJson import de.bixilon.minosoft.util.http.HTTP2.postJson import de.bixilon.minosoft.util.http.exceptions.AuthenticationException diff --git a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt index 5f5917b4e..27eea7ed0 100644 --- a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt +++ b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt @@ -14,12 +14,12 @@ package de.bixilon.minosoft.util.account.microsoft import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.kutil.json.JsonUtil.asJsonList +import de.bixilon.kutil.primitive.LongUtil.toLong +import de.bixilon.kutil.uuid.UUIDUtil.toUUID import de.bixilon.minosoft.data.accounts.types.MicrosoftAccount import de.bixilon.minosoft.data.player.properties.PlayerProperties import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition -import de.bixilon.minosoft.util.KUtil.asList -import de.bixilon.minosoft.util.KUtil.asUUID -import de.bixilon.minosoft.util.KUtil.toLong import de.bixilon.minosoft.util.account.AccountUtil import de.bixilon.minosoft.util.account.LoginException import de.bixilon.minosoft.util.http.HTTP2.postData @@ -44,7 +44,7 @@ object MicrosoftOAuthUtils { val accessToken = getMinecraftBearerAccessToken(userHash, xstsToken) val accountInfo = AccountUtil.getMojangAccountInfo(accessToken) - val uuid = accountInfo.id.asUUID() + val uuid = accountInfo.id.toUUID() val account = MicrosoftAccount( uuid = uuid, username = accountInfo.name, @@ -92,7 +92,7 @@ object MicrosoftOAuthUtils { if (response.statusCode != 200) { throw LoginException(response.statusCode, "Could not authenticate with xbox live token", response.body.toString()) } - return Pair(response.body["Token"].unsafeCast(), response.body["DisplayClaims"].asCompound()["xui"].asList()[0].asCompound()["uhs"].unsafeCast()) + return Pair(response.body["Token"].unsafeCast(), response.body["DisplayClaims"].asCompound()["xui"].asJsonList()[0].asCompound()["uhs"].unsafeCast()) } fun getXSTSToken(xBoxLiveToken: String): String { diff --git a/src/main/java/de/bixilon/minosoft/util/collections/floats/DirectArrayFloatList.kt b/src/main/java/de/bixilon/minosoft/util/collections/floats/DirectArrayFloatList.kt index 1517b5abb..001bd8915 100644 --- a/src/main/java/de/bixilon/minosoft/util/collections/floats/DirectArrayFloatList.kt +++ b/src/main/java/de/bixilon/minosoft/util/collections/floats/DirectArrayFloatList.kt @@ -13,7 +13,7 @@ package de.bixilon.minosoft.util.collections.floats -import de.bixilon.minosoft.util.KUtil +import de.bixilon.kutil.exception.ExceptionUtil.tryCatch import org.lwjgl.system.MemoryUtil.memAllocFloat import org.lwjgl.system.MemoryUtil.memFree import java.nio.BufferOverflowException @@ -162,7 +162,7 @@ class DirectArrayFloatList( private companion object { - private val FLOAT_PUT_METHOD = KUtil.tryCatch { FloatBuffer::class.java.getMethod("put", Int::class.java, FloatBuffer::class.java, Int::class.java, Int::class.java) } + private val FLOAT_PUT_METHOD = tryCatch { FloatBuffer::class.java.getMethod("put", Int::class.java, FloatBuffer::class.java, Int::class.java, Int::class.java) } private const val DEFAULT_INITIAL_SIZE = 1000 } } diff --git a/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcher.kt b/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcher.kt deleted file mode 100644 index b4705a0b7..000000000 --- a/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcher.kt +++ /dev/null @@ -1,10 +0,0 @@ -package de.bixilon.minosoft.util.filewatcher - -import java.nio.file.Path -import java.nio.file.WatchEvent - -class FileWatcher( - val path: Path, - val types: Array>, - val callback: (WatchEvent<*>, String) -> Unit, -) diff --git a/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcherService.kt b/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcherService.kt deleted file mode 100644 index 8e7d81c0e..000000000 --- a/src/main/java/de/bixilon/minosoft/util/filewatcher/FileWatcherService.kt +++ /dev/null @@ -1,105 +0,0 @@ -package de.bixilon.minosoft.util.filewatcher - -import de.bixilon.kutil.cast.CastUtil.nullCast -import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf -import de.bixilon.kutil.collections.map.SynchronizedMap -import de.bixilon.kutil.concurrent.pool.DefaultThreadPool -import de.bixilon.kutil.latch.CountUpAndDownLatch -import de.bixilon.minosoft.util.logging.Log -import de.bixilon.minosoft.util.logging.LogLevels -import de.bixilon.minosoft.util.logging.LogMessageType -import java.nio.file.* -import kotlin.io.path.pathString - - -object FileWatcherService { - private val WATCHERS: SynchronizedMap> = synchronizedMapOf() - private var stop = false - private var service: WatchService? = null - private lateinit var thread: Thread - - fun start() { - if (service != null) { - throw IllegalStateException("Already running!") - } - this.stop = false - val latch = CountUpAndDownLatch(1) - this.thread = Thread({ - try { - val service = FileSystems.getDefault().newWatchService() - this.service = service - latch.dec() - while (true) { - val watchKey: WatchKey = service.take() - if (stop) { - break - } - for (event in watchKey.pollEvents()) { - val path = event.context().nullCast() ?: continue - - WATCHERS[watchKey]?.let { notifyChange(it, event, path.pathString) } - } - watchKey.reset() - } - for (watchKey in WATCHERS.keys) { - watchKey.cancel() - } - WATCHERS.clear() - } catch (ignored: InterruptedException) { - } finally { - Log.log(LogMessageType.OTHER, LogLevels.VERBOSE) { "Stopping file watcher service" } - if (latch.count > 0) { - latch.dec() - } - this.service = null - } - }, "FileWatcherService") - thread.start() - - - latch.await() - } - - private fun notifyChange(watchers: SynchronizedMap, event: WatchEvent<*>, fileName: String) { - try { - watchers[fileName]?.callback?.invoke(event, fileName) ?: return - } catch (exception: Throwable) { - exception.printStackTrace() - } - } - - fun register(fileWatcher: FileWatcher) { - DefaultThreadPool += { registerWait(fileWatcher) } - } - - fun registerWait(fileWatcher: FileWatcher) { - val service = this.service ?: throw IllegalStateException("File watcher service not running!") - var watchKey: WatchKey? = null - try { - val file = fileWatcher.path.toFile() - var parent = file - if (parent.isFile) { - // Can not register file listener, only directory - parent = parent.parentFile - } - if (!parent.isDirectory) { - throw IllegalStateException("Can not watch directory: ${parent.path}") - } - val parentPath = parent.toPath() - - watchKey = parentPath.register(service, *fileWatcher.types) - WATCHERS.getOrPut(watchKey) { synchronizedMapOf() }[file.path.removePrefix(parentPath.pathString).removePrefix("/")] = fileWatcher - } catch (exception: Exception) { - WATCHERS.remove(watchKey) - throw exception - } - } - - fun stop() { - if (service == null) { - return - } - stop = true - thread.interrupt() - } -} diff --git a/src/main/java/de/bixilon/minosoft/util/http/HTTP2.kt b/src/main/java/de/bixilon/minosoft/util/http/HTTP2.kt index 7c72e0342..14f0b4b17 100644 --- a/src/main/java/de/bixilon/minosoft/util/http/HTTP2.kt +++ b/src/main/java/de/bixilon/minosoft/util/http/HTTP2.kt @@ -14,7 +14,7 @@ package de.bixilon.minosoft.util.http import de.bixilon.kutil.collections.CollectionUtil.extend -import de.bixilon.kutil.general.BooleanUtil.decide +import de.bixilon.kutil.primitive.BooleanUtil.decide import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.json.Jackson import java.net.URI diff --git a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt index 53bad00b2..7f8e5f668 100644 --- a/src/main/java/de/bixilon/minosoft/util/logging/Log.kt +++ b/src/main/java/de/bixilon/minosoft/util/logging/Log.kt @@ -13,6 +13,7 @@ package de.bixilon.minosoft.util.logging import com.google.errorprone.annotations.DoNotCall +import de.bixilon.kutil.time.TimeUtil import de.bixilon.minosoft.config.StaticConfiguration import de.bixilon.minosoft.config.profile.profiles.other.OtherProfileSelectEvent import de.bixilon.minosoft.data.text.BaseComponent @@ -23,7 +24,6 @@ import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker import de.bixilon.minosoft.modding.event.master.GlobalEventMaster import de.bixilon.minosoft.terminal.CLI import de.bixilon.minosoft.terminal.RunConfiguration -import de.bixilon.minosoft.util.KUtil import java.io.PrintStream import java.io.PrintWriter import java.io.StringWriter @@ -32,7 +32,7 @@ import java.util.concurrent.LinkedBlockingQueue object Log { - private val MINOSOFT_START_TIME = KUtil.time + private val MINOSOFT_START_TIME = TimeUtil.time private val TIME_FORMAT = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") private val LOG_QUEUE = LinkedBlockingQueue() private val SYSTEM_ERR_STREAM = System.err @@ -56,7 +56,7 @@ object Log { val message = BaseComponent() val messageColor = messageToSend.logMessageType.colorMap[messageToSend.level] ?: messageToSend.logMessageType.defaultColor message += if (RunConfiguration.LOG_RELATIVE_TIME) { - TextComponent("[${KUtil.time - MINOSOFT_START_TIME}] ") + TextComponent("[${TimeUtil.time - MINOSOFT_START_TIME}] ") } else { TextComponent("[${TIME_FORMAT.format(messageToSend.time)}] ") } @@ -139,7 +139,7 @@ object Log { LOG_QUEUE.add( MessageToSend( message = formattedMessage, - time = KUtil.time, + time = TimeUtil.time, logMessageType = logMessageType, level = level, thread = Thread.currentThread(), diff --git a/src/main/java/de/bixilon/minosoft/util/task/worker/StartupTasks.kt b/src/main/java/de/bixilon/minosoft/util/task/worker/StartupTasks.kt index 38513af8c..8684822b7 100644 --- a/src/main/java/de/bixilon/minosoft/util/task/worker/StartupTasks.kt +++ b/src/main/java/de/bixilon/minosoft/util/task/worker/StartupTasks.kt @@ -19,7 +19,6 @@ enum class StartupTasks { LOAD_VERSIONS, LOAD_DEFAULT_REGISTRIES, LISTEN_LAN_SERVERS, - LOAD_MODS, INITIALIZE_CLI, INITIALIZE_JAVAFX, X_START_ON_FIRST_THREAD_WARNING,