mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-16 10:55:01 -04:00
remove some NBTUtil functions
This commit is contained in:
parent
30da957baa
commit
37f045db27
@ -17,6 +17,7 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
|
||||
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.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||
import de.bixilon.kutil.primitive.LongUtil.toLong
|
||||
import de.bixilon.kutil.string.StringUtil.format
|
||||
@ -33,7 +34,6 @@ import de.bixilon.minosoft.util.json.Jackson
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import java.io.File
|
||||
import java.io.FileNotFoundException
|
||||
import java.io.IOException
|
||||
@ -82,7 +82,7 @@ class IndexAssetsManager(
|
||||
|
||||
var assets = FileUtil.safeReadFile(FileAssetsUtil.getPath(indexHash))?.readJsonObject() ?: downloadAssetsIndex()
|
||||
|
||||
assets["objects"].let { assets = it.asCompound() }
|
||||
assets["objects"].let { assets = it.asJsonObject() }
|
||||
val tasks = CountUpAndDownLatch(0)
|
||||
val assetsLatch = CountUpAndDownLatch(assets.size, parent = latch)
|
||||
|
||||
|
@ -16,6 +16,7 @@ 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.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
|
||||
import de.bixilon.minosoft.data.accounts.Account
|
||||
import de.bixilon.minosoft.data.player.properties.PlayerProperties
|
||||
@ -28,7 +29,6 @@ import de.bixilon.minosoft.util.http.exceptions.AuthenticationException
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import java.util.*
|
||||
|
||||
@Deprecated("Mojang authentication is legacy. Will be removed in the future!")
|
||||
@ -117,10 +117,10 @@ class MojangAccount(
|
||||
|
||||
Log.log(LogMessageType.AUTHENTICATION, LogLevels.VERBOSE) { "Mojang login successful (email=$email)" }
|
||||
|
||||
val uuid = response.body["selectedProfile"].asCompound()["id"].toString().toUUID()
|
||||
val uuid = response.body["selectedProfile"].asJsonObject()["id"].toString().toUUID()
|
||||
return MojangAccount(
|
||||
id = response.body["user"].asCompound()["id"].unsafeCast(),
|
||||
username = response.body["selectedProfile"].asCompound()["name"].unsafeCast(),
|
||||
id = response.body["user"].asJsonObject()["id"].unsafeCast(),
|
||||
username = response.body["selectedProfile"].asJsonObject()["name"].unsafeCast(),
|
||||
uuid = uuid,
|
||||
email = email,
|
||||
accessToken = response.body["accessToken"].unsafeCast(),
|
||||
|
@ -42,9 +42,9 @@ 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.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.getAndRemove
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.toMutableJsonObject
|
||||
import java.util.*
|
||||
|
||||
class ItemStack(
|
||||
@ -182,7 +182,7 @@ class ItemStack(
|
||||
|
||||
nbt.getAndRemove(REPAIR_COST_TAG).nullCast<Number>()?.let { repairCost = it.toInt() }
|
||||
|
||||
nbt.getAndRemove(DISPLAY_TAG)?.compoundCast()?.let {
|
||||
nbt.getAndRemove(DISPLAY_TAG)?.toMutableJsonObject()?.let {
|
||||
it.getAndRemove(DISPLAY_MAME_TAG).nullCast<String>()?.let { nameTag ->
|
||||
customDisplayName = ChatComponent.of(nameTag, translator = connection?.language)
|
||||
}
|
||||
|
@ -2,11 +2,11 @@ package de.bixilon.minosoft.data.player.properties.textures
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude
|
||||
import com.fasterxml.jackson.module.kotlin.convertValue
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
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
|
||||
import java.util.*
|
||||
|
||||
class PlayerTextures(
|
||||
@ -25,14 +25,14 @@ class PlayerTextures(
|
||||
val json: Map<String, Any> = Jackson.MAPPER.readValue(Base64.getDecoder().decode(encoded), Jackson.JSON_MAP_TYPE)
|
||||
|
||||
// Data also contains `signatureRequired`
|
||||
val textures = json["textures"]?.compoundCast()
|
||||
val textures = json["textures"]?.toJsonObject()
|
||||
return PlayerTextures(
|
||||
name = json["profileName"]?.toString(),
|
||||
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) },
|
||||
elytra = textures?.get("ELYTRA")?.compoundCast()?.let { return@let Jackson.MAPPER.convertValue(it) },
|
||||
skin = textures?.get("SKIN")?.toJsonObject()?.let { return@let Jackson.MAPPER.convertValue(it) },
|
||||
cape = textures?.get("CAPE")?.toJsonObject()?.let { return@let Jackson.MAPPER.convertValue(it) },
|
||||
elytra = textures?.get("ELYTRA")?.toJsonObject()?.let { return@let Jackson.MAPPER.convertValue(it) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
package de.bixilon.minosoft.data.registries
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.minosoft.Minosoft
|
||||
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
|
||||
import de.bixilon.minosoft.data.entities.EntityObjectType
|
||||
@ -28,7 +29,6 @@ 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.json.ResourceLocationJsonMap.toResourceLocationMap
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
|
||||
object DefaultRegistries {
|
||||
private val ENUM_RESOURCE_LOCATION = ResourceLocation("minosoft:mapping/enums.json")
|
||||
@ -62,29 +62,29 @@ object DefaultRegistries {
|
||||
|
||||
val enumJson = Minosoft.MINOSOFT_ASSETS_MANAGER[ENUM_RESOURCE_LOCATION].readJsonObject().toResourceLocationMap()
|
||||
|
||||
EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("equipment_slots")].asCompound())
|
||||
HAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("hand_equipment_slots")].asCompound())
|
||||
ARMOR_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("armor_equipment_slots")].asCompound())
|
||||
ARMOR_STAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("armor_stand_equipment_slots")].asCompound())
|
||||
EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("equipment_slots")].asJsonObject())
|
||||
HAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("hand_equipment_slots")].asJsonObject())
|
||||
ARMOR_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("armor_equipment_slots")].asJsonObject())
|
||||
ARMOR_STAND_EQUIPMENT_SLOTS_REGISTRY.initialize(enumJson[ResourceLocation("armor_stand_equipment_slots")].asJsonObject())
|
||||
|
||||
ENTITY_META_DATA_DATA_TYPES_REGISTRY.initialize(enumJson[ResourceLocation("entity_meta_data_data_types")].asCompound())
|
||||
ENTITY_META_DATA_DATA_TYPES_REGISTRY.initialize(enumJson[ResourceLocation("entity_meta_data_data_types")].asJsonObject())
|
||||
|
||||
TITLE_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation("title_actions")].asCompound())
|
||||
TITLE_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation("title_actions")].asJsonObject())
|
||||
|
||||
ENTITY_ANIMATION_REGISTRY.initialize(enumJson[ResourceLocation("entity_animations")].asCompound())
|
||||
ENTITY_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation("entity_actions")].asCompound())
|
||||
ENTITY_ANIMATION_REGISTRY.initialize(enumJson[ResourceLocation("entity_animations")].asJsonObject())
|
||||
ENTITY_ACTIONS_REGISTRY.initialize(enumJson[ResourceLocation("entity_actions")].asJsonObject())
|
||||
|
||||
|
||||
val registriesJson = Minosoft.MINOSOFT_ASSETS_MANAGER[REGISTRIES_RESOURCE_LOCATION].readJsonObject().toResourceLocationMap()
|
||||
|
||||
DEFAULT_PLUGIN_CHANNELS_REGISTRY.initialize(registriesJson[ResourceLocation("default_plugin_channels")].asCompound(), PluginChannel)
|
||||
DEFAULT_PLUGIN_CHANNELS_REGISTRY.initialize(registriesJson[ResourceLocation("default_plugin_channels")].asJsonObject(), PluginChannel)
|
||||
|
||||
ENTITY_OBJECT_REGISTRY.rawInitialize(registriesJson[ResourceLocation("entity_objects")].asCompound(), null, EntityObjectType)
|
||||
ENTITY_OBJECT_REGISTRY.rawInitialize(registriesJson[ResourceLocation("entity_objects")].asJsonObject(), null, EntityObjectType)
|
||||
|
||||
BLOCK_ENTITY_META_TYPE_REGISTRY.initialize(registriesJson[ResourceLocation("block_entity_meta_data_types")].asCompound(), BlockEntityMetaType)
|
||||
BLOCK_ENTITY_META_TYPE_REGISTRY.initialize(registriesJson[ResourceLocation("block_entity_meta_data_types")].asJsonObject(), BlockEntityMetaType)
|
||||
|
||||
CONTAINER_TYPE_REGISTRY.initialize(registriesJson[ResourceLocation("container_types")].asCompound(), ContainerType)
|
||||
GAME_EVENT_REGISTRY.initialize(registriesJson[ResourceLocation("game_events")].asCompound(), GameEvent)
|
||||
CONTAINER_TYPE_REGISTRY.initialize(registriesJson[ResourceLocation("container_types")].asJsonObject(), ContainerType)
|
||||
GAME_EVENT_REGISTRY.initialize(registriesJson[ResourceLocation("game_events")].asJsonObject(), GameEvent)
|
||||
|
||||
initialized = true
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
package de.bixilon.minosoft.data.registries.blocks
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
|
||||
import de.bixilon.kutil.primitive.FloatUtil.toFloat
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
@ -23,7 +24,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.nbt.tag.NBTUtil.compoundCast
|
||||
import java.util.*
|
||||
|
||||
data class BlockState(
|
||||
@ -104,7 +104,7 @@ data class BlockState(
|
||||
companion object {
|
||||
|
||||
fun deserialize(block: Block, registries: Registries, data: Map<String, Any>): BlockState {
|
||||
val properties = data["properties"]?.compoundCast()?.let {
|
||||
val properties = data["properties"]?.toJsonObject()?.let {
|
||||
getProperties(it)
|
||||
} ?: mutableMapOf()
|
||||
|
||||
|
@ -15,6 +15,7 @@ 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.cast.CastUtil.unsafeNull
|
||||
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
|
||||
@ -39,7 +40,6 @@ 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.CastUtil.asAnyMap
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import glm_.vec3.Vec3i
|
||||
import kotlin.random.Random
|
||||
|
||||
@ -123,7 +123,7 @@ open class Block(
|
||||
val states: MutableSet<BlockState> = mutableSetOf()
|
||||
for ((stateId, stateJson) in data["states"].asAnyMap()) {
|
||||
check(stateJson is Map<*, *>) { "Not a state element!" }
|
||||
val state = BlockState.deserialize(block, registries, stateJson.asCompound())
|
||||
val state = BlockState.deserialize(block, registries, stateJson.asJsonObject())
|
||||
registries.blockStateRegistry[stateId.toInt()] = state
|
||||
states.add(state)
|
||||
for ((property, value) in state.properties) {
|
||||
|
@ -13,6 +13,8 @@
|
||||
package de.bixilon.minosoft.data.registries.effects
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.effects.attributes.EntityAttributeModifier
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
@ -23,8 +25,6 @@ import de.bixilon.minosoft.data.text.RGBColor
|
||||
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
|
||||
import de.bixilon.minosoft.datafixer.EntityAttributeFixer.fix
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import java.util.*
|
||||
|
||||
data class StatusEffect(
|
||||
@ -45,9 +45,9 @@ data class StatusEffect(
|
||||
val attributes: MutableMap<ResourceLocation, EntityAttributeModifier> = mutableMapOf()
|
||||
val uuidAttributes: MutableMap<UUID, EntityAttributeModifier> = mutableMapOf()
|
||||
|
||||
data["attributes"]?.compoundCast()?.let {
|
||||
data["attributes"]?.toJsonObject()?.let {
|
||||
for ((key, value) in it) {
|
||||
val attribute = EntityAttributeModifier.deserialize(value.asCompound())
|
||||
val attribute = EntityAttributeModifier.deserialize(value.asJsonObject())
|
||||
attributes[ResourceLocation.getResourceLocation(key).fix()] = attribute
|
||||
uuidAttributes[attribute.uuid] = attribute
|
||||
}
|
||||
|
@ -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.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
|
||||
import de.bixilon.minosoft.data.DefaultEntityFactories
|
||||
import de.bixilon.minosoft.data.entities.EntityMetaDataFields
|
||||
@ -30,7 +31,6 @@ 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.toResourceLocation
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import glm_.vec3.Vec3d
|
||||
import java.util.*
|
||||
|
||||
@ -59,7 +59,7 @@ data class EntityType(
|
||||
override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: Map<String, Any>): EntityType? {
|
||||
check(registries != null) { "Registries is null!" }
|
||||
|
||||
data["meta"]?.compoundCast()?.let {
|
||||
data["meta"]?.toJsonObject()?.let {
|
||||
for ((minosoftFieldName, index) in it) {
|
||||
val minosoftField = EntityMetaDataFields[minosoftFieldName.lowercase(Locale.getDefault())]
|
||||
registries.entityMetaIndexMap[minosoftField] = index.unsafeCast()
|
||||
@ -72,7 +72,7 @@ data class EntityType(
|
||||
|
||||
val attributes: MutableMap<ResourceLocation, Double> = mutableMapOf()
|
||||
|
||||
data["attributes"]?.compoundCast()?.let {
|
||||
data["attributes"]?.toJsonObject()?.let {
|
||||
for ((attributeResourceLocation, value) in it) {
|
||||
attributes[ResourceLocation.getResourceLocation(attributeResourceLocation).fix()] = value.unsafeCast()
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
package de.bixilon.minosoft.data.registries.items
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.decide
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
|
||||
import de.bixilon.kutil.primitive.FloatUtil.toFloat
|
||||
@ -25,7 +26,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.nbt.tag.NBTUtil.asCompound
|
||||
|
||||
open class FoodItem(
|
||||
resourceLocation: ResourceLocation,
|
||||
@ -39,7 +39,7 @@ open class FoodItem(
|
||||
val timeToEat: Int
|
||||
|
||||
init {
|
||||
val foodProperties = data["food_properties"].asCompound()
|
||||
val foodProperties = data["food_properties"].asJsonObject()
|
||||
nutrition = foodProperties["nutrition"]?.toInt() ?: 0
|
||||
saturationModifier = foodProperties["saturation_modifier"]?.toFloat() ?: 0.0f
|
||||
isMeat = foodProperties["is_meat"]?.toBoolean() ?: false
|
||||
|
@ -12,6 +12,7 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.data.registries.particle
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
|
||||
@ -22,7 +23,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.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
|
||||
|
||||
data class ParticleType(
|
||||
@ -43,7 +43,7 @@ data class ParticleType(
|
||||
companion object : ResourceLocationDeserializer<ParticleType> {
|
||||
override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: Map<String, Any>): ParticleType {
|
||||
val textures: MutableList<ResourceLocation> = mutableListOf()
|
||||
data["render"]?.compoundCast()?.get("textures")?.listCast<String>()?.let {
|
||||
data["render"]?.toJsonObject()?.get("textures")?.listCast<String>()?.let {
|
||||
for (texture in it) {
|
||||
val textureResourceLocation = ResourceLocation(texture)
|
||||
textures += Texture.getResourceTextureIdentifier(textureResourceLocation.namespace, textureName = "particle/${textureResourceLocation.path}")
|
||||
|
@ -14,6 +14,7 @@ package de.bixilon.minosoft.data.registries.registries
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.nullCast
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.data.entities.EntityMetaDataFields
|
||||
import de.bixilon.minosoft.data.entities.block.BlockEntityMetaType
|
||||
import de.bixilon.minosoft.data.entities.meta.EntityMetaData
|
||||
@ -48,7 +49,6 @@ 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.collections.Clearable
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import java.lang.reflect.Field
|
||||
import java.lang.reflect.ParameterizedType
|
||||
|
||||
@ -129,7 +129,7 @@ class Registries {
|
||||
isFlattened = version.flattened
|
||||
blockStateRegistry.flattened = isFlattened
|
||||
// pre init stuff
|
||||
loadShapes(pixlyzerData["shapes"]?.compoundCast())
|
||||
loadShapes(pixlyzerData["shapes"]?.toJsonObject())
|
||||
|
||||
// enums
|
||||
loadEnumRegistry(version, pixlyzerData["equipment_slots"], equipmentSlotRegistry, DefaultRegistries.EQUIPMENT_SLOTS_REGISTRY)
|
||||
@ -149,30 +149,30 @@ class Registries {
|
||||
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))
|
||||
gameEventRegistry.rawInitialize(pixlyzerData["game_events"]?.compoundCast(), this, GameEvent, alternative = DefaultRegistries.GAME_EVENT_REGISTRY.forVersion(version))
|
||||
containerTypeRegistry.rawInitialize(pixlyzerData["container_types"]?.toJsonObject(), this, ContainerType, alternative = DefaultRegistries.CONTAINER_TYPE_REGISTRY.forVersion(version))
|
||||
gameEventRegistry.rawInitialize(pixlyzerData["game_events"]?.toJsonObject(), this, GameEvent, alternative = DefaultRegistries.GAME_EVENT_REGISTRY.forVersion(version))
|
||||
|
||||
|
||||
entityTypeRegistry.rawInitialize(pixlyzerData["entities"]?.compoundCast(), this, EntityType)
|
||||
entityTypeRegistry.rawInitialize(pixlyzerData["entities"]?.toJsonObject(), this, EntityType)
|
||||
|
||||
motiveRegistry.rawInitialize(pixlyzerData["motives"]?.compoundCast(), this, Motive, version.flattened)
|
||||
soundEventRegistry.rawInitialize(pixlyzerData["sound_events"]?.compoundCast())
|
||||
particleTypeRegistry.rawInitialize(pixlyzerData["particles"]?.compoundCast(), this, ParticleType)
|
||||
materialRegistry.rawInitialize(pixlyzerData["materials"]?.compoundCast(), this, Material)
|
||||
enchantmentRegistry.rawInitialize(pixlyzerData["enchantments"]?.compoundCast(), this, Enchantment)
|
||||
statusEffectRegistry.rawInitialize(pixlyzerData["status_effects"]?.compoundCast(), this, StatusEffect)
|
||||
biomeRegistry.rawInitialize(pixlyzerData["biomes"]?.compoundCast(), this, Biome)
|
||||
dimensionRegistry.rawInitialize(pixlyzerData["dimensions"]?.compoundCast(), this, Dimension)
|
||||
fluidRegistry.rawInitialize(pixlyzerData["fluids"]?.compoundCast(), this, Fluid)
|
||||
blockRegistry.rawInitialize(pixlyzerData["blocks"]?.compoundCast(), this, Block, version.flattened, Registry.MetaTypes.BITS_4)
|
||||
itemRegistry.rawInitialize(pixlyzerData["items"]?.compoundCast(), this, Item, version.flattened, Registry.MetaTypes.BITS_16)
|
||||
motiveRegistry.rawInitialize(pixlyzerData["motives"]?.toJsonObject(), this, Motive, version.flattened)
|
||||
soundEventRegistry.rawInitialize(pixlyzerData["sound_events"]?.toJsonObject())
|
||||
particleTypeRegistry.rawInitialize(pixlyzerData["particles"]?.toJsonObject(), this, ParticleType)
|
||||
materialRegistry.rawInitialize(pixlyzerData["materials"]?.toJsonObject(), this, Material)
|
||||
enchantmentRegistry.rawInitialize(pixlyzerData["enchantments"]?.toJsonObject(), this, Enchantment)
|
||||
statusEffectRegistry.rawInitialize(pixlyzerData["status_effects"]?.toJsonObject(), this, StatusEffect)
|
||||
biomeRegistry.rawInitialize(pixlyzerData["biomes"]?.toJsonObject(), this, Biome)
|
||||
dimensionRegistry.rawInitialize(pixlyzerData["dimensions"]?.toJsonObject(), this, Dimension)
|
||||
fluidRegistry.rawInitialize(pixlyzerData["fluids"]?.toJsonObject(), this, Fluid)
|
||||
blockRegistry.rawInitialize(pixlyzerData["blocks"]?.toJsonObject(), this, Block, version.flattened, Registry.MetaTypes.BITS_4)
|
||||
itemRegistry.rawInitialize(pixlyzerData["items"]?.toJsonObject(), this, Item, version.flattened, Registry.MetaTypes.BITS_16)
|
||||
|
||||
blockEntityTypeRegistry.rawInitialize(pixlyzerData["block_entities"]?.compoundCast(), this, BlockEntityType)
|
||||
blockEntityTypeRegistry.rawInitialize(pixlyzerData["block_entities"]?.toJsonObject(), this, BlockEntityType)
|
||||
|
||||
villagerProfessionRegistry.rawInitialize(pixlyzerData["villager_professions"]?.compoundCast(), this, VillagerProfession)
|
||||
villagerProfessionRegistry.rawInitialize(pixlyzerData["villager_professions"]?.toJsonObject(), this, VillagerProfession)
|
||||
|
||||
|
||||
blockEntityMetaDataTypeRegistry.rawInitialize(pixlyzerData["block_entity_meta_data_types"]?.compoundCast(), this, BlockEntityMetaType, alternative = DefaultRegistries.BLOCK_ENTITY_META_TYPE_REGISTRY.forVersion(version))
|
||||
blockEntityMetaDataTypeRegistry.rawInitialize(pixlyzerData["block_entity_meta_data_types"]?.toJsonObject(), this, BlockEntityMetaType, alternative = DefaultRegistries.BLOCK_ENTITY_META_TYPE_REGISTRY.forVersion(version))
|
||||
|
||||
|
||||
// post init
|
||||
|
@ -1,5 +1,6 @@
|
||||
package de.bixilon.minosoft.data.registries.registries
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.string.StringUtil.format
|
||||
import de.bixilon.minosoft.assets.properties.version.AssetsVersionProperties
|
||||
import de.bixilon.minosoft.assets.util.FileAssetsUtil
|
||||
@ -7,7 +8,6 @@ import de.bixilon.minosoft.assets.util.FileUtil
|
||||
import de.bixilon.minosoft.assets.util.FileUtil.readMBFMap
|
||||
import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfile
|
||||
import de.bixilon.minosoft.data.registries.versions.Version
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.File
|
||||
|
||||
@ -30,7 +30,7 @@ object RegistriesLoader {
|
||||
val file = File(path)
|
||||
if (file.exists()) {
|
||||
// ToDo: Verify
|
||||
return FileUtil.readFile(file, false).readMBFMap().compoundCast() ?: throw IllegalStateException("Could not read pixlyzer data!")
|
||||
return FileUtil.readFile(file, false).readMBFMap().toJsonObject() ?: throw IllegalStateException("Could not read pixlyzer data!")
|
||||
}
|
||||
|
||||
val savedHash = FileAssetsUtil.downloadAndGetAsset(url.format(mapOf(
|
||||
@ -42,6 +42,6 @@ object RegistriesLoader {
|
||||
throw IllegalStateException("Data mismatch, expected $hash, got ${savedHash.first}")
|
||||
}
|
||||
|
||||
return ByteArrayInputStream(savedHash.second).readMBFMap().compoundCast() ?: throw IllegalStateException("Invalid pixlyzer data!")
|
||||
return ByteArrayInputStream(savedHash.second).readMBFMap().toJsonObject() ?: throw IllegalStateException("Invalid pixlyzer data!")
|
||||
}
|
||||
}
|
||||
|
@ -13,10 +13,10 @@
|
||||
|
||||
package de.bixilon.minosoft.data.registries.registries.registry
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.util.collections.Clearable
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
|
||||
class FakeEnumRegistry<T : RegistryFakeEnumerable>(
|
||||
override var parent: FakeEnumRegistry<T>? = null,
|
||||
@ -49,7 +49,7 @@ class FakeEnumRegistry<T : RegistryFakeEnumerable>(
|
||||
check(value is Map<*, *>)
|
||||
var itemId = id.toInt()
|
||||
|
||||
val item = deserializer.deserialize(registries, value.asCompound())
|
||||
val item = deserializer.deserialize(registries, value.asJsonObject())
|
||||
value["id"]?.toInt()?.let { providedItemId ->
|
||||
itemId = providedItemId
|
||||
}
|
||||
|
@ -13,8 +13,8 @@
|
||||
|
||||
package de.bixilon.minosoft.data.registries.registries.registry
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.data.registries.versions.Version
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import java.util.*
|
||||
|
||||
class PerVersionRegistry<T : RegistryItem> {
|
||||
@ -36,7 +36,7 @@ class PerVersionRegistry<T : RegistryItem> {
|
||||
|
||||
val versions: SortedMap<Int, Registry<T>> = sortedMapOf({ t, t2 -> t2 - t })
|
||||
for ((versionId, json) in data) {
|
||||
versions[Integer.parseInt(versionId)] = Registry<T>().rawInitialize(json.compoundCast(), null, deserializer)
|
||||
versions[Integer.parseInt(versionId)] = Registry<T>().rawInitialize(json.toJsonObject(), null, deserializer)
|
||||
}
|
||||
this.versions = versions.toMap()
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.registries.registries.registry
|
||||
|
||||
import com.google.gson.JsonElement
|
||||
import com.google.gson.JsonPrimitive
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
import de.bixilon.minosoft.data.registries.MultiResourceLocationAble
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
@ -22,7 +23,6 @@ import de.bixilon.minosoft.data.registries.ResourceLocationAble
|
||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import de.bixilon.minosoft.util.json.ResourceLocationJsonMap.toResourceLocationMap
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
|
||||
open class Registry<T : RegistryItem>(
|
||||
override var parent: AbstractRegistry<T>? = null,
|
||||
@ -120,7 +120,7 @@ open class Registry<T : RegistryItem>(
|
||||
|
||||
for ((resourceLocation, value) in data) {
|
||||
check(value is Map<*, *>)
|
||||
val item = deserializer.deserialize(registries, resourceLocation, value.asCompound()) ?: continue
|
||||
val item = deserializer.deserialize(registries, resourceLocation, value.asJsonObject()) ?: continue
|
||||
value["id"]?.toInt()?.let { id ->
|
||||
var itemId = id
|
||||
if (!flattened) {
|
||||
|
@ -15,6 +15,7 @@ package de.bixilon.minosoft.data.text
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.nullCast
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonList
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.primitive.BooleanUtil.toBoolean
|
||||
import de.bixilon.minosoft.data.language.Translator
|
||||
import de.bixilon.minosoft.data.text.ChatCode.Companion.toColor
|
||||
@ -23,7 +24,6 @@ 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.toResourceLocation
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
|
||||
import javafx.collections.ObservableList
|
||||
import javafx.scene.Node
|
||||
@ -167,8 +167,8 @@ class BaseComponent : ChatComponent {
|
||||
formatting.addOrRemove(PreChatFormattingCodes.OBFUSCATED, json["obfuscated"]?.toBoolean())
|
||||
formatting.addOrRemove(PreChatFormattingCodes.SHADOWED, json["shadowed"]?.toBoolean())
|
||||
|
||||
val clickEvent = json["clickEvent", "click_event"]?.compoundCast()?.let { click -> ClickEvent(click, restrictedMode) }
|
||||
val hoverEvent = json["hoverEvent", "hover_event"]?.compoundCast()?.let { hover -> HoverEvent(hover) }
|
||||
val clickEvent = json["clickEvent", "click_event"]?.toJsonObject()?.let { click -> ClickEvent(click, restrictedMode) }
|
||||
val hoverEvent = json["hoverEvent", "hover_event"]?.toJsonObject()?.let { hover -> HoverEvent(hover) }
|
||||
|
||||
val textComponent = TextComponent(
|
||||
message = currentText,
|
||||
|
@ -14,12 +14,12 @@ 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.json.JsonUtil.asJsonObject
|
||||
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.toResourceLocation
|
||||
import de.bixilon.minosoft.util.json.Jackson
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import java.util.*
|
||||
|
||||
class EntityHoverData(
|
||||
@ -30,11 +30,11 @@ class EntityHoverData(
|
||||
|
||||
companion object {
|
||||
fun deserialize(data: Any): EntityHoverData {
|
||||
var json: Map<String, Any> = if (data is String) {
|
||||
var json: Map<String, Any> = (if (data is String) {
|
||||
Jackson.MAPPER.readValue(data, Jackson.JSON_MAP_TYPE)
|
||||
} else {
|
||||
data
|
||||
}.asCompound()
|
||||
}).asJsonObject()
|
||||
json["text"]?.let {
|
||||
// 1.14.3.... lol
|
||||
json = Jackson.MAPPER.readValue(it.unsafeCast<String>(), Jackson.JSON_MAP_TYPE)
|
||||
|
@ -50,7 +50,7 @@ class ItemElement(
|
||||
|
||||
var color = ChatColors.WHITE
|
||||
if (item.item is BlockItem) {
|
||||
item.item.block?.defaultState?.material?.color?.let { color = it }
|
||||
item.item.block.defaultState.material.color?.let { color = it }
|
||||
}
|
||||
|
||||
val image = ColorElement(hudRenderer, _size, color)
|
||||
|
@ -58,7 +58,7 @@ class ItemPickInteractionHandler(
|
||||
|
||||
when (target) {
|
||||
is BlockTarget -> {
|
||||
itemStack = ItemStack(target.blockState.block.item!!, connection, 1)
|
||||
itemStack = ItemStack(target.blockState.block.item, connection, 1)
|
||||
|
||||
if (copyNBT) {
|
||||
val blockEntity = connection.world.getBlockEntity(target.blockPosition)
|
||||
|
@ -14,10 +14,10 @@
|
||||
package de.bixilon.minosoft.gui.rendering.models.unbaked
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.gui.rendering.models.display.ModelDisplay
|
||||
import de.bixilon.minosoft.gui.rendering.models.display.ModelDisplayPositions
|
||||
import de.bixilon.minosoft.gui.rendering.models.unbaked.element.UnbakedElement
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
|
||||
|
||||
abstract class GenericUnbakedModel(
|
||||
@ -31,7 +31,7 @@ abstract class GenericUnbakedModel(
|
||||
init {
|
||||
val display = parent?.display?.toMutableMap() ?: mutableMapOf()
|
||||
|
||||
json["display"]?.compoundCast()?.let {
|
||||
json["display"]?.toJsonObject()?.let {
|
||||
for ((name, value) in it) {
|
||||
display[ModelDisplayPositions[name]] = ModelDisplay(data = value.unsafeCast())
|
||||
}
|
||||
@ -45,7 +45,7 @@ abstract class GenericUnbakedModel(
|
||||
init {
|
||||
val textures = parent?.textures?.toMutableMap() ?: mutableMapOf()
|
||||
|
||||
json["textures"]?.compoundCast()?.let {
|
||||
json["textures"]?.toJsonObject()?.let {
|
||||
for ((name, value) in it) {
|
||||
textures[name] = value.toString()
|
||||
}
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.gui.rendering.models.unbaked.block
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonObject
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.data.registries.blocks.BlockState
|
||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||
import de.bixilon.minosoft.gui.rendering.models.ModelLoader
|
||||
import de.bixilon.minosoft.gui.rendering.models.unbaked.AbstractUnbakedBlockModel
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
|
||||
class MultipartRootModel(
|
||||
private val conditions: MutableMap<MutableSet<Map<BlockProperties, Set<Any>>>, MutableSet<AbstractUnbakedBlockModel>>,
|
||||
@ -71,7 +72,7 @@ class MultipartRootModel(
|
||||
|
||||
companion object {
|
||||
|
||||
private fun getCondition(data: MutableMap<String, Any>): MutableMap<BlockProperties, Set<Any>> {
|
||||
private fun getCondition(data: JsonObject): MutableMap<BlockProperties, Set<Any>> {
|
||||
val condition: MutableMap<BlockProperties, Set<Any>> = mutableMapOf()
|
||||
for ((propertyName, value) in data) {
|
||||
var property: BlockProperties? = null
|
||||
@ -104,7 +105,7 @@ class MultipartRootModel(
|
||||
apply += WeightedUnbakedBlockStateModel(modelLoader, applyData.unsafeCast())
|
||||
}
|
||||
|
||||
modelData["when"]?.compoundCast()?.let {
|
||||
modelData["when"]?.toJsonObject()?.let {
|
||||
val or = it["OR"]
|
||||
if (or is List<*>) {
|
||||
for (orData in or) {
|
||||
|
@ -14,11 +14,11 @@
|
||||
package de.bixilon.minosoft.gui.rendering.models.unbaked.element
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
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.nbt.tag.NBTUtil.asCompound
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import glm_.vec3.Vec3
|
||||
|
||||
data class UnbakedElement(
|
||||
@ -37,7 +37,7 @@ data class UnbakedElement(
|
||||
val from = data["from"].toVec3() / BLOCK_RESOLUTION
|
||||
val to = data["to"].toVec3() / BLOCK_RESOLUTION
|
||||
|
||||
data["faces"].asCompound().let {
|
||||
data["faces"].asJsonObject().let {
|
||||
for ((directionString, faceData) in it) {
|
||||
val direction = Directions[directionString]
|
||||
val (fallbackUVStart, fallbackUVEnd) = direction.getFallbackUV(from, to)
|
||||
@ -48,7 +48,7 @@ data class UnbakedElement(
|
||||
return UnbakedElement(
|
||||
from = from,
|
||||
to = to,
|
||||
rotation = data["rotation"]?.compoundCast()?.let { return@let UnbakedElementRotation(data = it) },
|
||||
rotation = data["rotation"]?.toJsonObject()?.let { return@let UnbakedElementRotation(data = it) },
|
||||
shade = data["shade"]?.toBoolean() ?: true,
|
||||
faces = faces,
|
||||
)
|
||||
|
@ -1,12 +1,12 @@
|
||||
package de.bixilon.minosoft.gui.rendering.sound
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.minosoft.assets.util.FileUtil.readJsonObject
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.rendering.sound.sounds.Sound
|
||||
import de.bixilon.minosoft.gui.rendering.sound.sounds.SoundType
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import java.util.*
|
||||
|
||||
class SoundManager(
|
||||
@ -21,7 +21,7 @@ class SoundManager(
|
||||
|
||||
for ((name, data) in soundsIndex) {
|
||||
val resourceLocation = name.toResourceLocation()
|
||||
sounds[resourceLocation] = SoundType(resourceLocation, data.asCompound())
|
||||
sounds[resourceLocation] = SoundType(resourceLocation, data.asJsonObject())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.minosoft.data.entities.block.DefaultBlockEntityMetaDataFactory
|
||||
import de.bixilon.minosoft.modding.event.events.BlockEntityMetaDataChangeEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
@ -22,7 +23,6 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W37A
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
class BlockEntityMetaDataS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
@ -36,7 +36,7 @@ class BlockEntityMetaDataS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
} else {
|
||||
buffer.connection.registries.blockEntityMetaDataTypeRegistry[buffer.readUnsignedByte()].resourceLocation
|
||||
}
|
||||
val nbt = buffer.readNBT().asCompound()
|
||||
val nbt = buffer.readNBT().asJsonObject()
|
||||
|
||||
override fun handle(connection: PlayConnection) {
|
||||
connection.world.getBlockEntity(position)?.updateNBT(nbt) ?: let {
|
||||
|
@ -12,6 +12,8 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
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.data.entities.block.BlockEntity
|
||||
import de.bixilon.minosoft.data.world.ChunkData
|
||||
@ -39,8 +41,6 @@ import de.bixilon.minosoft.util.chunk.ChunkUtil
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import glm_.vec2.Vec2i
|
||||
import glm_.vec3.Vec3i
|
||||
import java.util.*
|
||||
@ -88,7 +88,7 @@ class ChunkDataS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
else -> null
|
||||
}
|
||||
if (buffer.versionId >= V_18W44A) {
|
||||
heightMap = buffer.readNBT()?.compoundCast()
|
||||
heightMap = buffer.readNBT()?.toJsonObject()
|
||||
}
|
||||
if (!isFullChunk && buffer.versionId < V_21W37A) {
|
||||
this.chunkData.biomeSource = SpatialBiomeArray(buffer.readBiomeArray())
|
||||
@ -118,7 +118,7 @@ class ChunkDataS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
val blockEntities: MutableMap<Vec3i, BlockEntity> = mutableMapOf()
|
||||
val positionOffset = Vec3i.of(chunkPosition, dimension.lowestSection, Vec3i.EMPTY)
|
||||
for (i in 0 until buffer.readVarInt()) {
|
||||
val nbt = buffer.readNBT().asCompound()
|
||||
val nbt = buffer.readNBT().asJsonObject()
|
||||
val position = Vec3i(nbt["x"]?.toInt() ?: continue, nbt["y"]?.toInt() ?: continue, nbt["z"]?.toInt() ?: continue) - positionOffset
|
||||
val resourceLocation = (nbt["id"]?.toResourceLocation() ?: continue).fix()
|
||||
val type = buffer.connection.registries.blockEntityTypeRegistry[resourceLocation] ?: let {
|
||||
@ -138,7 +138,7 @@ class ChunkDataS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
val xz = buffer.readUnsignedByte()
|
||||
val y = buffer.readShort()
|
||||
val type = buffer.connection.registries.blockEntityTypeRegistry[buffer.readVarInt()]
|
||||
val nbt = buffer.readNBT()?.asCompound() ?: continue
|
||||
val nbt = buffer.readNBT()?.asJsonObject() ?: continue
|
||||
val entity = type.build(buffer.connection)
|
||||
entity.updateNBT(nbt)
|
||||
blockEntities[Vec3i(xz shr 4, y, xz and 0x0F)] = entity
|
||||
|
@ -14,6 +14,8 @@ package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
import com.google.common.collect.HashBiMap
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.minosoft.data.Difficulties
|
||||
import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||
import de.bixilon.minosoft.data.registries.DefaultRegistries
|
||||
@ -38,8 +40,6 @@ import de.bixilon.minosoft.util.BitByte
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
|
||||
|
||||
class JoinGameS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
@ -104,12 +104,12 @@ class JoinGameS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
if (buffer.versionId < ProtocolVersions.V_20W21A) {
|
||||
dimensionProperties = buffer.connection.registries.dimensionRegistry[buffer.readInt()].type
|
||||
} else {
|
||||
val dimensionCodec = buffer.readNBT().asCompound()
|
||||
val dimensionCodec = buffer.readNBT().asJsonObject()
|
||||
dimensions = parseDimensionCodec(dimensionCodec, buffer.versionId)
|
||||
dimensionProperties = if (buffer.versionId < ProtocolVersions.V_1_16_2_PRE3) {
|
||||
dimensions[buffer.readResourceLocation()]!!.type
|
||||
} else {
|
||||
DimensionProperties.deserialize(buffer.readNBT().asCompound())
|
||||
DimensionProperties.deserialize(buffer.readNBT().asJsonObject())
|
||||
}
|
||||
world = buffer.readResourceLocation()
|
||||
}
|
||||
@ -183,7 +183,7 @@ class JoinGameS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
val listTag: MutableList<Map<*, *>> = if (versionId < ProtocolVersions.V_20W28A) {
|
||||
nbt["dimension"]?.listCast()
|
||||
} else {
|
||||
nbt["minecraft:dimension_type"]?.compoundCast()?.get("value")?.listCast()
|
||||
nbt["minecraft:dimension_type"]?.toJsonObject()?.get("value")?.listCast()
|
||||
}!!
|
||||
for (tag in listTag) {
|
||||
val dimensionResourceLocation = ResourceLocation(tag[if (versionId < ProtocolVersions.V_1_16_PRE3) {
|
||||
@ -192,9 +192,9 @@ class JoinGameS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
"name"
|
||||
}].unsafeCast())
|
||||
val dimensionPropertyTag = if (versionId < ProtocolVersions.V_1_16_PRE3 || versionId >= ProtocolVersions.V_1_16_2_PRE1) {
|
||||
tag["element"].asCompound()
|
||||
tag["element"].asJsonObject()
|
||||
} else {
|
||||
tag.asCompound()
|
||||
tag.asJsonObject()
|
||||
}
|
||||
dimensionMap[dimensionResourceLocation] = Dimension.deserialize(null, dimensionResourceLocation, dimensionPropertyTag)
|
||||
}
|
||||
|
@ -12,16 +12,16 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
|
||||
class NBTQueryResponseS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
val transactionId: Int = buffer.readVarInt()
|
||||
val nbt: Map<String, Any> = buffer.readNBT().asCompound()
|
||||
val nbt: Map<String, Any> = buffer.readNBT().asJsonObject()
|
||||
|
||||
override fun log(reducedLog: Boolean) {
|
||||
Log.log(LogMessageType.NETWORK_PACKETS_IN, level = LogLevels.VERBOSE) { "NBT query response (transactionId=$transactionId nbt=$nbt)" }
|
||||
|
@ -12,6 +12,7 @@
|
||||
*/
|
||||
package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.minosoft.data.Difficulties
|
||||
import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||
import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
@ -25,7 +26,6 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersions
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import glm_.vec3.Vec3d
|
||||
|
||||
class RespawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
@ -60,7 +60,7 @@ class RespawnS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
buffer.connection.registries.dimensionRegistry[buffer.readResourceLocation()]!!.type
|
||||
}
|
||||
else -> {
|
||||
DimensionProperties.deserialize(buffer.readNBT().asCompound()) // current dimension data
|
||||
DimensionProperties.deserialize(buffer.readNBT().asJsonObject()) // current dimension data
|
||||
}
|
||||
}
|
||||
if (buffer.versionId < ProtocolVersions.V_19W11A) {
|
||||
|
@ -35,7 +35,7 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_19W36A
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_13_2_PRE1
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_9_1_PRE1
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_20W28A
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.toMutableJsonObject
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
|
||||
@ -121,7 +121,7 @@ class PlayInByteBuffer : InByteBuffer {
|
||||
if (!connection.version.flattened) {
|
||||
metaData = readUnsignedShort()
|
||||
}
|
||||
val nbt = readNBTTag(versionId < V_14W28B)?.compoundCast()
|
||||
val nbt = readNBTTag(versionId < V_14W28B)?.toMutableJsonObject()
|
||||
return ItemStack(
|
||||
item = connection.registries.itemRegistry[id shl 16 or metaData],
|
||||
connection = connection,
|
||||
@ -136,7 +136,7 @@ class PlayInByteBuffer : InByteBuffer {
|
||||
item = connection.registries.itemRegistry[readVarInt()],
|
||||
connection = connection,
|
||||
count = readUnsignedByte(),
|
||||
nbt = readNBT()?.compoundCast() ?: mutableMapOf(),
|
||||
nbt = readNBT()?.toMutableJsonObject() ?: mutableMapOf(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -13,9 +13,9 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.status
|
||||
|
||||
import de.bixilon.kutil.json.JsonUtil.toJsonObject
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
import de.bixilon.minosoft.data.text.ChatComponent
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
|
||||
import java.util.*
|
||||
|
||||
class ServerStatus(
|
||||
@ -38,11 +38,11 @@ class ServerStatus(
|
||||
private set
|
||||
|
||||
init {
|
||||
data["version"]?.compoundCast()?.let {
|
||||
data["version"]?.toJsonObject()?.let {
|
||||
protocolId = it["protocol"]?.toInt()
|
||||
serverBrand = it["name"]?.toString()
|
||||
}
|
||||
data["players"]?.compoundCast()?.let {
|
||||
data["players"]?.toJsonObject()?.let {
|
||||
usedSlots = it["online"]?.toInt()
|
||||
slots = it["max"]?.toInt()
|
||||
|
||||
|
@ -15,6 +15,7 @@ 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.json.JsonUtil.asJsonObject
|
||||
import de.bixilon.kutil.primitive.LongUtil.toLong
|
||||
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
|
||||
import de.bixilon.minosoft.data.accounts.types.MicrosoftAccount
|
||||
@ -27,7 +28,6 @@ import de.bixilon.minosoft.util.http.HTTP2.postJson
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
|
||||
import de.bixilon.minosoft.util.url.URLProtocolStreamHandlers
|
||||
import java.net.URL
|
||||
import java.net.URLConnection
|
||||
@ -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"].asJsonList()[0].asCompound()["uhs"].unsafeCast())
|
||||
return Pair(response.body["Token"].unsafeCast(), response.body["DisplayClaims"].asJsonObject()["xui"].asJsonList()[0].asJsonObject()["uhs"].unsafeCast())
|
||||
}
|
||||
|
||||
fun getXSTSToken(xBoxLiveToken: String): String {
|
||||
|
@ -14,6 +14,8 @@
|
||||
package de.bixilon.minosoft.util.nbt.tag
|
||||
|
||||
import de.bixilon.kutil.cast.CastUtil.nullCast
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.json.MutableJsonObject
|
||||
|
||||
object NBTUtil {
|
||||
|
||||
@ -34,14 +36,17 @@ object NBTUtil {
|
||||
return null
|
||||
}
|
||||
|
||||
fun Any?.compoundCast(): MutableMap<String, Any>? {
|
||||
return this.nullCast()
|
||||
@Deprecated("Will be in Kutil 1.4")
|
||||
fun Any?.asMutableJsonObject(): MutableJsonObject {
|
||||
return this.unsafeCast()
|
||||
}
|
||||
|
||||
fun Any?.asCompound(): MutableMap<String, Any> {
|
||||
return this.compoundCast()!!
|
||||
@Deprecated("Will be in Kutil 1.4")
|
||||
fun Any?.toMutableJsonObject(): MutableJsonObject? {
|
||||
return this?.nullCast()
|
||||
}
|
||||
|
||||
|
||||
fun <T> Any?.listCast(): MutableList<T>? {
|
||||
try {
|
||||
return this as MutableList<T>
|
||||
|
Loading…
x
Reference in New Issue
Block a user