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,