Git Product home page Git Product logo

ears's Introduction

Ears

Faithful fancy fashion features for fuzzy folk.

The GitHub repository for Ears is now a mirror of the Gitea repository. GitHub-side issues will still be responded to.

Ears is a player model customization mod available for a dizzying number of Minecraft versions.

Get it and/or learn more at CurseForge, Modrinth, or Glass Repo.

Check out the Manipulator!

Mappings Notice: Ears platform ports use a variety of mappings, including Plasma, Yarn, MCP, and Mojmap. References to these mappings are made even in common code. Viewer discretion is advised.

Using the API

Current API version

Ears provides an API (identical for all ports) that allows forcing Ears features to not render, or to change whether or not Ears thinks the player is wearing some kinds of equipment or has elytra equipped, what Ears features a player has set, etc.

You can add it to your mod like so (it's the same for Fabric or Forge):

repositories {
	maven {
		url "https://repo.unascribed.com"
		content {
			includeGroup "com.unascribed"
		}
	}
}

dependencies {
	implementation "com.unascribed:ears-api:1.4.5"
}

You can see examples of usage of both current APIs in real code in Fabrication and Yttr. Fabrication uses a state overrider to add support for its /hidearmor system, and Yttr uses the inhibitor system to force things not to render when the diving suit is worn.

ears's People

Contributors

adryd325 avatar andi-makes avatar antonok-edm avatar cynosphere avatar friyes avatar tetratsunami avatar unascribed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ears's Issues

Ears and tail not showing

most likely i did something wrong, but i dont know what is the problem.
my skin:
Rimuru_ears1
i removed optifine as well but it didnt help

Not loading

Not sure what I have done wrong, but I copied the skin from the Skin Manipulator, brought it into my mc launcher, with optifine, on forge, and the mod itself loads just fine, just the tail texture doesn't sadly, any suggestions?

Request for side-facing ears

This mod is really slick and has a lot of promise! I've taken a look at how you've implemented it, and it's really clever. However, it only supports front-facing ears.

Based on how you've done the ears currently, I would offer a suggestion to use the same system but with some tweaks. Instead of #3F23D8 you use #3F23D9 or #3F23D7 to signify the difference in ear position to the mod without adding any toggle GUI or config file, so as to keep the simplicity of the mod. This would tell the mod to render two ear segments instead of one, rotate it, place it at the side of the head instead of the top, and mirror it on the other side.

Obviously the limitation would be that the ears will always be symmetrical, but it would keep the simple nature of the mod, wouldn't require any differences to the existing skin system, and still permit users to make the fronts and backs of the ears.

NPE in shouldSuppressElytra

this ones 1.16 but it gave me the same error message lmk if you want this in a separate thread o:

---- Minecraft Crash Report ----

Time: 11/28/21 12:04 AM
Description: Rendering entity in world

java.lang.NullPointerException: Rendering entity in world
at com.unascribed.ears.common.EarsCommon.shouldSuppressElytra(EarsCommon.java:95)
at net.minecraft.class_979.handler$zle000$render(class_979.java:523)
at net.minecraft.class_979.method_17161(class_979.java)
at net.minecraft.class_979.method_4199(class_979.java:22)
at net.minecraft.class_922.method_4054(class_922.java:204)
at net.minecraft.class_1007.method_4215(class_1007.java:65)
at net.minecraft.class_1007.method_3936(class_1007.java:42)
at net.minecraft.class_898.method_3954(class_898.java:311)
at net.minecraft.class_761.method_22977(class_761.java:2120)
at net.minecraft.class_761.method_22710(class_761.java:1742)
at net.minecraft.class_757.method_3188(class_757.java:1022)
at net.minecraft.class_757.method_3192(class_757.java:693)
at net.minecraft.class_310.method_1523(class_310.java:1048)
at net.minecraft.class_310.method_1514(class_310.java:681)
at net.minecraft.client.main.Main.main(Main.java:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at com.unascribed.ears.common.EarsCommon.shouldSuppressElytra(EarsCommon.java:95)
at net.minecraft.class_979.handler$zle000$render(class_979.java:523)
at net.minecraft.class_979.method_17161(class_979.java)
at net.minecraft.class_979.method_4199(class_979.java:22)
at net.minecraft.class_922.method_4054(class_922.java:204)
at net.minecraft.class_1007.method_4215(class_1007.java:65)
at net.minecraft.class_1007.method_3936(class_1007.java:42)

-- Entity being rendered --
Details:
Entity Type: minecraft:player (net.minecraft.class_745)
Entity ID: 2407130
Entity Name: chigglechen
Entity's Exact location: -18.65, 70.03, 0.56
Entity's Block location: World: (-19,70,0), Chunk: (at 13,4,0 in -2,0; contains blocks -32,0,0 to -17,255,15), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Entity's Momentum: 0.00, 0.00, 0.00
Entity's Passengers: []
Entity's Vehicle: ERROR NullPointerException: null

-- Renderer details --
Details:
Assigned renderer: net.minecraft.class_1007@77a7362c
Location: 2.60,-1.59,-5.37 - World: (2,-2,-6), Chunk: (at 2,-1,10 in 0,-1; contains blocks 0,0,-16 to 15,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Rotation: -99.50252
Delta: 0.68012595
Stacktrace:
at net.minecraft.class_898.method_3954(class_898.java:311)
at net.minecraft.class_761.method_22977(class_761.java:2120)
at net.minecraft.class_761.method_22710(class_761.java:1742)
at net.minecraft.class_757.method_3188(class_757.java:1022)

-- Affected level --
Details:
All players: 30 total; [class_746['Kiwnik'/2406930, l='ClientLevel', x=-21.34, y=70.00, z=5.92], class_745['robinjoelsson'/2171624, l='ClientLevel', x=-24.00, y=70.03, z=0.50], class_745['deadshotnoob_yt'/2404243, l='ClientLevel', x=-64.22, y=94.66, z=-9.44], class_745['Boomslinger'/2405212, l='ClientLevel', x=-50.51, y=102.37, z=-2.75], class_745['eyalmal'/2405591, l='ClientLevel', x=-20.53, y=69.00, z=-1.56], class_745['dsjbabykimo1'/2356148, l='ClientLevel', x=-7.84, y=67.00, z=1.88], class_745['LastNight007'/2401254, l='ClientLevel', x=-4.39, y=67.00, z=-6.74], class_745['bradzo_'/2403749, l='ClientLevel', x=-10.86, y=67.00, z=0.01], class_745['Zyphalopagus'/2404240, l='ClientLevel', x=-12.72, y=67.00, z=0.47], class_745['Vibgyor177'/2404446, l='ClientLevel', x=-5.70, y=67.03, z=-9.55], class_745['fo9oasukah'/58, l='ClientLevel', x=-8.50, y=67.00, z=-4.50], class_745['iTzBixaedPvP'/2397347, l='ClientLevel', x=-2.59, y=67.00, z=-8.88], class_745['farmerskyblock'/2398301, l='ClientLevel', x=-27.78, y=73.55, z=9.15], class_745['GothLunch'/2406068, l='ClientLevel', x=-8.03, y=72.28, z=-2.75], class_745['2qwc8z7m9g'/9, l='ClientLevel', x=3.50, y=68.00, z=-2.50], class_745['budjytt7ae'/11, l='ClientLevel', x=-0.50, y=68.00, z=-8.50], class_745['0zv8n4u0r2'/12, l='ClientLevel', x=1.50, y=68.00, z=-5.50], class_745['h131g1v8v5'/10, l='ClientLevel', x=3.50, y=68.00, z=3.50], class_745['0o0t98ospy'/62, l='ClientLevel', x=13.50, y=69.00, z=17.50], class_745['qZachary'/2403849, l='ClientLevel', x=-4.44, y=69.00, z=-21.50], class_745['Megamindbrain'/2403944, l='ClientLevel', x=46.90, y=96.01, z=-21.37], class_745['1l3v1pgdzf'/1, l='ClientLevel', x=3.50, y=67.00, z=-14.50], class_745['lwanz02t67'/2, l='ClientLevel', x=10.50, y=67.00, z=0.50], class_745['055h76qp8y'/3, l='ClientLevel', x=1.50, y=68.00, z=6.50], class_745['6h7760872u'/5, l='ClientLevel', x=-0.50, y=68.00, z=9.50], class_745['6h7760872u'/7, l='ClientLevel', x=-17.50, y=70.00, z=7.50], class_745['Voiidless'/2406933, l='ClientLevel', x=-7.97, y=70.03, z=-7.69], class_745['TheDaVinCiCoDe1'/2406936, l='ClientLevel', x=-11.88, y=67.00, z=-3.50], class_745['edivorce'/2405306, l='ClientLevel', x=-41.09, y=83.00, z=-61.53], class_745['chigglechen'/2407130, l='ClientLevel', x=-18.65, y=70.03, z=0.56]]
Chunk stats: Client Chunk Cache: 5041, 169
Level dimension: minecraft:overworld
Level spawn location: World: (-24,70,0), Chunk: (at 8,4,0 in -2,0; contains blocks -32,0,0 to -17,255,15), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 227161231 game time, 389000 day time
Server brand: vanilla
Server type: Non-integrated multiplayer server
Stacktrace:
at net.minecraft.class_638.method_8538(class_638.java:617)
at net.minecraft.class_310.method_1587(class_310.java:2239)
at net.minecraft.class_310.method_1514(class_310.java:699)
at net.minecraft.client.main.Main.main(Main.java:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)

-- System Details --
Details:
Minecraft Version: 1.16.5
Minecraft Version ID: 1.16.5
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_51, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 1071928864 bytes (1022 MB) / 1845493760 bytes (1760 MB) up to 2147483648 bytes (2048 MB)
CPUs: 12
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Fabric Mods:
artifice: Artifice 0.14.6+1.16.5
cardinal-components: Cardinal Components API 2.8.3
cardinal-components-base: Cardinal Components API (base) 2.8.3
cardinal-components-block: Cardinal Components API (blocks) 2.8.3
cardinal-components-chunk: Cardinal Components API (chunks) 2.8.3
cardinal-components-entity: Cardinal Components API (entities) 2.8.3
cardinal-components-item: Cardinal Components API (items) 2.8.3
cardinal-components-level: Cardinal Components API (world saves) 2.8.3
cardinal-components-scoreboard: Cardinal Components API (scoreboard) 2.8.3
cardinal-components-util: Cardinal Components API (utilities) 2.8.3
cardinal-components-world: Cardinal Components API (worlds) 2.8.3
cloth-basic-math: Cloth Basic Math 0.5.1
cloth-config2: Cloth Config v4 4.11.26
cosmetic-armor: Cosmetic Armor 1.0.0
curios: Curios API 0.0.13-1.16.5
ears: Ears 1.4.2-pre2
enva: Environmental Armor 1.3.1
extraorigins: Extra Origins 1.16.5-11
fabric: Fabric API 0.34.6+1.16
fabric-api-base: Fabric API Base 0.3.0+c88702897d
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.0.0+dc716ea17d
fabric-biome-api-v1: Fabric Biome API (v1) 3.1.10+3661eaa17d
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+ca58154a7d
fabric-command-api-v1: Fabric Command API (v1) 1.1.1+351679a77d
fabric-commands-v0: Fabric Commands (v0) 0.2.2+ca58154a7d
fabric-containers-v0: Fabric Containers (v0) 0.1.11+9354966b7d
fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.1+ca58154a7d
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.3+ca58154a7d
fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.6+61336ba97d
fabric-entity-events-v1: Fabric Entity Events (v1) 1.1.0+c88702897d
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.2+ca58154a7d
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+ca58154a7d
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.6+ca58154a7d
fabric-item-api-v1: Fabric Item API (v1) 1.2.1+ca58154a7d
fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.7+2868a2287d
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+9354966b7d
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.1+ca58154a7d
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.2.1+ca58154a7d
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.2+ca58154a7d
fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+ca58154a7d
fabric-models-v0: Fabric Models (v0) 0.3.0+bc7a746f7d
fabric-networking-api-v1: Fabric Networking API (v1) 1.0.3+e3c9d0627d
fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.8+ca58154a7d
fabric-networking-v0: Fabric Networking (v0) 0.3.2+ca58154a7d
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.9.5+c88702897d
fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.2+ca58154a7d
fabric-particles-v1: Fabric Particles (v1) 0.2.4+ca58154a7d
fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.4+ca58154a7d
fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.2+2868a2287d
fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.4+ca58154a7d
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 2.3.0+2868a2287d
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+ca58154a7d
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.13+ca58154a7d
fabric-rendering-v0: Fabric Rendering (v0) 1.1.2+ca58154a7d
fabric-rendering-v1: Fabric Rendering (v1) 1.6.0+2868a2287d
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.6+2868a2287d
fabric-screen-api-v1: Fabric Screen API (v1) 1.0.0+c045166c7d
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.5+9354966b7d
fabric-structure-api-v1: Fabric Structure API (v1) 1.1.4+ca58154a7d
fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.1.1+ca58154a7d
fabric-textures-v0: Fabric Textures (v0) 1.0.6+ca58154a7d
fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.7+8183d3957d
fabricloader: Fabric Loader 0.11.3
fallflyinglib: FallFlyingLib 1.1.0
java: Java HotSpot(TM) 64-Bit Server VM 8
minecraft: Minecraft 1.16.5
mm: Manningham Mills 2.2
moborigins: Mob Origins 1.4.0
optifabric: OptiFabric 1.9.6
origins: Origins 0.7.3
origins-classes: Origins: Classes 1.1.1
originsplus: Origins Plus 0.0.2
pehkui: Pehkui 2.2.0+21w20a
reach-entity-attributes: Reach Entity Attributes 1.1.1
satin: Satin 1.5.1
slimeorigin: Slimeorigin 3.0.0
transparent_cosmetics: Transparent Cosmetics 1.2.0
xaerominimap: Xaero's Minimap 21.9.0.1
Launched Version: fabric-loader-0.11.3-1.16.5
Backend library: LWJGL version 3.2.2 build 10
Backend API: GeForce GT 1030/PCIe/SSE2 GL version 4.6.0 NVIDIA 456.71, NVIDIA Corporation
GL Caps: Using framebuffer using OpenGL 3.0
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Client (map_client.txt)
Graphics mode: fancy
Resource Packs: minecraft:transparent_cosmetics, vanilla, Fabric Mods, file/Rainy Day (1_14).zip (incompatible), file/Mizunos 16 Craft JE_1.16.4-1.0.zip
Current Language: English (Canada)
CPU: 12x AMD Ryzen 5 2600X Six-Core Processor
OptiFine Version: OptiFine_1.16.5_HD_U_G8
OptiFine Build: 20210515-161946
Render Distance Chunks: 20
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.6.0 NVIDIA 456.71
OpenGlRenderer: GeForce GT 1030/PCIe/SSE2
OpenGlVendor: NVIDIA Corporation
CpuCount: 12

-- OptiFabric --
Details:
OptiFine jar designed for: 1.16.5
OptiFine jar version: OptiFine_1.16.5_HD_U_G8
OptiFine jar status: Valid OptiFine installer
OptiFine remapped jar: C:\Users\pisce\AppData\Roaming.minecraft.optifine\OptiFine_1.16.5_HD_U_G8\Optifine-mapped.jar
OptiFabric error:

Originally posted by @keyboardjuice in #47 (comment)

Forge 1.7.10 port

This will need to include a backport of 64x64 skin rendering. (Skinport exists but it's very buggy.) After that, sky's the limit. 1.4.7?

Please react to this issue with a ๐Ÿ‘ if you want to see this port.

1.17 fabric version crashes in 1.17.0

---- Minecraft Crash Report ---- // Who set us up the TNT?

Time: 11/27/21, 10:57 PM
Description: Rendering entity in world

java.lang.ArithmeticException: / by zero
at com.unascribed.ears.common.EarsRenderer.render(EarsRenderer.java:306)
at com.unascribed.ears.common.EarsCommon.render(EarsCommon.java:131)
at com.unascribed.ears.common.render.IndirectEarsRenderDelegate.render(IndirectEarsRenderDelegate.java:35)
at com.unascribed.ears.common.render.IndirectEarsRenderDelegate.render(IndirectEarsRenderDelegate.java:23)
at com.unascribed.ears.EarsFeatureRenderer.render(EarsFeatureRenderer.java:51)
at com.unascribed.ears.EarsFeatureRenderer.method_4199(EarsFeatureRenderer.java:37)
at net.minecraft.class_922.method_4054(class_922.java:203)
at net.minecraft.class_1007.method_4215(class_1007.java:64)
at net.minecraft.class_1007.method_3936(class_1007.java:42)
at net.minecraft.class_898.method_3954(class_898.java:178)
at net.minecraft.class_490.method_29977(class_490.java:154)
at com.mojang.blaze3d.systems.RenderSystem.runAsFancy(RenderSystem.java:865)
at net.minecraft.class_490.method_2486(class_490.java:154)
at net.minecraft.class_481.method_2389(class_481.java:778)
at net.minecraft.class_465.method_25394(class_465.java:101)
at net.minecraft.class_485.method_25394(class_485.java:43)
at net.minecraft.class_481.method_25394(class_481.java:689)
at net.minecraft.class_757.method_3192(class_757.java:1279)
at net.minecraft.class_310.method_1523(class_310.java:1114)
at net.minecraft.class_310.method_1514(class_310.java:730)
at net.minecraft.client.main.Main.main(Main.java:217)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at com.unascribed.ears.common.EarsRenderer.render(EarsRenderer.java:306)
at com.unascribed.ears.common.EarsCommon.render(EarsCommon.java:131)
at com.unascribed.ears.common.render.IndirectEarsRenderDelegate.render(IndirectEarsRenderDelegate.java:35)
at com.unascribed.ears.common.render.IndirectEarsRenderDelegate.render(IndirectEarsRenderDelegate.java:23)
at com.unascribed.ears.EarsFeatureRenderer.render(EarsFeatureRenderer.java:51)
at com.unascribed.ears.EarsFeatureRenderer.method_4199(EarsFeatureRenderer.java:37)
at net.minecraft.class_922.method_4054(class_922.java:203)
at net.minecraft.class_1007.method_4215(class_1007.java:64)
at net.minecraft.class_1007.method_3936(class_1007.java:42)

-- Entity being rendered --
Details:
Entity Type: minecraft:player (net.minecraft.class_746)
Entity ID: 181
Entity Name: Kiwnik
Entity's Exact location: -256.86, 75.00, -499.44
Entity's Block location: World: (-257,75,-500), Section: (at 15,11,12 in -17,4,-32; chunk contains blocks -272,0,-512 to -257,255,-497), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Entity's Momentum: 0.00, -0.08, 0.00
Entity's Passengers: []
Entity's Vehicle: null

-- Renderer details --
Details:
Assigned renderer: net.minecraft.class_1007@ed346e
Location: 0.00,0.00,0.00 - World: (0,0,0), Section: (at 0,0,0 in 0,0,0; chunk contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Rotation: 0.0
Delta: 1.0
Stacktrace:
at net.minecraft.class_898.method_3954(class_898.java:178)
at net.minecraft.class_490.method_29977(class_490.java:154)
at com.mojang.blaze3d.systems.RenderSystem.runAsFancy(RenderSystem.java:865)
at net.minecraft.class_490.method_2486(class_490.java:154)
at net.minecraft.class_481.method_2389(class_481.java:778)
at net.minecraft.class_465.method_25394(class_465.java:101)
at net.minecraft.class_485.method_25394(class_485.java:43)
at net.minecraft.class_481.method_25394(class_481.java:689)

-- Screen render details --
Details:
Screen name: net.minecraft.class_481
Mouse location: Scaled: (400, 245). Absolute: (1202.000000, 735.000000)
Screen size: Scaled: (640, 339). Absolute: (1920, 1017). Scale factor of 3.000000

-- Affected level --
Details:
All players: 1 total; [class_746['Kiwnik'/181, l='ClientLevel', x=-256.86, y=75.00, z=-499.44]]
Chunk stats: 2025, 1553
Level dimension: minecraft:overworld
Level spawn location: World: (-64,86,-256), Section: (at 0,6,0 in -4,5,-16; chunk contains blocks -64,0,-256 to -49,255,-241), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Level time: 12910323 game time, 717733 day time
Server brand: fabric
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.class_638.method_8538(class_638.java:476)
at net.minecraft.class_310.method_1587(class_310.java:2399)
at net.minecraft.class_310.method_1514(class_310.java:749)
at net.minecraft.client.main.Main.main(Main.java:217)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)

-- Last reload --
Details:
Reload number: 1
Reload reason: initial
Finished: Yes
Packs: Default, Fabric Mods, Rainy Day (1_14).zip, Mizunos 16 Craft JE_1.17-1.0.zip

-- System Details --
Details:
Minecraft Version: 1.17
Minecraft Version ID: 1.17
Operating System: Windows 10 (amd64) version 10.0
Java Version: 16.0.1, Microsoft
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
Memory: 896410640 bytes (854 MiB) / 2147483648 bytes (2048 MiB) up to 2147483648 bytes (2048 MiB)
CPUs: 12
Processor Vendor: AuthenticAMD
Processor Name: AMD Ryzen 5 2600X Six-Core Processor
Identifier: AuthenticAMD Family 23 Model 8 Stepping 2
Microarchitecture: Zen+
Frequency (GHz): 3.59
Number of physical packages: 1
Number of physical CPUs: 6
Number of logical CPUs: 12
Graphics card #0 name: NVIDIA GeForce GT 1030
Graphics card #0 vendor: NVIDIA (0x10de)
Graphics card #0 VRAM (MB): 2048.00
Graphics card #0 deviceId: 0x1d01
Graphics card #0 versionInfo: DriverVersion=27.21.14.5671
Memory slot #0 capacity (MB): 4096.00
Memory slot #0 clockSpeed (GHz): 2.67
Memory slot #0 type: DDR4
Memory slot #1 capacity (MB): 4096.00
Memory slot #1 clockSpeed (GHz): 2.67
Memory slot #1 type: DDR4
Virtual memory max (MB): 15040.75
Virtual memory used (MB): 12405.05
Swap memory total (MB): 6912.00
Swap memory used (MB): 807.91
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Fabric Mods:
ears: Ears 1.4.1
fabric: Fabric API 0.36.0+1.17
fabric-api-base: Fabric API Base 0.3.0+a02b44633d
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.2.0+2b5c62d03d
fabric-biome-api-v1: Fabric Biome API (v1) 3.1.11+c345aea83d
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+a02b44633d
fabric-command-api-v1: Fabric Command API (v1) 1.1.1+a02b44633d
fabric-commands-v0: Fabric Commands (v0) 0.2.2+92519afa3d
fabric-containers-v0: Fabric Containers (v0) 0.1.12+a02b44633d
fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.2+a02b44633d
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.5+be9da3103d
fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.10+a02b44633d
fabric-entity-events-v1: Fabric Entity Events (v1) 1.1.0+a02b44633d
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.9+a722d8c03d
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+92519afa3d
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.6+a02b44633d
fabric-item-api-v1: Fabric Item API (v1) 1.2.4+a02b44633d
fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.10+b7ab61213d
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+a02b44633d
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.2+36b77c3e3d
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.4+a02b44633d
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.4+a02b44633d
fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+92519afa3d
fabric-models-v0: Fabric Models (v0) 0.3.0+a02b44633d
fabric-networking-api-v1: Fabric Networking API (v1) 1.0.11+b7ab61213d
fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.11+a02b44633d
fabric-networking-v0: Fabric Networking (v0) 0.3.2+92519afa3d
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.9+b7ab61213d
fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.3+a02b44633d
fabric-particles-v1: Fabric Particles (v1) 0.2.4+a02b44633d
fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.10+e2961fee3d
fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.3+676f40fa3d
fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.8+a02b44633d
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.0+a02b44633d
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+a02b44633d
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.13+a02b44633d
fabric-rendering-v0: Fabric Rendering (v0) 1.1.2+92519afa3d
fabric-rendering-v1: Fabric Rendering (v1) 1.6.0+a02b44633d
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.7+b7ab61213d
fabric-screen-api-v1: Fabric Screen API (v1) 1.0.4+155f865c3d
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.8+a02b44633d
fabric-structure-api-v1: Fabric Structure API (v1) 1.1.11+e36969833d
fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.1.4+a02b44633d
fabric-textures-v0: Fabric Textures (v0) 1.0.6+a02b44633d
fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.12+b7ab61213d
fabricloader: Fabric Loader 0.11.6
java: OpenJDK 64-Bit Server VM 16
minecraft: Minecraft 1.17
mm: Manningham Mills 2.2
optifabric: OptiFabric 1.11.1
xaerominimap: Xaero's Minimap 21.11.5
Launched Version: fabric-loader-0.11.6-1.17
Backend library: LWJGL version 3.2.2 build 10
Backend API: GeForce GT 1030/PCIe/SSE2 GL version 4.6.0 NVIDIA 456.71, NVIDIA Corporation
Window size: 1920x1017
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Integrated Server (map_client.txt)
Graphics mode: fancy
Resource Packs: vanilla, Fabric Mods, file/Rainy Day (1_14).zip (incompatible), file/Mizunos 16 Craft JE_1.17-1.0.zip
Current Language: English (Canada)
CPU: 12x AMD Ryzen 5 2600X Six-Core Processor
Player Count: 1 / 8; [class_3222['Kiwnik'/181, l='ServerLevel[The Fishtank (Tmk)]', x=-256.86, y=75.00, z=-499.44]]
Data Packs: vanilla, Fabric Mods
OptiFine Version: OptiFine_1.17_HD_U_G9_pre21
OptiFine Build: 20210612-020007
Render Distance Chunks: 20
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.6.0 NVIDIA 456.71
OpenGlRenderer: GeForce GT 1030/PCIe/SSE2
OpenGlVendor: NVIDIA Corporation
CpuCount: 12

-- OptiFabric --
Details:
OptiFine jar designed for: 1.17
OptiFine jar version: OptiFine_1.17_HD_U_G9_pre21
OptiFine jar status: Valid OptiFine installer
OptiFine remapped jar: C:/Users/pisce/AppData/Roaming/.minecraft/.optifine/OptiFine_1.17_HD_U_G9_pre21/Optifine-mapped.jar
OptiFabric error:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


other mods:
- optifine
- optifabric
- fabric api (of course)
- xaeros minimap

crashes both in solo world and servers

What are Lossy pngs, And how do I fix the blue square?

Hello,
I installed your mod and followed the skin instructions for a skin of my fursona. however, for some odd reason the blue square doesn't want to show up for the mod. where should i set my skin to make it work? does it go in a special folder? thanks.

-- Iolite
rudy cute skin furry fancy tail

Port the mod to 1.8.9 Legacy-Fabric

Just as what the title says.
Though Legacy-Fabric doesn't have many mods (actually there are only two), playing Fabric on 1.8.9 is a strange but interesting thing.

Forge 1.14 port does not work

I'm unable to get a Forge 1.14 or 1.15 dev environment to work; the error is always a variant of Could not find net.minecraftforge:forge:1.14.4-28.1.92_mapped_stable_58-1.14.4. - I've tried many mappings versions and different Forge builds, latest and recommended, some just random, and it simply doesn't work. It seems like the needed files were just deleted from the Forge maven.

I don't dare try and ask questions in an official Forge channel, as I will certainly be immediately banned for the cardinal sins of working on 1.7 mods when 1.7 was still relevant and for alluding to the fact I was using ASM while asking a question to avoid needing ASM in 1.8.

Hoping someone who knows how to fix this will stumble upon this issue.

[1.7.10] 1.8+ skin backport is incomplete

The 1.7.10 version of this mod backports the added skin layer and the asymmetrical limbs of the 1.8+ skin format, but it has the following shortcomings:

  • transparency isn't supported (even though it is on Ears parts). This can be partially fixed by using Et Futurum's enableTransparentAmour option, but it doesn't fix the first person arm.
  • slim skins aren't supported
  • the skin overlay is thicker than it is in newer versions (tested on 1.17.1)

Et Futurum's skin backport has neither of these issues, but it can't be used together with Ears. It would be nice if there was a way to get the best of both worlds. Either by implementing the missing functionality within Ears, or by changing the patching to be less aggressive so it can coexist with EF's skin renderer. EF's skin renderer has poor mod compatiblity since it works by replacing vanilla classes, so the former option would be preferable.

Renderer abstraction

It'd be nice if there were a basic "anchor to $bodyPart, draw quad at $blah with size $foo" abstraction to allow the skin UV mapping code and such to be shared between versions. Before adding any additional regions to the skin I'd like to do this.

Crash when loading heads with broken textures

Friend's creative server has heads that point to now non-existent URLs, and Ears trying to process them causes a crash since they aren't an image format anymore and instead 404 pages.

Crash log
[10:50:16] [main/WARN]: Texture Loading Finished
[10:50:17] [main/WARN]: Error while loading the skin texture
java.io.IOException: Could not load image: Image not of any known type, or corrupt
	at net.minecraft.class_1011.method_4303(class_1011.java:125) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1011.method_4310(class_1011.java:99) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1011.method_4309(class_1011.java:90) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1046.method_22795(class_1046.java:141) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1046.method_4625(class_1046.java:91) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1060.method_24303(class_1060.java:96) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1060.method_4616(class_1060.java:68) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1071.method_4651(class_1071.java:80) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1071.method_4656(class_1071.java:60) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3578(class_836.java:103) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3581(class_836.java:86) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3577(class_836.java:65) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3569(class_836.java:29) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_23079(class_824.java:107) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_23081(class_824.java:96) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_3554(class_824.java:128) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_3555(class_824.java:96) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_761.method_22710(class_761.java:1260) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_757.method_3188(class_757.java:727) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_757.method_3192(class_757.java:546) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1048) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:681) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:215) [intermediary-minecraft-1.16.5-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) [fabric-loader-0.11.2.jar:?]
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146) [fabric-loader-0.11.2.jar:?]
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.2.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
[10:50:18] [main/FATAL]: Reported exception thrown!
net.minecraft.class_148: Registering texture
	at net.minecraft.class_824.method_3554(class_824.java:135) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_3555(class_824.java:96) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_761.method_22710(class_761.java:1260) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_757.method_3188(class_757.java:727) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_757.method_3192(class_757.java:546) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1048) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:681) [intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:215) [intermediary-minecraft-1.16.5-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) [fabric-loader-0.11.2.jar:?]
	at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146) [fabric-loader-0.11.2.jar:?]
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.2.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
Caused by: java.lang.NullPointerException
	at net.minecraft.class_1046.handler$bke000$loadTexture(class_1046.java:536) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1046.method_22795(class_1046.java:148) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1046.method_4625(class_1046.java:91) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1060.method_24303(class_1060.java:96) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1060.method_4616(class_1060.java:68) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1071.method_4651(class_1071.java:80) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_1071.method_4656(class_1071.java:60) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3578(class_836.java:103) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3581(class_836.java:86) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3577(class_836.java:65) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_836.method_3569(class_836.java:29) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_23079(class_824.java:107) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_23081(class_824.java:96) ~[intermediary-minecraft-1.16.5-client.jar:?]
	at net.minecraft.class_824.method_3554(class_824.java:128) ~[intermediary-minecraft-1.16.5-client.jar:?]
	... 22 more
