diff --git a/eclipse/.idea/vcs.xml b/eclipse/.idea/vcs.xml
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ b/eclipse/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/eclipse/Client/Client.iml b/eclipse/Client/Client.iml
index cc0ddf93..405532d3 100644
--- a/eclipse/Client/Client.iml
+++ b/eclipse/Client/Client.iml
@@ -76,8 +76,7 @@
-
-
+
diff --git a/eclipse/Client/bin/net/minecraft/util/math/MathHelper.class b/eclipse/Client/bin/net/minecraft/util/math/MathHelper.class
index 0a87664e..9b0b7855 100644
Binary files a/eclipse/Client/bin/net/minecraft/util/math/MathHelper.class and b/eclipse/Client/bin/net/minecraft/util/math/MathHelper.class differ
diff --git a/eclipse/Client/bin/net/minecraft/world/chunk/BlockStateContainer.class b/eclipse/Client/bin/net/minecraft/world/chunk/BlockStateContainer.class
index 3a31636a..d1e53186 100644
Binary files a/eclipse/Client/bin/net/minecraft/world/chunk/BlockStateContainer.class and b/eclipse/Client/bin/net/minecraft/world/chunk/BlockStateContainer.class differ
diff --git a/eclipse/Client/bin/net/minecraft/world/chunk/ChunkPrimer.class b/eclipse/Client/bin/net/minecraft/world/chunk/ChunkPrimer.class
index 90e6a66f..94d77ebe 100644
Binary files a/eclipse/Client/bin/net/minecraft/world/chunk/ChunkPrimer.class and b/eclipse/Client/bin/net/minecraft/world/chunk/ChunkPrimer.class differ
diff --git a/eclipse/Client/bin/net/minecraft/world/chunk/storage/ExtendedBlockStorage.class b/eclipse/Client/bin/net/minecraft/world/chunk/storage/ExtendedBlockStorage.class
index f2b1e7d7..7c7d97b8 100644
Binary files a/eclipse/Client/bin/net/minecraft/world/chunk/storage/ExtendedBlockStorage.class and b/eclipse/Client/bin/net/minecraft/world/chunk/storage/ExtendedBlockStorage.class differ
diff --git a/jars/logs/2020-07-20-1.log.gz b/jars/logs/2020-07-20-1.log.gz
index dc34b08f..6c498b06 100644
Binary files a/jars/logs/2020-07-20-1.log.gz and b/jars/logs/2020-07-20-1.log.gz differ
diff --git a/jars/logs/latest.log b/jars/logs/latest.log
index dfb8d696..c4da6f15 100644
--- a/jars/logs/latest.log
+++ b/jars/logs/latest.log
@@ -1,727 +1,725 @@
-[00:27:53] [Client thread/INFO]: Setting user: Player925
-[00:27:54] [Client thread/INFO]: [OptiFine] *** Reflector Forge ***
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.Attributes
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: mods.betterfoliage.client.BetterFoliageClient
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.asm.transformers.BlamingTransformer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkWatchEvent$UnWatch
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.relauncher.CoreModManager
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.DimensionManager
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Pre
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Post
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$CameraSetup
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$FogColors
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$RenderFogEvent
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.EventBus
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event$Result
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.ExtendedBlockState
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.FMLClientHandler
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.FMLCommonHandler
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.biome.Biome.getWaterColorMultiplier
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addDestroyEffects
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addHitEffects
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canCreatureSpawn
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canRenderInLayer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.doesSideBlockRendering
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getBedDirection
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getExtendedState
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getFogColor
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getSoundType
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.hasTileEntity
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isAir
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBed
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBedFoot
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isSideSolid
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.ChunkCache.isSideSolid
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.canRiderInteract
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.captureDrops
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.capturedDrops
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRenderInPass
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRiderSit
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.ForgeEventFactory
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeHooks
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ForgeHooksClient
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.item.Item.delegate
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getDurabilityForDisplay
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getRGBDurabilityForDisplay
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.onEntitySwing
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.shouldCauseReequipAnimation
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.showDurabilityBar
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.block.model.ItemOverrideList.handleItemState
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.ItemArmor.hasOverlay
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.setKeyConflictContext
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.setKeyModifierAndCode
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.getKeyModifier
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeModContainer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.block.model.ModelBlockDefinition.parseFromReader
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.Potion.shouldRenderHUD
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.Potion.renderHUDEffect
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.PotionEffect.isCurativeItem
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.canRenderBreaking
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.getRenderBoundingBox
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.hasFastRenderer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.shouldRenderInPass
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.preDraw
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.postDraw
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.countEntities
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.getPerWorldStorage
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.initCapabilities
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getCloudRenderer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getSkyRenderer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getWeatherRenderer
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.GuiModList
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.IExtendedBlockState
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.IModel
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.IRenderHandler
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ItemModelMesherForge
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyConflictContext
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyModifier
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraft.launchwrapper.Launch
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.LightUtil
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.MinecraftForge
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.MinecraftForgeClient
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ModelLoader
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.gui.NotificationModUpdateScreen
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderBlockOverlayEvent$OverlayType
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.registry.RenderingRegistry
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderItemInFrameEvent
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Pre
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Post
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Pre
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Post
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.ScreenshotEvent
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.SplashProgress
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.WorldEvent$Load
-[00:27:54] [Client thread/INFO]: [OptiFine] *** Reflector Vanilla ***
-[00:27:54] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: optifine.OptiFineClassTransformer
-[00:27:54] [Client thread/INFO]: LWJGL Version: 2.9.4
-[00:27:55] [Client thread/INFO]: [OptiFine]
-[00:27:55] [Client thread/INFO]: [OptiFine] OptiFine_1.12_HD_U_C4
-[00:27:55] [Client thread/INFO]: [OptiFine] Build: null
-[00:27:55] [Client thread/INFO]: [OptiFine] OS: Windows 10 (amd64) version 10.0
-[00:27:55] [Client thread/INFO]: [OptiFine] Java: 1.8.0_241, Oracle Corporation
-[00:27:55] [Client thread/INFO]: [OptiFine] VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
-[00:27:55] [Client thread/INFO]: [OptiFine] LWJGL: 2.9.4
-[00:27:55] [Client thread/INFO]: [OptiFine] OpenGL: GeForce MX150/PCIe/SSE2, version 4.6.0 NVIDIA 388.73, NVIDIA Corporation
-[00:27:55] [Client thread/INFO]: [OptiFine] OpenGL Version: 4.6.0
-[00:27:55] [Client thread/INFO]: [OptiFine] Maximum texture size: 32768x32768
-[00:27:55] [Thread-3/INFO]: [OptiFine] Checking for new version
-[00:27:55] [Client thread/INFO]: [Shaders] ShadersMod version: 2.4.12
-[00:27:55] [Client thread/INFO]: [Shaders] OpenGL Version: 4.6.0 NVIDIA 388.73
-[00:27:55] [Client thread/INFO]: [Shaders] Vendor: NVIDIA Corporation
-[00:27:55] [Client thread/INFO]: [Shaders] Renderer: GeForce MX150/PCIe/SSE2
-[00:27:55] [Client thread/INFO]: [Shaders] Capabilities: 2.0 2.1 3.0 3.2 4.0
-[00:27:55] [Client thread/INFO]: [Shaders] GL_MAX_DRAW_BUFFERS: 8
-[00:27:55] [Client thread/INFO]: [Shaders] GL_MAX_COLOR_ATTACHMENTS_EXT: 8
-[00:27:55] [Client thread/INFO]: [Shaders] GL_MAX_TEXTURE_IMAGE_UNITS: 32
-[00:27:55] [Client thread/INFO]: [Shaders] Load ShadersMod configuration.
-[00:27:55] [Client thread/INFO]: [Shaders] Save ShadersMod configuration.
-[00:27:55] [Client thread/INFO]: [Shaders] No shaderpack loaded.
-[00:27:55] [Client thread/INFO]: Reloading ResourceManager: Default
-[00:27:55] [Client thread/INFO]: [OptiFine] *** Reloading textures ***
-[00:27:55] [Client thread/INFO]: [OptiFine] Resource packs: Default
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:ambient.cave
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.destroy
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.land
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.use
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.brewing_stand.brew
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.locked
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.chorus_flower.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.chorus_flower.grow
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.comparator.click
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.dispense
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.fail
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.launch
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.enchantment_table.use
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.end_gateway.spawn
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.end_portal.spawn
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.end_portal_frame.fill
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.enderchest.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.enderchest.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.fence_gate.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.fence_gate.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.fire.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.fire.extinguish
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.furnace.fire_crackle
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_door.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_door.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_trapdoor.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_trapdoor.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.extinguish
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.pop
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.lever.click
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal_pressureplate.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.metal_pressureplate.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.basedrum
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.bass
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.bell
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.chime
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.flute
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.guitar
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.harp
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.hat
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.pling
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.snare
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.note.xylophone
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.piston.contract
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.piston.extend
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.travel
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.trigger
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.redstone_torch.burnout
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.shulker_box.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.shulker_box.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_button.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_button.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_pressureplate.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_pressureplate.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.attach
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.detach
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.water.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.waterlily.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_button.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_button.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_pressureplate.click_off
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_pressureplate.click_on
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_door.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_door.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_trapdoor.close
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_trapdoor.open
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:enchant.thorns.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.break
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.fall
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.place
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.hit
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.hit_player
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.shoot
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.loop
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.takeoff
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.burn
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.shoot
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.boat.paddle_land
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.boat.paddle_water
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.retrieve
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.splash
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.throw
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.hiss
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.purr
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.purreow
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.egg
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.milk
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.step
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.primed
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.angry
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.chest
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.egg.throw
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.ambient_land
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.curse
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.death_land
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.flop
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.hurt_land
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.flap
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.growl
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.shoot
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon_fireball.explode
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endereye.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endereye.launch
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.death
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.hurt
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.scream
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.stare
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.teleport
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.ambient
-[00:27:55] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderpearl.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_fangs.attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.cast_spell
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_summon
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_wololo
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.experience_bottle.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.experience_orb.pickup
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.blast
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.blast_far
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.large_blast
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.large_blast_far
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.launch
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.twinkle
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.twinkle_far
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.big_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.burn
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.drink
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.eat
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.explode
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.extinguish_fire
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.small_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.splash
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.swim
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.scream
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.warn
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.ambient_land
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.death_land
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.flop
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.hurt_land
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.angry
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.armor
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.breathe
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.eat
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.gallop
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.jump
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.land
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.saddle
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.step_wood
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.big_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.small_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.splash
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.swim
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.cast_spell
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.mirror_move
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.prepare_blindness
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.prepare_mirror
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.item.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.item.pickup
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.add_item
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.place
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.remove_item
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.rotate_item
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.leashknot.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.leashknot.place
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.lightning.impact
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.lightning.thunder
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.lingeringpotion.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.angry
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.chest
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.eat
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.spit
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.swag
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.jump
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.squish
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.minecart.inside
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.minecart.riding
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.mooshroom.shear
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.chest
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.painting.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.painting.place
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.eat
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.fly
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.blaze
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.creeper
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.elder_guardian
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.enderdragon
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.enderman
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.endermite
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.evocation_illager
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.ghast
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.husk
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.illusion_illager
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.magmacube
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.polar_bear
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.shulker
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.silverfish
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.skeleton
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.slime
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.spider
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.stray
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.vex
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.vindication_illager
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.witch
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wither
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wither_skeleton
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wolf
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie_pigman
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie_villager
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.saddle
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.crit
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.knockback
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.nodamage
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.strong
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.sweep
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.weak
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.big_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.breath
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.burp
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt_drown
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt_on_fire
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.levelup
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.small_fall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.splash
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.swim
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.baby_ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.warning
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.jump
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.shear
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.close
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.hurt_closed
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.open
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.teleport
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker_bullet.hit
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker_bullet.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.attack
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.jump
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.squish
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.squish
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.jump
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.squish
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowball.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.splash_potion.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.splash_potion.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.tnt.primed
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.charge
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.no
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.trading
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.yes
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.drink
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.throw
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.break_block
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.shoot
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.spawn
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.growl
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.howl
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.pant
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.shake
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.whine
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.attack_door_wood
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.attack_iron_door
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.break_door_wood
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.infect
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.angry
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.ambient
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.converted
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.cure
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.death
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.hurt
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.step
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_chain
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_diamond
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_elytra
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_generic
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_gold
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_iron
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_leather
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.empty
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.fill
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.fill_dragonbreath
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.empty
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.empty_lava
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.fill
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.fill_lava
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.chorus_fruit.teleport
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.elytra.flying
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.firecharge.use
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.flintandsteel.use
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.hoe.till
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.shield.block
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.shield.break
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.shovel.flatten
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:item.totem.use
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.creative
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.credits
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.dragon
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.end
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.game
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.menu
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:music.nether
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.11
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.13
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.blocks
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.cat
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.chirp
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.far
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.mall
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.mellohi
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.stal
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.strad
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.wait
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:record.ward
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:ui.button.click
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.in
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.out
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.challenge_complete
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:weather.rain
-[00:27:56] [Client thread/WARN]: Missing sound for event: minecraft:weather.rain.above
-[00:27:56] [Sound Library Loader/INFO]: Starting up SoundSystem...
-[00:27:56] [Thread-4/INFO]: Initializing LWJGL OpenAL
-[00:27:56] [Thread-4/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
-[00:27:56] [Thread-3/INFO]: [OptiFine] Version found: C7
-[00:27:56] [Thread-4/INFO]: OpenAL initialized.
-[00:27:56] [Sound Library Loader/INFO]: Sound engine started
-[00:27:59] [Client thread/INFO]: [OptiFine] Mipmap levels: 4
-[00:27:59] [Client thread/INFO]: [OptiFine] Multitexture: false
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/0_glass_white/glass_pane_white.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/0_glass_white/glass_white.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/10_glass_purple/glass_pane_purple.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/10_glass_purple/glass_purple.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/11_glass_blue/glass_blue.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/11_glass_blue/glass_pane_blue.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/12_glass_brown/glass_brown.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/12_glass_brown/glass_pane_brown.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/13_glass_green/glass_green.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/13_glass_green/glass_pane_green.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/14_glass_red/glass_pane_red.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/14_glass_red/glass_red.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/15_glass_black/glass_black.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/15_glass_black/glass_pane_black.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/1_glass_orange/glass_orange.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/1_glass_orange/glass_pane_orange.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/2_glass_magenta/glass_magenta.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/2_glass_magenta/glass_pane_magenta.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/3_glass_light_blue/glass_light_blue.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/3_glass_light_blue/glass_pane_light_blue.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/4_glass_yellow/glass_pane_yellow.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/4_glass_yellow/glass_yellow.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/5_glass_lime/glass_lime.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/5_glass_lime/glass_pane_lime.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/6_glass_pink/glass_pane_pink.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/6_glass_pink/glass_pink.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/7_glass_gray/glass_gray.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/7_glass_gray/glass_pane_gray.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/8_glass_silver/glass_pane_silver.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/8_glass_silver/glass_silver.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/9_glass_cyan/glass_cyan.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/9_glass_cyan/glass_pane_cyan.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/bookshelf.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/glass.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/glasspane.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/sandstone.properties
-[00:27:59] [Client thread/INFO]: [OptiFine] Multipass connected textures: false
-[00:27:59] [Client thread/INFO]: [OptiFine] BetterGrass: Parsing default configuration optifine/bettergrass.properties
-[00:28:01] [Client thread/INFO]: Created: 1024x512 textures-atlas
-[00:28:03] [Client thread/INFO]: Narrator library for x64 successfully loaded
-[00:28:03] [Client thread/INFO]: [OptiFine] *** Reloading custom textures ***
-[00:28:05] [Client thread/INFO]: Realms library version == 1.10.17
-[00:28:06] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
-[00:28:06] [MCO Compatability Checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
-[00:28:06] [MCO Compatability Checker #1/ERROR]: Couldn't connect to realms:
-[00:28:12] [Client thread/INFO]: Stopping!
-[00:28:12] [Client thread/INFO]: SoundSystem shutting down...
-[00:28:12] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
+[19:20:39] [Client thread/INFO]: Setting user: Player904
+[19:20:40] [Client thread/INFO]: [OptiFine] *** Reflector Forge ***
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.Attributes
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: mods.betterfoliage.client.BetterFoliageClient
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.asm.transformers.BlamingTransformer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkWatchEvent$UnWatch
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.relauncher.CoreModManager
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.DimensionManager
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Pre
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Post
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$CameraSetup
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$FogColors
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$RenderFogEvent
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.EventBus
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event$Result
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.ExtendedBlockState
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.FMLClientHandler
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.FMLCommonHandler
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.biome.Biome.getWaterColorMultiplier
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addDestroyEffects
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addHitEffects
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canCreatureSpawn
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canRenderInLayer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.doesSideBlockRendering
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getBedDirection
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getExtendedState
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getFogColor
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getSoundType
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.hasTileEntity
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isAir
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBed
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBedFoot
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isSideSolid
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.ChunkCache.isSideSolid
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.canRiderInteract
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.captureDrops
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.capturedDrops
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRenderInPass
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRiderSit
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.ForgeEventFactory
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeHooks
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ForgeHooksClient
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.item.Item.delegate
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getDurabilityForDisplay
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getRGBDurabilityForDisplay
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.onEntitySwing
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.shouldCauseReequipAnimation
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.showDurabilityBar
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.block.model.ItemOverrideList.handleItemState
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.ItemArmor.hasOverlay
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.setKeyConflictContext
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.setKeyModifierAndCode
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.settings.KeyBinding.getKeyModifier
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeModContainer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.block.model.ModelBlockDefinition.parseFromReader
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.Potion.shouldRenderHUD
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.Potion.renderHUDEffect
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.PotionEffect.isCurativeItem
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.canRenderBreaking
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.getRenderBoundingBox
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.hasFastRenderer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.shouldRenderInPass
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.preDraw
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.postDraw
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.countEntities
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.getPerWorldStorage
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.initCapabilities
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getCloudRenderer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getSkyRenderer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getWeatherRenderer
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.GuiModList
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.IExtendedBlockState
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.IModel
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.IRenderHandler
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ItemModelMesherForge
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyConflictContext
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyModifier
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraft.launchwrapper.Launch
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.LightUtil
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.MinecraftForge
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.MinecraftForgeClient
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ModelLoader
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.gui.NotificationModUpdateScreen
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderBlockOverlayEvent$OverlayType
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.registry.RenderingRegistry
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderItemInFrameEvent
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Pre
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Post
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Pre
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Post
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.ScreenshotEvent
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.SplashProgress
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.WorldEvent$Load
+[19:20:40] [Client thread/INFO]: [OptiFine] *** Reflector Vanilla ***
+[19:20:40] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: optifine.OptiFineClassTransformer
+[19:20:40] [Client thread/WARN]: Skipping bad option: lastServer:
+[19:20:40] [Client thread/INFO]: LWJGL Version: 2.9.4
+[19:20:41] [Client thread/INFO]: [OptiFine]
+[19:20:41] [Client thread/INFO]: [OptiFine] OptiFine_1.12_HD_U_C4
+[19:20:41] [Client thread/INFO]: [OptiFine] Build: null
+[19:20:41] [Client thread/INFO]: [OptiFine] OS: Windows 10 (amd64) version 10.0
+[19:20:41] [Client thread/INFO]: [OptiFine] Java: 1.8.0_241, Oracle Corporation
+[19:20:41] [Client thread/INFO]: [OptiFine] VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
+[19:20:41] [Client thread/INFO]: [OptiFine] LWJGL: 2.9.4
+[19:20:41] [Client thread/INFO]: [OptiFine] OpenGL: GeForce MX150/PCIe/SSE2, version 4.6.0 NVIDIA 388.73, NVIDIA Corporation
+[19:20:41] [Client thread/INFO]: [OptiFine] OpenGL Version: 4.6.0
+[19:20:41] [Client thread/INFO]: [OptiFine] Maximum texture size: 32768x32768
+[19:20:41] [Thread-3/INFO]: [OptiFine] Checking for new version
+[19:20:41] [Client thread/INFO]: [Shaders] ShadersMod version: 2.4.12
+[19:20:41] [Client thread/INFO]: [Shaders] OpenGL Version: 4.6.0 NVIDIA 388.73
+[19:20:41] [Client thread/INFO]: [Shaders] Vendor: NVIDIA Corporation
+[19:20:41] [Client thread/INFO]: [Shaders] Renderer: GeForce MX150/PCIe/SSE2
+[19:20:41] [Client thread/INFO]: [Shaders] Capabilities: 2.0 2.1 3.0 3.2 4.0
+[19:20:41] [Client thread/INFO]: [Shaders] GL_MAX_DRAW_BUFFERS: 8
+[19:20:41] [Client thread/INFO]: [Shaders] GL_MAX_COLOR_ATTACHMENTS_EXT: 8
+[19:20:41] [Client thread/INFO]: [Shaders] GL_MAX_TEXTURE_IMAGE_UNITS: 32
+[19:20:41] [Client thread/INFO]: [Shaders] Load ShadersMod configuration.
+[19:20:41] [Client thread/INFO]: [Shaders] Save ShadersMod configuration.
+[19:20:41] [Client thread/INFO]: [Shaders] No shaderpack loaded.
+[19:20:41] [Client thread/INFO]: Reloading ResourceManager: Default
+[19:20:41] [Client thread/INFO]: [OptiFine] *** Reloading textures ***
+[19:20:41] [Client thread/INFO]: [OptiFine] Resource packs: Default
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:ambient.cave
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.destroy
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.anvil.use
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.brewing_stand.brew
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.locked
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.chest.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.chorus_flower.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.chorus_flower.grow
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.cloth.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.comparator.click
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.dispense
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.fail
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.dispenser.launch
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.enchantment_table.use
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.end_gateway.spawn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.end_portal.spawn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.end_portal_frame.fill
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.enderchest.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.enderchest.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.fence_gate.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.fence_gate.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.fire.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.fire.extinguish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.furnace.fire_crackle
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.glass.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.grass.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.gravel.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_door.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_door.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_trapdoor.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.iron_trapdoor.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.ladder.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.extinguish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.lava.pop
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.lever.click
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal_pressureplate.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.metal_pressureplate.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.basedrum
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.bass
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.bell
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.chime
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.flute
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.guitar
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.harp
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.hat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.pling
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.snare
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.note.xylophone
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.piston.contract
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.piston.extend
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.travel
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.portal.trigger
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.redstone_torch.burnout
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.sand.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.shulker_box.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.shulker_box.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.slime.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.snow.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_button.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_button.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_pressureplate.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.stone_pressureplate.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.attach
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.tripwire.detach
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.water.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.waterlily.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_button.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_button.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_pressureplate.click_off
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wood_pressureplate.click_on
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_door.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_door.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_trapdoor.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:block.wooden_trapdoor.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:enchant.thorns.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.armorstand.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.hit_player
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.arrow.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.loop
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bat.takeoff
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.burn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.blaze.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.boat.paddle_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.boat.paddle_water
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.retrieve
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.splash
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.bobber.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.hiss
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.purr
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cat.purreow
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.egg
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.chicken.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.milk
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.cow.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.creeper.primed
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.angry
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.chest
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.donkey.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.egg.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.ambient_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.curse
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.death_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.flop
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.elder_guardian.hurt_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.flap
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.growl
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderdragon_fireball.explode
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endereye.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endereye.launch
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.scream
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.stare
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermen.teleport
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.endermite.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.enderpearl.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_fangs.attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.cast_spell
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_summon
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.evocation_illager.prepare_wololo
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.experience_bottle.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.experience_orb.pickup
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.blast
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.blast_far
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.large_blast
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.large_blast_far
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.launch
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.twinkle
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.firework.twinkle_far
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.big_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.burn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.drink
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.eat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.explode
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.extinguish_fire
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.small_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.splash
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.generic.swim
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.scream
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.ghast.warn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.ambient_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.death_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.flop
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.guardian.hurt_land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.angry
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.armor
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.breathe
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.eat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.gallop
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.jump
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.land
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.saddle
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.horse.step_wood
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.big_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.small_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.splash
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.hostile.swim
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.husk.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.cast_spell
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.mirror_move
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.prepare_blindness
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.illusion_illager.prepare_mirror
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.irongolem.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.item.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.item.pickup
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.add_item
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.remove_item
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.itemframe.rotate_item
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.leashknot.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.leashknot.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.lightning.impact
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.lightning.thunder
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.lingeringpotion.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.angry
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.chest
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.eat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.spit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.llama.swag
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.jump
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.magmacube.squish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.minecart.inside
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.minecart.riding
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.mooshroom.shear
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.chest
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.mule.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.painting.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.painting.place
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.eat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.fly
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.blaze
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.creeper
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.elder_guardian
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.enderdragon
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.enderman
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.endermite
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.evocation_illager
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.ghast
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.husk
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.illusion_illager
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.magmacube
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.polar_bear
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.shulker
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.silverfish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.skeleton
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.slime
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.spider
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.stray
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.vex
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.vindication_illager
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.witch
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wither
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wither_skeleton
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.wolf
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie_pigman
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.imitate.zombie_villager
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.parrot.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.saddle
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.pig.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.crit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.knockback
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.nodamage
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.strong
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.sweep
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.attack.weak
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.big_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.breath
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.burp
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt_drown
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.hurt_on_fire
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.levelup
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.small_fall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.splash
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.player.swim
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.baby_ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.polar_bear.warning
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.rabbit.jump
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.shear
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.sheep.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.close
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.hurt_closed
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.open
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker.teleport
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker_bullet.hit
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.shulker_bullet.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.silverfish.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.skeleton_horse.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.attack
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.jump
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.slime.squish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_magmacube.squish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.jump
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.small_slime.squish
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowball.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.snowman.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.spider.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.splash_potion.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.splash_potion.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.squid.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.stray.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.tnt.primed
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.charge
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vex.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.no
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.trading
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.villager.yes
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.vindication_illager.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.drink
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.witch.throw
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.break_block
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.shoot
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither.spawn
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wither_skeleton.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.growl
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.howl
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.pant
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.shake
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.wolf.whine
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.attack_door_wood
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.attack_iron_door
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.break_door_wood
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.infect
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_horse.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.angry
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_pig.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.ambient
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.converted
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.cure
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.death
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.hurt
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:entity.zombie_villager.step
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_chain
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_diamond
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_elytra
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_generic
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_gold
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_iron
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.armor.equip_leather
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.empty
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.fill
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bottle.fill_dragonbreath
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.empty
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.empty_lava
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.fill
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.bucket.fill_lava
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.chorus_fruit.teleport
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.elytra.flying
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.firecharge.use
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.flintandsteel.use
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.hoe.till
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.shield.block
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.shield.break
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.shovel.flatten
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:item.totem.use
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.creative
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.credits
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.dragon
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.end
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.game
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.menu
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:music.nether
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.11
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.13
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.blocks
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.cat
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.chirp
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.far
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.mall
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.mellohi
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.stal
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.strad
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.wait
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:record.ward
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:ui.button.click
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.in
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.out
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:ui.toast.challenge_complete
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:weather.rain
+[19:20:41] [Client thread/WARN]: Missing sound for event: minecraft:weather.rain.above
+[19:20:41] [Sound Library Loader/INFO]: Starting up SoundSystem...
+[19:20:41] [Thread-4/INFO]: Initializing LWJGL OpenAL
+[19:20:41] [Thread-4/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
+[19:20:41] [Thread-4/INFO]: OpenAL initialized.
+[19:20:42] [Thread-3/INFO]: [OptiFine] Version found: C7
+[19:20:42] [Sound Library Loader/INFO]: Sound engine started
+[19:20:43] [Client thread/INFO]: [OptiFine] Mipmap levels: 4
+[19:20:43] [Client thread/INFO]: [OptiFine] Multitexture: false
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/0_glass_white/glass_pane_white.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/0_glass_white/glass_white.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/10_glass_purple/glass_pane_purple.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/10_glass_purple/glass_purple.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/11_glass_blue/glass_blue.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/11_glass_blue/glass_pane_blue.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/12_glass_brown/glass_brown.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/12_glass_brown/glass_pane_brown.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/13_glass_green/glass_green.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/13_glass_green/glass_pane_green.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/14_glass_red/glass_pane_red.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/14_glass_red/glass_red.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/15_glass_black/glass_black.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/15_glass_black/glass_pane_black.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/1_glass_orange/glass_orange.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/1_glass_orange/glass_pane_orange.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/2_glass_magenta/glass_magenta.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/2_glass_magenta/glass_pane_magenta.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/3_glass_light_blue/glass_light_blue.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/3_glass_light_blue/glass_pane_light_blue.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/4_glass_yellow/glass_pane_yellow.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/4_glass_yellow/glass_yellow.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/5_glass_lime/glass_lime.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/5_glass_lime/glass_pane_lime.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/6_glass_pink/glass_pane_pink.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/6_glass_pink/glass_pink.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/7_glass_gray/glass_gray.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/7_glass_gray/glass_pane_gray.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/8_glass_silver/glass_pane_silver.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/8_glass_silver/glass_silver.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/9_glass_cyan/glass_cyan.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/9_glass_cyan/glass_pane_cyan.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/bookshelf.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/glass.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/glasspane.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] ConnectedTextures: mcpatcher/ctm/default/sandstone.properties
+[19:20:43] [Client thread/INFO]: [OptiFine] Multipass connected textures: false
+[19:20:43] [Client thread/INFO]: [OptiFine] BetterGrass: Parsing default configuration optifine/bettergrass.properties
+[19:20:44] [Client thread/INFO]: Created: 1024x512 textures-atlas
+[19:20:45] [Client thread/INFO]: Narrator library for x64 successfully loaded
+[19:20:45] [Client thread/INFO]: [OptiFine] *** Reloading custom textures ***
+[19:20:48] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
+[19:20:53] [Client thread/INFO]: Stopping!
+[19:20:53] [Client thread/INFO]: SoundSystem shutting down...
+[19:20:54] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
diff --git a/jars/saves/MCP Development World/data/villages.dat b/jars/saves/MCP Development World/data/villages.dat
index adcdcc02..6e2fcd6a 100644
Binary files a/jars/saves/MCP Development World/data/villages.dat and b/jars/saves/MCP Development World/data/villages.dat differ
diff --git a/jars/saves/MCP Development World/data/villages_end.dat b/jars/saves/MCP Development World/data/villages_end.dat
index adcdcc02..6e2fcd6a 100644
Binary files a/jars/saves/MCP Development World/data/villages_end.dat and b/jars/saves/MCP Development World/data/villages_end.dat differ
diff --git a/jars/saves/MCP Development World/data/villages_nether.dat b/jars/saves/MCP Development World/data/villages_nether.dat
index adcdcc02..6e2fcd6a 100644
Binary files a/jars/saves/MCP Development World/data/villages_nether.dat and b/jars/saves/MCP Development World/data/villages_nether.dat differ
diff --git a/jars/saves/MCP Development World/level.dat b/jars/saves/MCP Development World/level.dat
index 327a7eba..a0f86205 100644
Binary files a/jars/saves/MCP Development World/level.dat and b/jars/saves/MCP Development World/level.dat differ
diff --git a/jars/saves/MCP Development World/level.dat_old b/jars/saves/MCP Development World/level.dat_old
index 24a8787f..122606ce 100644
Binary files a/jars/saves/MCP Development World/level.dat_old and b/jars/saves/MCP Development World/level.dat_old differ
diff --git a/jars/saves/MCP Development World/region/r.0.-1.mca b/jars/saves/MCP Development World/region/r.0.-1.mca
index b5fa30ac..d842f1aa 100644
Binary files a/jars/saves/MCP Development World/region/r.0.-1.mca and b/jars/saves/MCP Development World/region/r.0.-1.mca differ
diff --git a/jars/saves/MCP Development World/region/r.0.0.mca b/jars/saves/MCP Development World/region/r.0.0.mca
index 9e7ce19d..6010007c 100644
Binary files a/jars/saves/MCP Development World/region/r.0.0.mca and b/jars/saves/MCP Development World/region/r.0.0.mca differ
diff --git a/jars/saves/MCP Development World/region/r.1.-1.mca b/jars/saves/MCP Development World/region/r.1.-1.mca
index 2cfe16bd..06cf02c9 100644
Binary files a/jars/saves/MCP Development World/region/r.1.-1.mca and b/jars/saves/MCP Development World/region/r.1.-1.mca differ
diff --git a/jars/saves/MCP Development World/region/r.1.0.mca b/jars/saves/MCP Development World/region/r.1.0.mca
index 5cb2a52e..527ed7ae 100644
Binary files a/jars/saves/MCP Development World/region/r.1.0.mca and b/jars/saves/MCP Development World/region/r.1.0.mca differ
diff --git a/jars/saves/MCP Development World/session.lock b/jars/saves/MCP Development World/session.lock
index c5efaa10..818c58c5 100644
Binary files a/jars/saves/MCP Development World/session.lock and b/jars/saves/MCP Development World/session.lock differ
diff --git a/jars/usercache.json b/jars/usercache.json
index 751cfd0f..e59205c8 100644
--- a/jars/usercache.json
+++ b/jars/usercache.json
@@ -1 +1 @@
-[{"name":"Player474","uuid":"fd848f75-c1a0-33b6-9d05-284593849e10","expiresOn":"2020-08-20 00:08:36 +0800"},{"name":"Player959","uuid":"e4e5b30f-b972-382c-b5e5-86c2e785a8a6","expiresOn":"2020-08-19 23:50:24 +0800"}]
\ No newline at end of file
+[{"name":"Player647","uuid":"3dc994a6-e4ba-3e8a-9bf9-4271ccca9810","expiresOn":"2020-08-20 18:28:23 +0800"},{"name":"Player959","uuid":"e4e5b30f-b972-382c-b5e5-86c2e785a8a6","expiresOn":"2020-08-19 23:50:24 +0800"},{"name":"Player474","uuid":"fd848f75-c1a0-33b6-9d05-284593849e10","expiresOn":"2020-08-20 00:08:36 +0800"}]
\ No newline at end of file
diff --git a/src/minecraft/App.java b/src/minecraft/App.java
new file mode 100644
index 00000000..97b30227
--- /dev/null
+++ b/src/minecraft/App.java
@@ -0,0 +1,16 @@
+import net.minecraft.util.math.MathHelper;
+
+/**
+ * @author WangTingZheng
+ * @date 2020/7/20 20:43
+ * @features
+ */
+public class App {
+
+ public static void main(String[] args) {
+ byte[] te = new byte[255];
+ for (int i = 0; i < 255; i++) {
+ System.out.println("i="+i+" i >> 4 = "+(i>>4)+"| i & 15 = "+(i&15));
+ }
+ }
+}
diff --git a/src/minecraft/net/minecraft/util/math/MathHelper.java b/src/minecraft/net/minecraft/util/math/MathHelper.java
index 7712831a..4a2a8176 100644
--- a/src/minecraft/net/minecraft/util/math/MathHelper.java
+++ b/src/minecraft/net/minecraft/util/math/MathHelper.java
@@ -363,6 +363,9 @@ public class MathHelper
/**
* Returns the input value rounded up to the next highest power of two.
+ * 返回输入值四舍五入到二的次高幂,就是得到一个最小的,比value值要大的2的次幂
+ * @param value 输入的值
+ * @return 最小的,比value值要大的2的次幂
*/
public static int smallestEncompassingPowerOfTwo(int value)
{
@@ -387,11 +390,13 @@ public class MathHelper
* Uses a B(2, 5) De Bruijn sequence and a lookup table to efficiently calculate the log-base-two of the given
* value. Optimized for cases where the input value is a power-of-two. If the input value is not a power-of-two,
* then subtract 1 from the return value.
+ * 使用一个 B(2,5) De Bruijn 序列 和一个 查阅表格去高效地计算log2(Value)的值,当输入值为2的幂次的时候,这种方法会有优化,如果输入的
+ * 值不是2的幂次,就把返回值减去1
*/
public static int log2DeBruijn(int value)
{
- value = isPowerOfTwo(value) ? value : smallestEncompassingPowerOfTwo(value);
- return MULTIPLY_DE_BRUIJN_BIT_POSITION[(int)((long)value * 125613361L >> 27) & 31];
+ value = isPowerOfTwo(value) ? value : smallestEncompassingPowerOfTwo(value);//输入的值是2的次方?是,value不变,不是,value是最大的比value小的2的次幂
+ return MULTIPLY_DE_BRUIJN_BIT_POSITION[(int)((long)value * 125613361L >> 27) & 31];//
}
/**
diff --git a/src/minecraft/net/minecraft/world/World.java b/src/minecraft/net/minecraft/world/World.java
index d4dfad2b..ca8bec8a 100644
--- a/src/minecraft/net/minecraft/world/World.java
+++ b/src/minecraft/net/minecraft/world/World.java
@@ -799,6 +799,7 @@ public abstract class World implements IBlockAccess
/**
* Gets the lowest height of the chunk where sunlight directly reaches
+ * 获取阳光直接到达的块的最低高度
*/
public int getChunksLowestHorizon(int x, int z)
{
diff --git a/src/minecraft/net/minecraft/world/chunk/BlockStateContainer.java b/src/minecraft/net/minecraft/world/chunk/BlockStateContainer.java
index 6925379e..8f0d8051 100644
--- a/src/minecraft/net/minecraft/world/chunk/BlockStateContainer.java
+++ b/src/minecraft/net/minecraft/world/chunk/BlockStateContainer.java
@@ -21,11 +21,26 @@ public class BlockStateContainer implements IBlockStatePaletteResizer
this.setBits(4);
}
+ /**
+ * 完成坐标到下标的转换,这似乎是一个256*16*1的长方体,是一个chunk的1/16,一片
+ * @param x x轴坐标
+ * @param y y轴坐标
+ * @param z z轴坐标
+ * @return 方块的下标
+ */
private static int getIndex(int x, int y, int z)
{
return y << 8 | z << 4 | x;
}
+ /**
+ * 传入本类中的bits参数
+ * 分三类:
+ * 小于等于4的,bits会被设置为4,palette对象会被初始化为BlockStatePaletteLinear的对象
+ * 大于4小于等于8的,bits会不变,palette对象会被初始化为BlockStatePaletteHashMap对象
+ * 大于8的,bits
+ * @param bitsIn 传入的bit
+ */
private void setBits(int bitsIn)
{
if (bitsIn != this.bits)
@@ -82,15 +97,27 @@ public class BlockStateContainer implements IBlockStatePaletteResizer
this.storage.setAt(index, i);
}
+ /**
+ * 根据坐标来获取方块状态
+ * @param x x轴坐标
+ * @param y y轴坐标
+ * @param z z轴坐标
+ * @return 方块状态
+ */
public IBlockState get(int x, int y, int z)
{
return this.get(getIndex(x, y, z));
}
+ /**
+ * 根据下标获取方块状态
+ * @param index 下标
+ * @return 方块状态对象
+ */
protected IBlockState get(int index)
{
- IBlockState iblockstate = this.palette.getBlockState(this.storage.getAt(index));
- return iblockstate == null ? AIR_BLOCK_STATE : iblockstate;
+ IBlockState iblockstate = this.palette.getBlockState(this.storage.getAt(index)); //从palette对象中获取,id由storage获取
+ return iblockstate == null ? AIR_BLOCK_STATE : iblockstate; //除去空指针的状态,用空气方块代替
}
public void read(PacketBuffer buf)
diff --git a/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteHashMap.java b/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteHashMap.java
index 9e95eaa4..1dffd08a 100644
--- a/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteHashMap.java
+++ b/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteHashMap.java
@@ -10,7 +10,7 @@ public class BlockStatePaletteHashMap implements IBlockStatePalette
{
private final IntIdentityHashBiMap statePaletteMap;
private final IBlockStatePaletteResizer paletteResizer;
- private final int bits;
+ private final int bits; //id?
public BlockStatePaletteHashMap(int bitsIn, IBlockStatePaletteResizer paletteResizerIn)
{
diff --git a/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteRegistry.java b/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteRegistry.java
index 2440affb..f7132088 100644
--- a/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteRegistry.java
+++ b/src/minecraft/net/minecraft/world/chunk/BlockStatePaletteRegistry.java
@@ -9,7 +9,7 @@ public class BlockStatePaletteRegistry implements IBlockStatePalette
{
public int idFor(IBlockState state)
{
- int i = Block.BLOCK_STATE_IDS.get(state);
+ int i = Block.BLOCK_STATE_IDS.get(state); //从BLOCK_STATE_IDS这个map里进行查询,查询一个对象的id
return i == -1 ? 0 : i;
}
@@ -18,7 +18,7 @@ public class BlockStatePaletteRegistry implements IBlockStatePalette
*/
public IBlockState getBlockState(int indexKey)
{
- IBlockState iblockstate = Block.BLOCK_STATE_IDS.getByValue(indexKey);
+ IBlockState iblockstate = Block.BLOCK_STATE_IDS.getByValue(indexKey); //从BLOCK_STATE_IDS这个map里进行查询,查询一个对象的状态
return iblockstate == null ? Blocks.AIR.getDefaultState() : iblockstate;
}
diff --git a/src/minecraft/net/minecraft/world/chunk/Chunk.java b/src/minecraft/net/minecraft/world/chunk/Chunk.java
index c96bf3b7..7147bafc 100644
--- a/src/minecraft/net/minecraft/world/chunk/Chunk.java
+++ b/src/minecraft/net/minecraft/world/chunk/Chunk.java
@@ -47,35 +47,56 @@ public class Chunk
/**
* Used to store block IDs, block MSBs, Sky-light maps, Block-light maps, and metadata. Each entry corresponds to a
* logical segment of 16x16x16 blocks, stacked vertically.
+ * 通常被用来存储方块id,方块msbs,全局光照maps,局部光照maps,还有一些元数据,每一个入口对应一个16*16*16的方块段,垂直堆叠(也就是(16*16)*16*16)
+ * 就是一个section数组
*/
private final ExtendedBlockStorage[] storageArrays;
/**
* Contains a 16x16 mapping on the X/Z plane of the biome ID to which each colum belongs.
+ * 包含在每个柱所属的生物群落ID的X/Z平面上的16x16映射。
*/
private final byte[] blockBiomeArray;
/**
* A map, similar to heightMap, that tracks how far down precipitation can fall.
+ * 一个类似于heightMap的map,记录降水下降的程度
*/
private final int[] precipitationHeightMap;
- /** Which columns need their skylightMaps updated. */
+ /**
+ * Which columns need their skylightMaps updated.
+ * 哪些列需要更新全局光照
+ * */
private final boolean[] updateSkylightColumns;
- /** Whether or not this Chunk is currently loaded into the World */
+ /**
+ * Whether or not this Chunk is currently loaded into the World
+ * 记录当前这个chunk是否被加载进这个世界
+ * */
private boolean loaded;
- /** Reference to the World object. */
+ /**
+ * Reference to the World object.
+ * 世界对象的引用
+ * */
private final World world;
+ /*
+ * 一个256长度的数组,因为一个chunk的底边是256个方块的
+ */
private final int[] heightMap;
- /** The x coordinate of the chunk. */
+ /**
+ * The x coordinate of the chunk.
+ * 这个chunk的x轴
+ * */
public final int x;
- /** The z coordinate of the chunk. */
+ /** The z coordinate of the chunk.
+ * 这个chunk的z轴
+ * */
public final int z;
- private boolean isGapLightingUpdated;
+ private boolean isGapLightingUpdated; //间隙照明是否更新
private final Map tileEntities;
private final ClassInheritanceMultiMap[] entityLists;
@@ -86,34 +107,52 @@ public class Chunk
/**
* Set to true if the chunk has been modified and needs to be updated internally.
+ * 如果块已被修改并需要内部更新,则设置为true。
*/
private boolean dirty;
/**
* Whether this Chunk has any Entities and thus requires saving on every tick
+ * 此区块是否有任何实体,因此每次勾选都需要保存
*/
private boolean hasEntities;
- /** The time according to World.worldTime when this chunk was last saved */
+ /**
+ * The time according to World.worldTime when this chunk was last saved
+ * 根据World.worldTime的上次保存此块的时间
+ * */
private long lastSaveTime;
- /** Lowest value in the heightmap. */
+ /**
+ * Lowest value in the heightmap.
+ * 在heightmap列表中的最低值
+ * */
private int heightMapMinimum;
- /** the cumulative number of ticks players have been in this chunk */
+ /**
+ * the cumulative number of ticks players have been in this chunk
+ * 在这个chunk中,ticks 玩家的累计数值
+ * */
private long inhabitedTime;
/**
* Contains the current round-robin relight check index, and is implied as the relight check location as well.
+ * 包含当前的循环重新点火检查索引,并暗示为重新点火检查位置。
*/
private int queuedLightChecks;
private final ConcurrentLinkedQueue tileEntityPosQueue;
public boolean unloadQueued;
+ /**
+ * 创建一个空的chunk对象,也就是只是新建,不赋值
+ * @param worldIn 世界对象
+ * @param x chunk的x坐标
+ * @param z chunk的z坐标
+ */
public Chunk(World worldIn, int x, int z)
{
- this.storageArrays = new ExtendedBlockStorage[16];
- this.blockBiomeArray = new byte[256];
+ this.storageArrays = new ExtendedBlockStorage[16]; //初始化section的list
+ this.blockBiomeArray = new byte[256]; //
this.precipitationHeightMap = new int[256];
this.updateSkylightColumns = new boolean[256];
this.tileEntities = Maps.newHashMap();
@@ -134,30 +173,38 @@ public class Chunk
Arrays.fill(this.blockBiomeArray, (byte) - 1);
}
+ /**
+ * 从ChunkPrimer中获取方块状态,把它们填入到所对应的chunk中
+ * @param worldIn chunk所在的世界
+ * @param primer ChunkPrimer变量
+ * @param x chunk的x轴位置
+ * @param z chunk的z轴位置,为什么没有y呢?因为以一个chunk来讲,他们是平面的
+ */
public Chunk(World worldIn, ChunkPrimer primer, int x, int z)
{
- this(worldIn, x, z);
+ this(worldIn, x, z); //调用上一个构造方法,初始化各个变量
int i = 256;
boolean flag = worldIn.provider.hasSkyLight();
+ //其本质是初始化chunk里所有区块的状态
for (int j = 0; j < 16; ++j)
{
for (int k = 0; k < 16; ++k)
{
- for (int l = 0; l < 256; ++l)
+ for (int l = 0; l < 256; ++l) //遍历一个chunk
{
- IBlockState iblockstate = primer.getBlockState(j, l, k);
+ IBlockState iblockstate = primer.getBlockState(j, l, k); //获取一个方块状态
- if (iblockstate.getMaterial() != Material.AIR)
+ if (iblockstate.getMaterial() != Material.AIR) //如果这个方块不是空气
{
- int i1 = l >> 4;
+ int i1 = l >> 4; //一个chunk是256/16个section,此处是根据block的位置算出它在哪一个section
- if (this.storageArrays[i1] == NULL_BLOCK_STORAGE)
+ if (this.storageArrays[i1] == NULL_BLOCK_STORAGE) //如果这个section为空
{
- this.storageArrays[i1] = new ExtendedBlockStorage(i1 << 4, flag);
+ this.storageArrays[i1] = new ExtendedBlockStorage(i1 << 4, flag); //根据section的id计算出能代表一个section的y的值,先右移再左移相当于取整了
}
- this.storageArrays[i1].set(j, l & 15, k, iblockstate);
+ this.storageArrays[i1].set(j, l & 15, k, iblockstate); //设置方块状态,&上15是为了获得这一个区块在它所在section的位置
}
}
}
@@ -166,12 +213,18 @@ public class Chunk
/**
* Checks whether the chunk is at the X/Z location specified
+ * 判断这个chunk是否在所给定的坐标点上
*/
public boolean isAtLocation(int x, int z)
{
return x == this.x && z == this.z;
}
+ /**
+ * 从方块坐标获得方块高度,由于方块坐标不一定在0-15之间,所以需要取&来保证
+ * @param pos 方块坐标
+ * @return 高度
+ */
public int getHeight(BlockPos pos)
{
return this.getHeightValue(pos.getX() & 15, pos.getZ() & 15);
@@ -179,12 +232,17 @@ public class Chunk
/**
* Returns the value in the height map at this x, z coordinate in the chunk
+ * 获取x,z的地形高度
*/
public int getHeightValue(int x, int z)
{
- return this.heightMap[z << 4 | x];
+ return this.heightMap[z << 4 | x]; //把x,z转化为0-255的值,也就是说找到一个方块的坐标,转化为它的序号
}
+ /**
+ * 获得最上面的非空section
+ * @return
+ */
@Nullable
private ExtendedBlockStorage getLastExtendedBlockStorage()
{
@@ -201,6 +259,8 @@ public class Chunk
/**
* Returns the topmost ExtendedBlockStorage instance for this Chunk that actually contains a block.
+ * 返回此实际包含块的块的最顶层ExtendedBlockStorage实例。
+ * 返回的是能代表它的y坐标
*/
public int getTopFilledSegment()
{
@@ -210,6 +270,7 @@ public class Chunk
/**
* Returns the ExtendedBlockStorage array for this Chunk.
+ * 从chunk返回section列表
*/
public ExtendedBlockStorage[] getBlockStorageArray()
{
@@ -218,42 +279,45 @@ public class Chunk
/**
* Generates the height map for a chunk from scratch
+ * 从头开始生成chunk的高度map
+ * 本质上是赋值降水量高度map和高度map
*/
protected void generateHeightMap()
{
- int i = this.getTopFilledSegment();
- this.heightMapMinimum = Integer.MAX_VALUE;
+ int i = this.getTopFilledSegment(); //获得顶端非空section
+ this.heightMapMinimum = Integer.MAX_VALUE; //设定heightMap中的最小值的初始值是int类型的最大值
for (int j = 0; j < 16; ++j)
{
- for (int k = 0; k < 16; ++k)
+ for (int k = 0; k < 16; ++k) //遍历底面
{
- this.precipitationHeightMap[j + (k << 4)] = -999;
+ this.precipitationHeightMap[j + (k << 4)] = -999; //赋值降水量???-999是没有降水的意思吗?毕竟在地下 TODO:j + (k << 4)是怎么来的,-999又是什么意思
- for (int l = i + 16; l > 0; --l)
+ for (int l = i + 16; l > 0; --l) //从顶端非空section的上一个section开始
{
- IBlockState iblockstate = this.getBlockState(j, l - 1, k);
+ IBlockState iblockstate = this.getBlockState(j, l - 1, k); //获得方块状态
- if (iblockstate.getLightOpacity() != 0)
+ if (iblockstate.getLightOpacity() != 0) //如果方块不透明度不等于0,也就是方块不是透明的,从上往下第一个不透明方块代表最高值
{
- this.heightMap[k << 4 | j] = l;
+ this.heightMap[k << 4 | j] = l; //根据输入的平面坐标,转化为序号,把高度传进去,顶端非空section的第一个透明方块,作为高度
- if (l < this.heightMapMinimum)
+ if (l < this.heightMapMinimum) //如果高度小于当前最小值,就替换
{
- this.heightMapMinimum = l;
+ this.heightMapMinimum = l; //把旧高度最小值替换了
}
- break;
+ break; //找到了就跳出
}
}
}
}
- this.dirty = true;
+ this.dirty = true; //设定区块以改变,需要更新
}
/**
* Generates the initial skylight map for the chunk upon generation or load.
+ * 生成或加载时生成块的初始全局光照
*/
public void generateSkylightMap()
{
@@ -266,9 +330,9 @@ public class Chunk
{
this.precipitationHeightMap[j + (k << 4)] = -999;
- for (int l = i + 16; l > 0; --l)
+ for (int l = i + 16; l > 0; --l) //从第一个空section开始
{
- if (this.getBlockLightOpacity(j, l - 1, k) != 0)
+ if (this.getBlockLightOpacity(j, l - 1, k) != 0) //和generateHeightMap基本一样,只不过这里获得透明度的方法合一起写了
{
this.heightMap[k << 4 | j] = l;
@@ -277,91 +341,94 @@ public class Chunk
this.heightMapMinimum = l;
}
- break;
+ break; //找到一个不透明方块,就跳出,从上往下
}
}
- if (this.world.provider.hasSkyLight())
+ if (this.world.provider.hasSkyLight()) //如果有全局光照
{
- int k1 = 15;
- int i1 = i + 16 - 1;
+ int k1 = 15; //没有其它方块光线影响下,太阳照射到方块上的亮度
+ int i1 = i + 16 - 1; //获取不透明方块的y轴坐标,未被操作过的最上面的方块
while (true)
{
- int j1 = this.getBlockLightOpacity(j, i1, k);
+ int j1 = this.getBlockLightOpacity(j, i1, k); //获取当前方块的不透明度
- if (j1 == 0 && k1 != 15)
+ if (j1 == 0 && k1 != 15) //如果不透明度等于0,也就是全透明,也就是上面有一个空气,且至少已经经过一次循环了,j1=0,k1=15时候啥都没减,这是啥原因??
{
- j1 = 1;
+ j1 = 1; //设置遮挡的透明度为1,表示每经过一个空气方块就折损1
}
- k1 -= j1;
+ k1 -= j1; //当前透明度减去遮挡透明度
- if (k1 > 0)
+ if (k1 > 0) //如果这个方块还能被看见的话
{
- ExtendedBlockStorage extendedblockstorage = this.storageArrays[i1 >> 4];
+ ExtendedBlockStorage extendedblockstorage = this.storageArrays[i1 >> 4]; //根据y坐标获取section对象,i1>>4表示此区块是在哪个section内的(0-15)
- if (extendedblockstorage != NULL_BLOCK_STORAGE)
+ if (extendedblockstorage != NULL_BLOCK_STORAGE) //如果section非空
{
- extendedblockstorage.setSkyLight(j, i1 & 15, k, k1);
- this.world.notifyLightSet(new BlockPos((this.x << 4) + j, i1, (this.z << 4) + k));
+ extendedblockstorage.setSkyLight(j, i1 & 15, k, k1); //设置这个方块的全局光照为减去阻碍的透明度,i&15是计算该区块在所在section的哪一个位置的(0-15)
+ this.world.notifyLightSet(new BlockPos((this.x << 4) + j, i1, (this.z << 4) + k)); //提醒更新方块关照
}
}
- --i1;
+ --i1; //进行下一个方块的光照的更新
- if (i1 <= 0 || k1 <= 0)
+ if (i1 <= 0 || k1 <= 0) //如果方块到头了或者光线看不见的话
{
- break;
+ break; //就停止
}
}
}
}
}
- this.dirty = true;
+ this.dirty = true; //把区块标记为脏,方便下一个tick时候更新
}
/**
* Propagates a given sky-visible block's light value downward and upward to neighboring blocks as necessary.
+ * 根据需要,将给定天空可见块的灯光值向下和向上传播到相邻块。
+ * 这篇文章提到了这一点:https://www.zhihu.com/question/24459078/answer/133609241,还指出了一个bug
*/
private void propagateSkylightOcclusion(int x, int z)
{
- this.updateSkylightColumns[x + z * 16] = true;
- this.isGapLightingUpdated = true;
+ this.updateSkylightColumns[x + z * 16] = true; //x+z*16是计算(x, z)确定的方块在平面上的位置,这个点代表一列也就是1*255,把它设置为需要更新
+ this.isGapLightingUpdated = true; //间隙照明是否更新设置为真,TODO:不知道啥意思
}
private void recheckGaps(boolean onlyOne)
{
- this.world.profiler.startSection("recheckGaps");
+ this.world.profiler.startSection("recheckGaps"); //TODO: 不知道啥意思
- if (this.world.isAreaLoaded(new BlockPos(this.x * 16 + 8, 0, this.z * 16 + 8), 16))
+ if (this.world.isAreaLoaded(new BlockPos(this.x * 16 + 8, 0, this.z * 16 + 8), 16)) //以前面这个方块为中心,半径为16的区域内,前面这个方块刚好是这个chunk相邻的chunk
{
for (int i = 0; i < 16; ++i)
{
- for (int j = 0; j < 16; ++j)
+ for (int j = 0; j < 16; ++j) //遍历底面方块
{
- if (this.updateSkylightColumns[i + j * 16])
+ if (this.updateSkylightColumns[i + j * 16]) //如果底面方块所在列需要全局光照更新
{
- this.updateSkylightColumns[i + j * 16] = false;
- int k = this.getHeightValue(i, j);
- int l = this.x * 16 + i;
- int i1 = this.z * 16 + j;
- int j1 = Integer.MAX_VALUE;
+ this.updateSkylightColumns[i + j * 16] = false; //取消更新,因为接下来要更新了
+ int k = this.getHeightValue(i, j); //获得该列的高度
+ int l = this.x * 16 + i; //获取该列的x坐标
+ int i1 = this.z * 16 + j; //获取该列的z坐标
+ int j1 = Integer.MAX_VALUE; //设置获取阳光直接到达的块的最低高度最大值
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL)
{
+ //把当前获取阳光直接到达的块的最低高度和已有的获取阳光直接到达的块的最低高度比较,取最小
j1 = Math.min(j1, this.world.getChunksLowestHorizon(l + enumfacing.getFrontOffsetX(), i1 + enumfacing.getFrontOffsetZ()));
}
- this.checkSkylightNeighborHeight(l, i1, j1);
+ this.checkSkylightNeighborHeight(l, i1, j1); //检查天空可见块旁边的块的高度,并根据需要安排照明更新。
for (EnumFacing enumfacing1 : EnumFacing.Plane.HORIZONTAL)
{
this.checkSkylightNeighborHeight(l + enumfacing1.getFrontOffsetX(), i1 + enumfacing1.getFrontOffsetZ(), k);
}
- if (onlyOne)
+ if (onlyOne) //如果只操作一列的话,就停止了
{
this.world.profiler.endSection();
return;
@@ -378,10 +445,11 @@ public class Chunk
/**
* Checks the height of a block next to a sky-visible block and schedules a lighting update as necessary.
+ * 检查天空可见块旁边的块的高度,并根据需要安排照明更新。
*/
private void checkSkylightNeighborHeight(int x, int z, int maxValue)
{
- int i = this.world.getHeight(new BlockPos(x, 0, z)).getY();
+ int i = this.world.getHeight(new BlockPos(x, 0, z)).getY(); //获取该chunk代表点的真正y
if (i > maxValue)
{
@@ -1310,18 +1378,19 @@ public class Chunk
}
/**
- * Accepts a 256-entry array that contains a 16x16 mapping on the X/Z plane of block positions in this Chunk to
- * biome IDs.
+ * Accepts a 256-entry array that contains a 16x16 mapping on the X/Z plane of block positions in this Chunk to biome IDs.
+ * 接受一个256项数组,该数组包含该块中块位置X/Z平面上的16x16映射到biome IDs。
+ * 这里是chunk类中唯一一个可以写入blockBiomeArray的方法,构造方法只是初始化了变量
*/
public void setBiomeArray(byte[] biomeArray)
{
- if (this.blockBiomeArray.length != biomeArray.length)
+ if (this.blockBiomeArray.length != biomeArray.length) //如果传入的数组长度不符合要求,就报错
{
LOGGER.warn("Could not set level chunk biomes, array length is {} instead of {}", Integer.valueOf(biomeArray.length), Integer.valueOf(this.blockBiomeArray.length));
}
else
{
- System.arraycopy(biomeArray, 0, this.blockBiomeArray, 0, this.blockBiomeArray.length);
+ System.arraycopy(biomeArray, 0, this.blockBiomeArray, 0, this.blockBiomeArray.length); //拷贝数组到blockBiomeArray
}
}
diff --git a/src/minecraft/net/minecraft/world/chunk/IBlockStatePalette.java b/src/minecraft/net/minecraft/world/chunk/IBlockStatePalette.java
index 6ec3935b..713b56a0 100644
--- a/src/minecraft/net/minecraft/world/chunk/IBlockStatePalette.java
+++ b/src/minecraft/net/minecraft/world/chunk/IBlockStatePalette.java
@@ -4,10 +4,29 @@ import javax.annotation.Nullable;
import net.minecraft.block.state.IBlockState;
import net.minecraft.network.PacketBuffer;
+/**
+ * 这个BlockStatePalette似乎也是一种方块状态,wiki上讲它存储着一个方块的以下信息:
+ * Name: Block-ID-name of the block
+ * Properties: Only for blocks that have different states. Properties of the block state
+ * property-name: The value of the block state property.
+ * 名字:方块的id名字
+ * 属性:只对有不同状态的方块,方块状态的属性
+ * 属性名称:方块状态的属性值
+ */
public interface IBlockStatePalette
{
+ /**
+ * 从BlockState对象上获取id
+ * @param state IBlockState对象
+ * @return id
+ */
int idFor(IBlockState state);
+ /**
+ * 使用id生成BlockState
+ * @param indexKey 方块调色板id
+ * @return IBlockState 对象
+ */
@Nullable
/**
diff --git a/src/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java b/src/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
index e0c0bd37..28b54c2c 100644
--- a/src/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
+++ b/src/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java
@@ -377,27 +377,29 @@ public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO
/**
* Reads the data stored in the passed NBTTagCompound and creates a Chunk with that data in the passed World.
* Returns the created Chunk.
+ * 读取存储在传递的NBTTagCompound中的数据,并在传递的世界中使用该数据创建块。
+ * 返回创建的chunk
*/
private Chunk readChunkFromNBT(World worldIn, NBTTagCompound compound)
{
- int i = compound.getInteger("xPos");
- int j = compound.getInteger("zPos");
- Chunk chunk = new Chunk(worldIn, i, j);
- chunk.setHeightMap(compound.getIntArray("HeightMap"));
- chunk.setTerrainPopulated(compound.getBoolean("TerrainPopulated"));
- chunk.setLightPopulated(compound.getBoolean("LightPopulated"));
- chunk.setInhabitedTime(compound.getLong("InhabitedTime"));
- NBTTagList nbttaglist = compound.getTagList("Sections", 10);
+ int i = compound.getInteger("xPos"); //获取chunk的x坐标
+ int j = compound.getInteger("zPos"); //获取chunk的z坐标
+ Chunk chunk = new Chunk(worldIn, i, j); //创建一个空的chunk对象
+ chunk.setHeightMap(compound.getIntArray("HeightMap")); // 从NBT中读取并设置heightMap
+ chunk.setTerrainPopulated(compound.getBoolean("TerrainPopulated")); //从NBT中读取并设置TerrainPopulated(地形填充)
+ chunk.setLightPopulated(compound.getBoolean("LightPopulated")); //从NBT中读取并设置LightPopulated(光线填充)
+ chunk.setInhabitedTime(compound.getLong("InhabitedTime")); //从NBT中读取并设置InhabitedTime(有人居住时间)
+ NBTTagList nbttaglist = compound.getTagList("Sections", 10); //获取section
int k = 16;
- ExtendedBlockStorage[] aextendedblockstorage = new ExtendedBlockStorage[16];
- boolean flag = worldIn.provider.hasSkyLight();
+ ExtendedBlockStorage[] aextendedblockstorage = new ExtendedBlockStorage[16]; //创建section空数组
+ boolean flag = worldIn.provider.hasSkyLight(); //获取是否有全局光照
- for (int l = 0; l < nbttaglist.tagCount(); ++l)
+ for (int l = 0; l < nbttaglist.tagCount(); ++l) //遍历section
{
- NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(l);
- int i1 = nbttagcompound.getByte("Y");
- ExtendedBlockStorage extendedblockstorage = new ExtendedBlockStorage(i1 << 4, flag);
- byte[] abyte = nbttagcompound.getByteArray("Blocks");
+ NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(l); //获取一个section的内容
+ int i1 = nbttagcompound.getByte("Y"); //获取section的y值(0-15)
+ ExtendedBlockStorage extendedblockstorage = new ExtendedBlockStorage(i1 << 4, flag); //获取section的真正的y值并创建section对象
+ byte[] abyte = nbttagcompound.getByteArray("Blocks"); //获取方块
NibbleArray nibblearray = new NibbleArray(nbttagcompound.getByteArray("Data"));
NibbleArray nibblearray1 = nbttagcompound.hasKey("Add", 7) ? new NibbleArray(nbttagcompound.getByteArray("Add")) : null;
extendedblockstorage.getData().setDataFromNBT(abyte, nibblearray, nibblearray1);
@@ -408,11 +410,11 @@ public class AnvilChunkLoader implements IChunkLoader, IThreadedFileIO
extendedblockstorage.setSkyLight(new NibbleArray(nbttagcompound.getByteArray("SkyLight")));
}
- extendedblockstorage.recalculateRefCounts();
- aextendedblockstorage[i1] = extendedblockstorage;
+ extendedblockstorage.recalculateRefCounts(); //持续计算非空气方块
+ aextendedblockstorage[i1] = extendedblockstorage; //把section加入到section数组中
}
- chunk.setStorageArrays(aextendedblockstorage);
+ chunk.setStorageArrays(aextendedblockstorage); //把section数组加入到chunk中
if (compound.hasKey("Biomes", 7))
{