---- Minecraft Crash Report ----
// My bad.

Time: 4/19/21, 10:50 AM
Description: Registering texture

java.lang.NullPointerException: Registering texture
at net.minecraft.class_1046.handler$bke000$loadTexture(class_1046.java:536)
at net.minecraft.class_1046.method_22795(class_1046.java:148)
at net.minecraft.class_1046.method_4625(class_1046.java:91)
at net.minecraft.class_1060.method_24303(class_1060.java:96)
at net.minecraft.class_1060.method_4616(class_1060.java:68)
at net.minecraft.class_1071.method_4651(class_1071.java:80)
at net.minecraft.class_1071.method_4656(class_1071.java:60)
at net.minecraft.class_836.method_3578(class_836.java:103)
at net.minecraft.class_836.method_3581(class_836.java:86)
at net.minecraft.class_836.method_3577(class_836.java:65)
at net.minecraft.class_836.method_3569(class_836.java:29)
at net.minecraft.class_824.method_23079(class_824.java:107)
at net.minecraft.class_824.method_23081(class_824.java:96)
at net.minecraft.class_824.method_3554(class_824.java:128)
at net.minecraft.class_824.method_3555(class_824.java:96)
at net.minecraft.class_761.method_22710(class_761.java:1260)
at net.minecraft.class_757.method_3188(class_757.java:727)
at net.minecraft.class_757.method_3192(class_757.java:546)
at net.minecraft.class_310.method_1523(class_310.java:1048)
at net.minecraft.class_310.method_1514(class_310.java:681)
at net.minecraft.client.main.Main.main(Main.java:215)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at net.minecraft.class_1046.handler$bke000$loadTexture(class_1046.java:536)
at net.minecraft.class_1046.method_22795(class_1046.java:148)
at net.minecraft.class_1046.method_4625(class_1046.java:91)

-- Resource location being registered --
Details:
Resource location: minecraft:skins/4d78a26e6d27fcfe02fce139bdbb407790b95dd6
Texture object class: net.minecraft.class_1046
Stacktrace:
at net.minecraft.class_1060.method_24303(class_1060.java:96)
at net.minecraft.class_1060.method_4616(class_1060.java:68)
at net.minecraft.class_1071.method_4651(class_1071.java:80)
at net.minecraft.class_1071.method_4656(class_1071.java:60)
at net.minecraft.class_836.method_3578(class_836.java:103)
at net.minecraft.class_836.method_3581(class_836.java:86)
at net.minecraft.class_836.method_3577(class_836.java:65)
at net.minecraft.class_836.method_3569(class_836.java:29)
at net.minecraft.class_824.method_23079(class_824.java:107)
at net.minecraft.class_824.method_23081(class_824.java:96)

-- Block Entity Details --
Details:
Name: minecraft:skull // net.minecraft.class_2631
Block: Block{minecraft:player_head}[rotation=10]
Block location: World: (57,66,7), Chunk: (at 9,4,7 in 3,0; contains blocks 48,0,0 to 63,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Block: Block{minecraft:player_head}[rotation=10]
Block location: World: (57,66,7), Chunk: (at 9,4,7 in 3,0; contains blocks 48,0,0 to 63,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Stacktrace:
at net.minecraft.class_824.method_3554(class_824.java:128)
at net.minecraft.class_824.method_3555(class_824.java:96)
at net.minecraft.class_761.method_22710(class_761.java:1260)
at net.minecraft.class_757.method_3188(class_757.java:727)

-- Affected level --
Details:
All players: 1 total; [class_746['Cynosphere'/36, l='ClientLevel', x=48.07, y=77.99, z=65.60]]
Chunk stats: Client Chunk Cache: 729, 490
Level dimension: minecraft:overworld
Level spawn location: World: (0,5,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 424388569 game time, 11392050 day time
Server brand: fabric
Server type: Non-integrated multiplayer server
Stacktrace:
at net.minecraft.class_638.method_8538(class_638.java:449)
at net.minecraft.class_310.method_1587(class_310.java:2239)
at net.minecraft.class_310.method_1514(class_310.java:699)
at net.minecraft.client.main.Main.main(Main.java:215)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)

-- System Details --
Details:
Minecraft Version: 1.16.5
Minecraft Version ID: 1.16.5
Operating System: Windows 10 (amd64) version 10.0
Java Version: 11.0.9.1, AdoptOpenJDK
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), AdoptOpenJDK
Memory: 3354272768 bytes (3198 MB) / 4294967296 bytes (4096 MB) up to 4294967296 bytes (4096 MB)
CPUs: 16
JVM Flags: 9 total; -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=25 -XX:G1HeapRegionSize=32M -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms4096m -Xmx4096m
Mixins in Stacktrace:
net.minecraft.class_1046:
com.minelittlepony.common.mixin.MixinPlayerSkinTexture (kirin.mixin.json)
com.unascribed.ears.mixin.MixinPlayerSkinTexture (ears.mixins.json)
net.minecraft.class_1060:
com.unascribed.fabrication.mixin.a_fixes.better_pause_freezing.MixinTextureManager (fabrication.mixins.json)
net.fabricmc.fabric.mixin.resource.loader.client.KeyedResourceReloadListenerClientMixin (fabric-resource-loader-v0.mixins.json)
net.minecraft.class_1071:
me.pepperbell.anycapes.mixin.PlayerSkinProviderMixin (anycapes.mixins.json)
com.minelittlepony.common.mixin.MixinPlayerSkinProvider (kirin.mixin.json)
net.minecraft.class_824:
fi.dy.masa.tweakeroo.mixin.MixinBlockEntityRenderDispatcher (mixins.tweakeroo.json)
net.fabricmc.fabric.mixin.client.renderer.registry.MixinBlockEntityRenderDispatcher (fabric-renderer-registries-v1.mixins.json)
net.minecraft.class_761:
me.lambdaurora.lambdynlights.mixin.CommonWorldRendererMixin (lambdynlights.mixins.json)
net.fabricmc.fabric.mixin.client.rendering.MixinWorldRenderer (fabric-rendering-v1.mixins.json)
fi.dy.masa.malilib.mixin.MixinWorldRenderer (mixins.malilib.json)
fi.dy.masa.tweakeroo.mixin.MixinWorldRenderer (mixins.tweakeroo.json)
fi.dy.masa.minihud.mixin.IMixinWorldRenderer (mixins.minihud.json)
fi.dy.masa.litematica.mixin.MixinWorldRenderer (mixins.litematica.json)
me.lambdaurora.lambdacontrols.client.mixin.WorldRendererMixin (lambdacontrols.mixins.json)
net.blancworks.figura.mixin.WorldRendererMixin (figura.mixins.json)
net.fabricmc.fabric.mixin.resource.loader.client.KeyedResourceReloadListenerClientMixin (fabric-resource-loader-v0.mixins.json)
me.shedaniel.cloth.mixin.client.events.MixinWorldRenderer (cloth-client-events-v0.mixins.json)
net.torocraft.torohealth.mixin.WorldRendererMixin (torohealth.mixins.json)
net.minecraft.class_757:
pm.c7.utils.mixin.fullbright.MixinGameRenderer (blanket.mixins.json)
io.github.jsnimda.inventoryprofiles.mixin.MixinGameRenderer (mixins.inventoryprofiles.json)
me.shedaniel.slightguimodifications.mixin.MixinGameRenderer (slight-gui-modifications.mixins.json)
me.lambdaurora.lambdacontrols.client.mixin.GameRendererMixin (lambdacontrols.mixins.json)
fi.dy.masa.tweakeroo.mixin.MixinGameRenderer (mixins.tweakeroo.json)
me.shedaniel.cloth.mixin.client.events.MixinGameRenderer (cloth-client-events-v0.mixins.json)
win.baruna.blockmeter.mixin.GameRendererMixin (blockmeter.mixins.json)
com.unascribed.fabrication.mixin.a_fixes.no_night_vision_flash.MixinGameRenderer (fabrication.mixins.json)
io.github.joaoh1.okzoomer.client.mixin.GameRendererMixin (okzoomer.mixins.json)
me.shedaniel.architectury.mixin.fabric.client.MixinGameRenderer (architectury.mixins.json)
net.fabricmc.fabric.mixin.screen.GameRendererMixin (fabric-screen-api-v1.mixins.json)
net.minecraft.class_310:
me.shedaniel.advancementsenlarger.mixin.MixinMinecraftClient (advancements-enlarger.mixins.json)
net.fabricmc.fabric.mixin.screen.MinecraftClientMixin (fabric-screen-api-v1.mixins.json)
fi.dy.masa.tweakeroo.mixin.MixinMinecraftClient (mixins.tweakeroo.json)
me.shedaniel.slightguimodifications.mixin.MixinMinecraft (slight-gui-modifications.mixins.json)
net.fabricmc.fabric.mixin.networking.accessor.MinecraftClientAccessor (fabric-networking-api-v1.mixins.json)
fi.dy.masa.litematica.mixin.MixinMinecraftClient (mixins.litematica.json)
fi.dy.masa.minihud.mixin.MixinMinecraftClient (mixins.minihud.json)
me.shedaniel.cloth.mixin.client.events.MixinMinecraftClient (cloth-client-events-v0.mixins.json)
com.unascribed.fabrication.mixin.a_fixes.uncap_menu_fps.MixinMinecraftClient (fabrication.mixins.json)
me.lambdaurora.lambdynlights.mixin.MinecraftClientMixin (lambdynlights.mixins.json)
net.fabricmc.fabric.mixin.event.interaction.MixinMinecraftClient (fabric-events-interaction-v0.mixins.json)
io.github.joaoh1.okzoomer.client.mixin.MinecraftClientMixin (okzoomer.mixins.json)
net.fabricmc.fabric.mixin.command.client.MinecraftClientMixin (fabric-command-api-v1.mixins.json)
me.lambdaurora.lambdacontrols.client.mixin.MinecraftClientMixin (lambdacontrols.mixins.json)
com.blamejared.controlling.mixin.OpenGuiMixin (controlling.mixins.json)
com.swordglowsblue.artifice.mixin.MixinMinecraftClient (artifice.mixins.json)
squeek.quakemovement.mixin.KeyPressMixin (squake.mixins.json)
me.shedaniel.architectury.mixin.fabric.client.MixinMinecraft (architectury.mixins.json)
me.lambdaurora.spruceui.mixin.MinecraftClientMixin (spruceui.mixins.json)
net.fabricmc.fabric.mixin.registry.sync.client.MixinMinecraftClient (fabric-registry-sync-v0.mixins.json)
net.earthcomputer.multiconnect.mixin.bridge.MinecraftClientAccessor (multiconnect.mixins.json)
de.siphalor.mousewheelie.client.mixin.MixinMinecraftClient (mousewheelie.mixins.json)
squeek.appleskin.mixin.MinecraftClientMixin (appleskin.mixins.json)
net.fabricmc.fabric.mixin.event.lifecycle.client.MinecraftClientMixin (fabric-lifecycle-events-v1.mixins.json)
pm.c7.utils.mixin.MixinTitleBar (blanket.mixins.json)
io.github.jsnimda.inventoryprofiles.mixin.MixinMinecraftClient (mixins.inventoryprofiles.json)
com.rdvdev2.disablecustomworldsadvice.mixin.MixinMinecraftClient (disable_custom_worlds_advice.mixins.json)
net.earthcomputer.multiconnect.mixin.connect.MixinMinecraftClient (multiconnect.mixins.json)
net.earthcomputer.multiconnect.protocols.v1_11_2.mixin.MixinMinecraftClient (multiconnect.1_11_2.mixins.json)
fi.dy.masa.malilib.mixin.MixinMinecraftClient (mixins.malilib.json)
net.minecraft.client.main.Main:
io.github.ultimateboomer.smoothboot.mixin.client.MainMixin (smoothboot.mixins.json)
Fabric Mods:
advancementinfo: AdvancementInfo 1.16.5-fabric0.30.0-1.2
advancements-enlarger: Advancements Enlarger 0.2.3
amecsapi: Amecs API 1.1.3+mc1.16.5
antighost: AntiGhost 1.16.5-fabric0.30.0-1.1.3
anycapes: AnyCapes 1.0.2
appleskin: AppleSkin 1.0.11
architectury: Architectury 1.8.128
artifice: Artifice 0.14.6+1.16.5
autoconfig1u: Auto Config v1 Updated 3.3.1
autofish: Autofish 0.9.2
better-world-list: Better World List 1.0.4-1.16.2
betterdroppeditems: Better Dropped Items 1.2.4-1.16.2
blanket: Blanket 0.0.7
blockmeter: Block Meter 1.5.4-beta
blue_endless_jankson: jankson 1.2.0
cleanview: CleanView 1.16.5-v1-fabric
cloth-basic-math: Cloth Basic Math 0.5.1
cloth-client-events-v0: Cloth Client Events v0 1.5.47
cloth-config2: Cloth Config v4 4.11.14
cmdkeybind: Command Macros 1.5.2-1.16
controlling: Controlling For Fabric 1.1.2
cotton-client-commands: Cotton Client Commands 1.0.1+1.16-rc1
crowdin-translate: CrowdinTranslate 1.2
cullleaves: Cull Leaves 2.0.0
dark-loading-screen: Dark Loading Screen 1.6.3
de_javagl_obj: obj 0.3.0
disable_custom_worlds_advice: Disable Custom Worlds Advice 1.2
ears: Ears 1.2.2
eggtab: Egg Tab 2.1.0+1.16-fabric
enchantedtooltips: Enchanted ToolTips 1.3.4-1.16
fabric: Fabric API 0.32.5+1.16
fabric-api-base: Fabric API Base 0.2.1+9354966b7d
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.0.0+dc716ea17d
fabric-biome-api-v1: Fabric Biome API (v1) 3.1.1+ca58154a7d
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+ca58154a7d
fabric-command-api-v1: Fabric Command API (v1) 1.1.1+351679a77d
fabric-commands-v0: Fabric Commands (v0) 0.2.2+ca58154a7d
fabric-containers-v0: Fabric Containers (v0) 0.1.11+9354966b7d
fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.1+ca58154a7d
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.3+ca58154a7d
fabric-dimensions-v1: fabric-dimensions-v1 2.0.6+9354966b7d
fabric-entity-events-v1: Fabric Entity Events (v1) 1.0.3+ca58154a7d
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.2+ca58154a7d
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+ca58154a7d
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.6+ca58154a7d
fabric-item-api-v1: Fabric Item API (v1) 1.2.1+ca58154a7d
fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.5+351679a77d
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+9354966b7d
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.1+ca58154a7d
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.2.1+ca58154a7d
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.2+ca58154a7d
fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+ca58154a7d
fabric-models-v0: Fabric Models (v0) 0.2.1+ca58154a7d
fabric-networking-api-v1: Fabric Networking API (v1) 1.0.1+ca58154a7d
fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.8+ca58154a7d
fabric-networking-v0: Fabric Networking (v0) 0.3.2+ca58154a7d
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.9.4+9354966b7d
fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.2+ca58154a7d
fabric-particles-v1: Fabric Particles (v1) 0.2.4+ca58154a7d
fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.4+ca58154a7d
fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.1+ca58154a7d
fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.4+ca58154a7d
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 2.2.1+ca58154a7d
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+ca58154a7d
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.13+ca58154a7d
fabric-rendering-v0: Fabric Rendering (v0) 1.1.2+ca58154a7d
fabric-rendering-v1: Fabric Rendering (v1) 1.5.1+ca58154a7d
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.2+ca58154a7d
fabric-screen-api-v1: Fabric Screen API (v1) 1.0.0+c045166c7d
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.5+9354966b7d
fabric-structure-api-v1: Fabric Structure API (v1) 1.1.4+ca58154a7d
fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.1.1+ca58154a7d
fabric-textures-v0: Fabric Textures (v0) 1.0.6+ca58154a7d
fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.6+ca58154a7d
fabrication: Fabrication 1.3.4
fabricloader: Fabric Loader 0.11.2
fiber: fiber 0.23.0-2
figura: Figura 0.0.4n
hatlist: Hat List 1.1-SNAPSHOT
held-item-info: Held Item Info 1.1.3
horsestatsvanilla: Horse Stats Vanilla 4.1.6
hydrogen: Hydrogen 0.2
iamverysmart: I Am Very Smart 2.1.0+mc1.16.1
illuminations: Illuminations 1.4.9
inventoryprofiles: Inventory Profiles 0.4.2
itemmodelfix: Item Model Fix 1.0.0
jankson: Jankson 3.0.1+j1.2.0
java: OpenJDK 64-Bit Server VM 11
kirin: Kirin UI 1.7-1.16.2
kyrptconfig: Kytpt Config 1.1.5-1.16
lambdacontrols: LambdaControls 1.5.0+1.16.2
lambdynlights: LambDynamicLights 1.3.4+1.16
lazydfu: LazyDFU 0.1.2
libgui: LibGui 3.3.5+1.16.5
lightoverlay: Light Overlay 5.8.0
litematica: Litematica 0.0.0-dev.20210120.213004
lithium: Lithium 0.6.4
malilib: MaLiLib 0.10.0-dev.21+arne.5
mambience: MAmbience 3.0.0+1.16.5
minecraft: Minecraft 1.16.5
minihud: MiniHUD 0.19.0-dev.20201103.184029
mixintrace: MixinTrace 1.0.0
mm: Manningham Mills 2.1
modmenu: Mod Menu 1.16.9
mousewheelie: Mouse Wheelie 1.6.4+mc1.16.4
multiconnect: MultiConnect 1.3.34
multiconnect-api: MultiConnect API 1.3.34
okzoomer: Ok Zoomer 4.0.1+1.16.2
org_aperlambda_lambdajcommon: lambdajcommon 1.8.1
org_codehaus_groovy_groovy: groovy 3.0.3
org_codehaus_groovy_groovy-jsr223: groovy-jsr223 3.0.3
org_luaj_luaj-jse: luaj-jse 3.0.1
org_yaml_snakeyaml: snakeyaml 1.26
perspectivemod: Perspective Mod Redux 0.0.5
phosphor: Phosphor 0.7.1+build.11
presencefootsteps: Presence Footsteps r29+1.16.4
pride: Pride Lib 1.0.0+1.16
right-click-clear: Right Click Clear 2.0.2
roughlyenoughitems: Roughly Enough Items 5.10.184
roughlyenoughitems-api: REI (API) 5.10.184
roughlyenoughitems-default-plugin: REI (Default Plugin) 5.10.184
roughlyenoughitems-runtime: REI (Runtime) 5.10.184
roughlyenoughresources: Roughly Enough Resources 2.1.3
slight-gui-modifications: 'Slight' GUI Modifications 1.7.1
smoothboot: Smooth Boot 1.16.4-1.4.0
smoothscrollingeverywhere: Smooth Scrolling Everywhere 3.0.3-unstable
spruceui: SpruceUI 2.0.4+1.16
squake: Squake 2.0.0
tillitbreaks: Till it Breaks 0.1
torohealth: ToroHealth Damage Indicators 1.16.4-fabric-4
transparent: Transparent 2.1.0
tweakeroo: Tweakeroo 0.10.0-dev.20210209.145902
tweed: Tweed API 3.0.0-beta.22
vanguard: Vanguard 1.0.5
viafabric: ViaFabric 0.3.1-SNAPSHOT+build-715.1-mc-1.16
viaversion: ViaVersion 3.2.1
wthit: wthit 2.3.0+1.16.5
Launched Version: MultiMC5
Backend library: LWJGL version 3.2.2 build 10
Backend API: Radeon RX Vega GL version 4.6.14760 Compatibility Profile Context 21.2.3 27.20.14535.3005, ATI Technologies Inc.
GL Caps: Using framebuffer using OpenGL 3.0
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Client (map_client.txt)
Graphics mode: fancy
Resource Packs: vanilla, slightguimodifications:cts_textures, Fabric Mods
Current Language: English (US)
CPU: 16x AMD Ryzen 7 2700 Eight-Core Processor

Ears don't render at the correct height

So, the version I used was 1.8.9, and I noticed a problem with the ears portion, and a problem with both parts of the mod.
The first problem is that, in 1.8.9, the ears render too high, and don't properly merge with the head. That may just be a preference thing, but that's just what I saw.
The second problem is that neither portion moves correctly when the player crouches - they instead just float in the air as though the player were still standing up.

earstest
2021-01-17_13 15 40
2021-01-17_13 15 38
2021-01-17_13 17 30

Manipulator tail angles are wrong under some conditions

If the first tail angle is set to a value >0 and any other tail angle is set to -90, the number of tail segments will be wrong.

This is due to the browser canvas crushing low color values to 0 when the alpha is lower than 50% for reasons unknown. Using putImageData instead of fillRect does not help.

1.7.10 - Slim Arms stop being slim upon death

Before death:
image

image
After respawning:
image

This was observed with only Forge 10.13.4.1614 and Ears1.4.1 installed.

Of interest: Installing bspkrsCore, which adds a renderer to the main menu of the player and a random mob, seems to also display this behavior somewhat. Ater loading up the game for the first time, the player renders correctly on the menu:

image
But after navigating away from the title screen and back, it's broken now:
image

This leads me to believe that the issue only occurs when the player model is completely re-rendered, like when the player respawns or in situations like the model being rendered on the main menu.

"Behind" Ear Mode & Tail Underside

The "behind" ear mode is not affected by ear anchor changes, at least not in the skin manipulator. Would it be possible to make it work as is pictured below.
Screenshot_2

Seeing as there are no unused 12x8 regions left in the skin file. Would it be possible to stitch together two non-adjacent boxes in-game and use them for the tail underside?
Screenshot_5
(The recoloured blue tail has been cut into 8x8 and 8x4 pieces and put into the far right and far left unused squares of same size.)

While the tail underside region is not a necessity as is the case with the ear backside, it would enhance customization.

Black bar on skin

Using the ears skin manipulator I made this skin:
canvas
But in-game a black bar appears on the back of the skin.
image
How to fix?

Glitchy cape movement when boating

When riding a boat, the cape will start twitching very rapidly (perhaps every frame) and move very glitchedly. It's easy to achieve at high speeds like on blue ice, but I've managed to do it on normal water.

Tested on Fabric/1.17.1 and Fabric/1.18-pre5 on commit 5cacfd4.

Backwards/tilted horns?

Basically, it'd be pretty useful to have different angles for the "horns" protrusion, so that skins can be made with horns going backwards rather than forwards. Perhaps an angle slider like the tail position sliders?

Incompatibility with Aquatic Acrobatics

version: 1.2.0

there seems to be an issue with mods that manipulate the crouching to act like 1.14 and above, aquatic acrobatics being the one i tested here. The headpiece doesnt go low enough, nor does the tail.

(showing of head)
fdb187b92684e0e566dc641d75ebebc1
(showing of head and tail)
95dc9f7e35f4fa233ddd746df382273b

p.s., thank you so much for your hard work! its finally working, and its glorious!! I love everything about it and I hope the new documentation for the "new regions" advertised in the changelog come soon, I'm excited to see what they are <3

Incompatible with Canvas on 1.17+

No Ears features render if Canvas is installed.
Tested with Canvas 1.0.2202 (1.17), 1.0.2223 (1.18 pre-releases) and Ears 1.4.2-pre1

Not working?

I am 90% sure this is my fault, but i don't know what to do...
https://paste.ee/p/b1xCp (latest.log)
I copied the skin file from the tutorial, and uploaded it to minecraft.net.
Nothing. No ears....
(modlist is inside latestlog)
image
Any help? (sorry for bothering you)

Incompatibility with Smart Moving and RenderPlayerAPI

The issue

  • When Smart Moving is installed, the player model remains the vanilla one, just with the texture messed up, and an additional pair of (slim) arms being rendered. Ears parts still show up correctly.
    2021-09-01_02 06 05

  • When RenderPlayerAPI is installed, the game crashes when loading a world, since RenderPlayerAPI is trying to cast RenderPlayer.modelBipedMain to its api.player.model.ModelPlayer class, which fails since in amendPlayerRenderer Ears had replaced it with a new ModelBiped instance.

For more context on the second problem, this is what RenderPlayer() looks like with Ears and RenderPlayerAPI both present.

   public RenderPlayer() {
      super(new ModelPlayer(0.0F, "main"), 0.5F);
      RenderPlayerAPI.beforeLocalConstructing(this);
      this.field_77109_a = (ModelBiped)this.field_77045_g;
      this.field_77108_b = new ModelPlayer(1.0F, "chestplate");
      this.field_77111_i = new ModelPlayer(0.5F, "armor");
      Ears.amendPlayerRenderer(this);
      RenderPlayerAPI.afterLocalConstructing(this);
   }

How to fix

These incompatibilities can be fixed in the following way: all ModelBiped and ModelRenderer instances must be modified in-place. See How-to-make-an-existing-mod-compatible-with-Smart-Moving for more details.

As a proof of concept I hacked 64x64 texture support into the right arm in this way. I can confirm this makes the right arm show up correctly with Smart Moving and RenderPlayerAPI installed.
https://gist.github.com/makamys/a248117e7a505764cfb0575119e9d12e

For the slim/fat arms, remember that child models can have their visibility toggled individually, so you could keep both types of arms inside a single ModelRenderer.

Edit: I realized this method may not work correctly in multiplayer when multiple player models are present, further research is needed.

Rendering error on viewing a skin with ears.

Game crashes whenever I try to view my skin. This is the report (let me know if you need more of it)
---- Minecraft Crash Report ----
// Surprise! Haha. Well, this is awkward.

Time: 06/01/21 17:15
Description: Rendering entity in world

java.lang.NoSuchMethodError: com.mojang.blaze3d.matrix.MatrixStack$Entry.func_227870_a_()Lnet/minecraft/client/renderer/Matrix4f;
at com.unascribed.ears.EarsLayerRenderer.renderFront(EarsLayerRenderer.java:131) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.common.EarsCommon.render(EarsCommon.java:54) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.EarsLayerRenderer.render(EarsLayerRenderer.java:56) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.EarsLayerRenderer.func_225628_a_(EarsLayerRenderer.java:32) ~[?:1.1.0] {re:mixin,re:classloading}
at net.minecraft.client.renderer.entity.LivingRenderer.func_225623_a_(LivingRenderer.java:204) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:obfuscate.mixins.json:client.OptifineLivingRendererMixin,pl:mixin:A}
at net.minecraft.client.renderer.entity.PlayerRenderer.func_225623_a_(PlayerRenderer.java:64) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:abnormals_core.mixins.json:client.PlayerRendererMixin,pl:mixin:APP:ears.mixins.json:MixinPlayerRenderer,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.entity.PlayerRenderer.func_225623_a_(PlayerRenderer.java:41) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:abnormals_core.mixins.json:client.PlayerRendererMixin,pl:mixin:APP:ears.mixins.json:MixinPlayerRenderer,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.entity.EntityRendererManager.func_229084_a_(EntityRendererManager.java:310) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:quark.mixins.json:client.EntityRendererManagerMixin,pl:mixin:A}
at net.minecraft.client.gui.screen.inventory.InventoryScreen.func_241611_a_(SourceFile:149) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.gui.screen.inventory.InventoryScreen$$Lambda$15940/1453742288.run(Unknown Source) ~[?:?] {}
at com.mojang.blaze3d.systems.RenderSystem.runAsFancy(SourceFile:1439) ~[?:?] {re:mixin,re:classloading}
at net.minecraft.client.gui.screen.inventory.InventoryScreen.func_228187_a_(SourceFile:149) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.gui.screen.inventory.CreativeScreen.func_230450_a_(CreativeScreen.java:727) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.screen.inventory.ContainerScreen.func_230430_a_(ContainerScreen.java:88) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:quark.mixins.json:client.ContainerScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.DisplayEffectsScreen.func_230430_a_(DisplayEffectsScreen.java:48) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.screen.inventory.CreativeScreen.func_230430_a_(CreativeScreen.java:608) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:290) ~[?:?] {re:classloading}
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) ~[?:?] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.optifine.reflect.Reflector.callVoid(Reflector.java:717) ~[?:?] {re:classloading}
at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:821) ~[?:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.29.jar:35.1] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$488/2097614581.call(Unknown Source) [forge-1.16.4-35.1.29.jar:35.1] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at com.unascribed.ears.EarsLayerRenderer.renderFront(EarsLayerRenderer.java:131) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.common.EarsCommon.render(EarsCommon.java:54) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.EarsLayerRenderer.render(EarsLayerRenderer.java:56) ~[?:1.1.0] {re:mixin,re:classloading}
at com.unascribed.ears.EarsLayerRenderer.func_225628_a_(EarsLayerRenderer.java:32) ~[?:1.1.0] {re:mixin,re:classloading}
at net.minecraft.client.renderer.entity.LivingRenderer.func_225623_a_(LivingRenderer.java:204) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:obfuscate.mixins.json:client.OptifineLivingRendererMixin,pl:mixin:A}
at net.minecraft.client.renderer.entity.PlayerRenderer.func_225623_a_(PlayerRenderer.java:64) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:abnormals_core.mixins.json:client.PlayerRendererMixin,pl:mixin:APP:ears.mixins.json:MixinPlayerRenderer,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.entity.PlayerRenderer.func_225623_a_(PlayerRenderer.java:41) ~[?:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:abnormals_core.mixins.json:client.PlayerRendererMixin,pl:mixin:APP:ears.mixins.json:MixinPlayerRenderer,pl:mixin:A,pl:runtimedistcleaner:A}
-- Entity being rendered --
Details:
Entity Type: minecraft:player (net.minecraft.client.entity.player.ClientPlayerEntity)
Entity ID: 431
Entity Name: DrPineapple
Entity's Exact location: 6744.50, 84.00, 12051.50
Entity's Block location: World: (6744,84,12051), Chunk: (at 8,5,3 in 421,753; contains blocks 6736,0,12048 to 6751,255,12063), Region: (13,23; contains chunks 416,736 to 447,767, blocks 6656,0,11776 to 7167,255,12287)
Entity's Momentum: 0.00, -0.08, 0.00
Entity's Passengers: []
Entity's Vehicle: ERROR NullPointerException: null

-- Renderer details --
Details:
Assigned renderer: net.minecraft.client.renderer.entity.PlayerRenderer@3dbb78a0
Location: 0.00,0.00,0.00 - World: (0,0,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Rotation: 0.0
Delta: 1.0
Stacktrace:
at net.minecraft.client.renderer.entity.EntityRendererManager.func_229084_a_(EntityRendererManager.java:310) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:quark.mixins.json:client.EntityRendererManagerMixin,pl:mixin:A}
at net.minecraft.client.gui.screen.inventory.InventoryScreen.func_241611_a_(SourceFile:149) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.gui.screen.inventory.InventoryScreen$$Lambda$15940/1453742288.run(Unknown Source) ~[?:?] {}
at com.mojang.blaze3d.systems.RenderSystem.runAsFancy(SourceFile:1439) ~[?:?] {re:mixin,re:classloading}
at net.minecraft.client.gui.screen.inventory.InventoryScreen.func_228187_a_(SourceFile:149) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.gui.screen.inventory.CreativeScreen.func_230450_a_(CreativeScreen.java:727) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.screen.inventory.ContainerScreen.func_230430_a_(ContainerScreen.java:88) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:quark.mixins.json:client.ContainerScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.DisplayEffectsScreen.func_230430_a_(DisplayEffectsScreen.java:48) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.client.gui.screen.inventory.CreativeScreen.func_230430_a_(CreativeScreen.java:608) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:290) ~[?:?] {re:classloading}
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) ~[?:?] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.optifine.reflect.Reflector.callVoid(Reflector.java:717) ~[?:?] {re:classloading}

-- Screen render details --
Details:
Screen name: net.minecraft.client.gui.screen.inventory.CreativeScreen
Mouse location: Scaled: (320, 331). Absolute: (641.000000, 663.000000)
Screen size: Scaled: (479, 504). Absolute: (958, 1008). Scale factor of 2.000000

-- Affected level --
Details:
All players: 1 total; [ClientPlayerEntity['DrPineapple'/431, l='ClientLevel', x=6744.50, y=84.00, z=12051.50]]
Chunk stats: Client Chunk Cache: 1225, 841
Level dimension: minecraft:overworld
Level spawn location: World: (6749,81,12053), Chunk: (at 13,5,5 in 421,753; contains blocks 6736,0,12048 to 6751,255,12063), Region: (13,23; contains chunks 416,736 to 447,767, blocks 6656,0,11776 to 7167,255,12287)
Level time: 300 game time, 300 day time
Server brand: forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.world.ClientWorld.func_72914_a(ClientWorld.java:617) ~[?:?] {re:mixin,re:classloading,xf:OptiFine:default,pl:mixin:APP:abnormals_core.mixins.json:client.ClientWorldMixin,pl:mixin:A}
at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2024) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:623) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.29.jar:35.1] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$488/2097614581.call(Unknown Source) [forge-1.16.4-35.1.29.jar:35.1] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}

Ears Skin Manipulator Renders Wrong

In the Ears Skin Manipulator, using the ear mode "around" displays the left and right side ear sections that are on the back side differently to ingame, with them seeming to be switched around. I've tested in-game to 1.12.2, 1.16.5 Fabric, and 1.16.5 Forge, all of them display the same in-game, but the preview on ESM is different. Left is in-game, right is ESM.
error

Sides-of-head regions

What about elves? (Also other things you may want side-regions for.)

Envisioning a 4x8 area that acts as an extension to the current Ears area; can cram this in the very top right of the skin in the unused space for the head overlay.
image

In order to have front and back, might have to use the top-left area that I was avoiding since it's a popular area for marker pixels. Maybe opt into it with a special pixel in the blue box? Could also split it between all the 4x4 areas and make a conversion tool that lets you author skins in a more convenient format. (This would also help with the fact the ears back is rotated 90ยฐ.)

Hmm, there's also some 4x8 areas where the 4x4 areas meet. Could rotate both of them 90ยฐ and use these spaces?
image

Add toggle for ears that point down

If you want to play as a dog character, certain breeds are currently kinda locked out, thanks to the fact that the ears region is drawn as a single rectangle pointing up from the top of the character's head.
If you wanted to play as a beagle, or a spaniel, or a shih tzu, you're kinda out of luck. I'd love for the ears region to be toggleable to split in half, and rendered on the sides of the player's head.
You could do this without GUI code in a similar manner to Mine Little Pony, which toggles various species information with differently colored pixels in other unused regions of the skin. You could also possibly toggle it by having the color at 0, 32 be something different, like red or orange.

Claws render one pixel off on slim model (Manipulator claims fixed in v1.2.2)

Not much to say here, Claws still render off by one pixel on the left arm in v1.2.2, and the skin manipulator says:

"You've selected options that had bugs fixed in v1.2.2.
Before v1.2.2:

  • Sides, Floppy, and Behind modes had their back face texture locations swapped

  • Claws rendered one pixel off on the left arm for slim models"

Maybe add next release not fixed yet text to it or like another version for it's fix? or put out a 1.2.3 prerelease?

Rift 1.13 port

Wouldn't be too difficult, assuming building Rift mods is still possible. Unsure if there's any interest, though.

Please react to this issue with a ๐Ÿ‘ if you want to see this port.

1.7.10 Optifine Incompatibility

Ears v1.1.0 & Optifine HD_U_D6 ( happens with latest HD_U_E7 too, using HD_U_D6 due to higher performance )
I know this is a stretch to ask for Optifine compatability, but 1.7.10's performance is really miserable without it, even with foamfix17 + fastcraft + more. Do note that Lumy Skin Patch + SkinPort avoids this issue, likely due to the total replacement of the player renderer.

2021-01-23_22 42 31

Skin and username lookup caching for vlegacy ports

Right now, all vlegacy ports of Ears (anything <1.7.10) do not perform any kind of caching or batching, resulting in a lot of API requests and a risk of ratelimiting. (Note that since the Ears skin URL patch goes through all the normal vanilla skin loading code, the skin PNGs are cached. Just not the username and texture lookups.)

A caching system similar to that employed by modern versions should be introduced. This should be doable entirely in common. Should also probably move the calls to the session/profile service into a common class; it's currently copy-pasted into every vlegacy port... EDIT: Done

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.