Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.17.1] I have some doubts about using Capability in this version.


zlappedx3
 Share

Recommended Posts

Hello Developers Usually older versions use Capability to save numeric values or other values via CompoundNBT via the forge library but in this version I tried to rebuild Capability but when using getCapability from Player class it turns out that Capability The new class doesn't match the old one. So I looked in vanilla and found CapabilityEnergy, EnergyStorage and IEnergyStorage so I looked at CapabilityEnergy#register because this method should is @SubscribeEvent to register IEnergyStorage But I don't know how to import or register EnergyStorage. I know EnergyStorage implements IEnergyStorage.

What I want to know is EnergyStorage How can it be used?

Link to comment
Share on other sites

--------------------------------------------[1.16.5]--------------------------------------------
I created the IStatus interface, it doesn't implements and extends.
Then I created the class Status implements IStatus.
Next, I created a class StatusStorage implements IStorage<IStatus> to write and read CompoundNBT.
Finally, I created a class StatusProvider implements ICapabilitySerializable<INBT> and applied Capability<IStatus> to LazyOptional#of .

Everything went well.

--------------------------------------------[1.17.1]--------------------------------------------
First, Capability<T> doesn't have getDefaultInstance , so create a newCapability<T> for use with LazyOptional#of() .
Once it was created, I added the getDefaultInstance method to the NewCapability<T> similar to the old version.
But when to take Player#getCapability is used, it turns out CapabilityNew<T> is not Capability<T> , so it cannot be put in Player#getCapability
So I extends Capability<T> into NewCapability<T> , it can be used in Player#getCapability .
Later I ran into a problem: Capability(string) was not public, so I couldn't extends it.

So I would like to use the same method as your library as mentioned above. but i don't know EnergyStorage, can it register?

Below is the code I wrote in 1.16.5 for saving the values to the player. (P.S. besides not having getDefaultInstance and there is no getStorage() yet.)

public interface IStatus
{
    public void setEnergy(int points);
    
    public int getEnergy();
    
    public void setExcretion(int points);
    
    public int getExcretion();
    
    public void setDirty(int points);
    
    public int getDirty();
}

 

public class Status implements IStatus
{
    private int energy;
    private int excretion;
    private int dirty;
    
    public Status() {
    	this.energy = 20;
    	this.excretion = 20;
    	this.dirty = 20;
    }
    
	@Override
	public void setEnergy(int points) {
		this.energy = points;
	}
	
	@Override
	public int getEnergy() {
		return this.energy;
	}

	@Override
	public void setExcretion(int points) {
		this.excretion = points;
	}

	@Override
	public int getExcretion() {
		return this.excretion;
	}

	@Override
	public void setDirty(int points) {
		this.dirty = points;
	}

	@Override
	public int getDirty() {
		return this.dirty;
	}
}

 

public class StatusProvider implements ICapabilitySerializable<INBT>
{
    @CapabilityInject(IStatus.class)
    public static final Capability<IStatus> Status_CAP = null;
    
    private LazyOptional<IStatus> instance = LazyOptional.of(Status_CAP::getDefaultInstance);
    
    @Override
    public <T> LazyOptional<T> getCapability(Capability<T> capability, Direction side)
    {
        return capability == Status_CAP ? instance.cast() : LazyOptional.empty();
    }
    
    @Override
    public INBT serializeNBT()
    {
        return Status_CAP.getStorage().writeNBT(Status_CAP, this.instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional must not be empty!")), null);
    }
    
    @Override
    public void deserializeNBT(INBT nbt)
    {
    	Status_CAP.getStorage().readNBT(Status_CAP, this.instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional must not be empty!")), null, nbt);
    }
}

 

public class StatusStorage implements IStorage<IStatus>
{
    @Override
    public INBT writeNBT(Capability<IStatus> capability, IStatus instance, Direction side)
    {
    	CompoundNBT status = new CompoundNBT();
    	status.putInt("Energy", instance.getEnergy());
    	status.putInt("Excretion", instance.getExcretion());
    	status.putInt("Dirty", instance.getDirty());
        return status;
    }

    @Override
    public void readNBT(Capability<IStatus> capability, IStatus instance, Direction side, INBT nbt)
    {
    	CompoundNBT status = (CompoundNBT)nbt;
    	instance.setEnergy(status.getInt("Energy"));
    	instance.setExcretion(status.getInt("Excretion"));
    	instance.setDirty(status.getInt("Dirty"));
    }
}

 

Link to comment
Share on other sites

Player#getCapability usually uses Capability<T> capability, Direction facing, but I renamed the class to NewCapability<T> I'm not sure. is it related? because originally it was net.minecraftforge.common.capabilities.Capability<T> is not something I created.

Link to comment
Share on other sites

23 minutes ago, zlappedx3 said:

because originally it was net.minecraftforge.common.capabilities.Capability<T> is not something I created.

And you still don't.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

25 minutes ago, Draco18s said:

And you still don't.

Maybe if you change

    Capability(String name)
    {
        this.name = name;
    }

To
 

    public Capability(String name)
    {
        this.name = name;
    }

on package net.minecraftforge.common.capabilities.Capability i can do it :)

Link to comment
Share on other sites

24 minutes ago, zlappedx3 said:

Maybe if you change

    Capability(String name)
    {
        this.name = name;
    }

To
 

    public Capability(String name)
    {
        this.name = name;
    }

on package net.minecraftforge.common.capabilities.Capability i can do it :)

It was never public. Do not try to create the capability instance. This was never the case. Use RegisterCapabilitiesEvent.

Link to comment
Share on other sites

You don't create an instance of the `Capability` class, that is still handled behind the scenes (and the `@CapabilityInject` annotation still works as before).

Where you called `Capability#getDefaultInstance()` before, just create your new instance (of your Capability type, i.e. `new Status()`).

Where you called your Storage class methods (from your Capability Provider), just move your saving/loading stuff directly into those methods of your `StatusProvider`.

Link to comment
Share on other sites

7 minutes ago, zlappedx3 said:

Should I make StatusProvider an instance?

What? You use StatusProvider exactly the same way you did before (attaching it in the AttachCapabilitiesEvent). The only thing you change is in your StatusProvider, you move the old code from your CapabilityRegistry.register(cap_class, storage, default_factory) and put the code from the storage class inside your StatusProvider save/load methods, and the code from your default_factory inside your LazyOptional.

Literally just getting rid of the stuff that no longer exists and calling it directly, instead of through the capability.

Link to comment
Share on other sites

Just now, Luis_ST said:

@Alpvaxthis is 1.16, storage and factory have been removed in 1.17.
please edit the posts you create and remove the wrong information

Yes, that is what I am saying. Remove the old code (from the storage / default factory, which no longer exists) and put it in the Capability Provider directly.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Hi, this article is more of a experience sharing instead of a tutorial, the code themselves should be self-explanatory, and the way I do things may not be the best practice, or most efficient. Product:   I started with the textures, we need the textures/icons that are being rendered to the world, and the ones for the UI. The blue textures are used when the option is hovered. Then, we need to find out where the mouse is at and which one is selected, we can check the distance and angle from the screen center and decide which part it is on: private int getHoveringType(Minecraft minecraft) { double mX = minecraft.mouseHelper.getMouseX(); double mY = minecraft.mouseHelper.getMouseY(); double actualW = minecraft.getMainWindow().getWidth() / 2.0F; double actualH = minecraft.getMainWindow().getHeight() / 2.0F; double mX2 = mX - actualW; double mY2 = mY - actualH; double angle = AVAWeaponUtil.getAngleFromCoord(mX2, -mY2) + 30; if (Math.sqrt(mX2 * mX2 + mY2 * mY2) <= 15 * minecraft.getMainWindow().getGuiScaleFactor()) return -1; if (angle > 360 || angle <= 60) return 0; return ((int) angle / 60); } public static double getAngleFromCoord(double x, double y) { double angle; angle = abs(atan2(x, y) * 180.0D / PI); if (x < 0) angle = 360 - angle; return angle; } In this case the angle is 60 because 360 / 6 options = 60, and if the mouse is within radius of 15 from the screen center then no action is performed (-1) And then the rendering can be done. @Override public void render(Minecraft minecraft, PlayerEntity player, MatrixStack stack, IPlayerAction capability, float screenWidth, float screenHeight) { float x = screenWidth / 2.0F; float y = screenHeight / 2.0F; float size = 60; int type = getHoveringType(minecraft); AVAClientUtil.blit(stack, type == -1 ? UI_BG_LIT : UI_BG, x - size, y - size, x + size, y + size); for (int i = 0; i < 6; i++) { stack.push(); stack.translate(x, y, 0.0F); stack.rotate(Vector3f.ZP.rotationDegrees(i * 60)); stack.translate(-x, -y, 0.0F); AVAClientUtil.blit(stack, type == i ? UI_BG_2_LIT : UI_BG_2, x - size, y - size, x + size, y + size); stack.pop(); } AVAClientUtil.blit(stack, UI_BG_ICON_LAYER, x - size, y - size, x + size, y + size); } public static void blit(MatrixStack stack, @Nullable ResourceLocation texture, float x1, float y1, float x2, float y2) { if (texture != null) Minecraft.getInstance().getTextureManager().bindTexture(texture); Matrix4f matrix = stack.getLast().getMatrix(); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuffer(); bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX); bufferbuilder.pos(matrix, x1, y2, 0.0F).tex(0.0F, 1.0F).endVertex(); bufferbuilder.pos(matrix, x2, y2, 0.0F).tex(1.0F, 1.0F).endVertex(); bufferbuilder.pos(matrix, x2, y1, 0.0F).tex(1.0F, 0.0F).endVertex(); bufferbuilder.pos(matrix, x1, y1, 0.0F).tex(0.0F, 0.0F).endVertex(); tessellator.draw(); } If the type is -1, then the circle at the center use the blue texture. Otherwise if the type equals the index of the option, it uses the blue texture (or just use RenderSystem.color4f). By rotating an identical texture we don't need to have 6 different textures for each option.     public static boolean ACTIVE = false; public static Vector3d VEC = null; @Override public void tick(Minecraft minecraft, PlayerEntity player) { if (minecraft.isGameFocused() && minecraft.currentScreen == null && AVAClientConfig.ENABLE_PING_HOTKEY.get()) { if (AVAClientUtil.middleMouseDown()) { if (!ACTIVE) { Vector3d eye = AVAWeaponUtil.getEyePositionFor(player); BlockRayTraceResult result = player.world.rayTraceBlocks(new RayTraceContext(eye, eye.add(player.getLookVec().scale(100.0F)), RayTraceContext.BlockMode.VISUAL, RayTraceContext.FluidMode.NONE, player)); if (result.getType() != RayTraceResult.Type.MISS) { ACTIVE = true; minecraft.mouseHelper.ungrabMouse(); if (minecraft.gameSettings.keyBindPickBlock.getKey().getKeyCode() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE) AVAClientUtil.unpressKeybind(minecraft.gameSettings.keyBindPickBlock); VEC = result.getHitVec(); } } } else { int type = getHoveringType(minecraft); if (ACTIVE && VEC != null && type != -1) AVAPackets.INSTANCE.sendToServer(new PingMessage(VEC, ActivePingEffect.Type.values()[type])); reset(minecraft); } } else reset(minecraft); } If player's focusing, the middle mouse is down, then we check if there's terrain (block) in player's sight within 100 blocks, if not, reset the vec, regrab the mouse and set active to false. MouseHelper#ungrabMouse call allows players to move mouse around the screen.   Once we have the VEC set (where the ping will occur), we can render a line between the center of the screen and the ping location. (White line) { ActiveRenderInfo info = minecraft.gameRenderer.getActiveRenderInfo(); Vector3f view = info.getViewVector(); Vector3d vec = info.getProjectedView().add(view.getX(), view.getY(), view.getZ()); drawLine(stack, (float) vec.x, (float) vec.y, (float) vec.z, (float) pingVec.x, (float) pingVec.y, (float) pingVec.z, 255, 255, 255, 1.0F) } public static void drawLine(MatrixStack stack, float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, float a) { AVAClientUtil.drawTransparent(true); IRenderTypeBuffer.Impl impl = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); IVertexBuilder builder = impl.getBuffer(RenderType.LINES); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); stack.push(); stack.translate(-view.x, -view.y, -view.z); Matrix4f matrix = stack.getLast().getMatrix(); builder.pos(matrix, x1, y1, z1).color(r, g, b, (int) (a * 255.0F)).endVertex(); builder.pos(matrix, x2, y2, z2).color(r, g, b, (int) (a * 255.0F)).endVertex(); stack.pop(); impl.finish(); AVAClientUtil.drawTransparent(false); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); } If you did not add the look offset to the camera position it will not be visible.   Then we send a packet to the server to notify all other players that I've ping the location. Once players receives the location of the pings, it's time to render them. RenderSystem.disableDepthTest(); AVAClientUtil.drawTransparent(true); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); Vector3d vec = activePing.getVec(); double distance = activePing.getVec().distanceTo(view); if (distance > 100.0F) continue; renderObjectAt(minecraft, activePing, world, stack, (float) (distance / 20.0F), 0.0F, activePing.getTexture()); double x = vec.x - view.getX(); double y = vec.y - view.getY(); double z = vec.z - view.getZ(); stack.push(); stack.translate(x, y, z); stack.rotate(minecraft.getRenderManager().getCameraOrientation()); stack.rotate(Vector3f.ZP.rotationDegrees(180.0F)); float size = (float) (distance / 200.0F); stack.scale(size, size, size); IRenderTypeBuffer.Impl impl = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); String text = AVACommonUtil.round(distance, 2) + "m"; minecraft.fontRenderer.func_243247_a(new StringTextComponent(text), -minecraft.fontRenderer.getStringWidth(text) / 2.0F, 10, AVAConstants.AVA_HUD_TEXT_WHITE, false, stack.getLast().getMatrix(), impl, true, 0, 15728880); impl.finish(); stack.pop(); private static void renderObjectAt(Minecraft minecraft, EnvironmentObjectEffect object, World world, MatrixStack stack, float size, float offsetScale, ResourceLocation texture) { Vector3d vec = object.getVec(); stack.push(); Vector3d view = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); double x = vec.x - view.getX(); double y = vec.y - view.getY(); double z = vec.z - view.getZ(); if (Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)) > 100.0F) return; stack.translate(x, y, z); Direction direction = object.getDirection(); if (direction != null) { Vector3i offset = direction.getDirectionVec(); stack.translate(offset.getX() * offsetScale, offset.getY() * offsetScale, offset.getZ() * offsetScale); rotateByDirection(stack, direction); } else { stack.rotate(minecraft.getRenderManager().getCameraOrientation()); stack.rotate(Vector3f.ZP.rotationDegrees(180.0F)); } if (object.doBlend()) { Color colour = new Color(world.getBlockState(object.getPos()).getMaterialColor(world, object.getPos()).colorValue); RenderSystem.color4f(colour.getRed() / 255.0F, colour.getGreen() / 255.0F, colour.getBlue() / 255.0F, object.getTransparency()); } AVAClientUtil.blit(stack, texture, -size, -size, size, size); RenderSystem.color4f(1.0F, 1.0F, 1.0f, 1.0F); stack.pop(); }   In the code I change the size of the object according to the distance ( (distance / 20.0F) ), so the object will stay at similar size no matter the distance between them, and so does the text size. The direction is always null, and doBlend is false. They are used in my other renderings.      
    • Hello There! We got another Hunger Games for you guys and in this episode we get so lucky right off the bat and we get 4 diamonds so we knew as soon as we got this we had to win! However something happens that I am not gonna spoil but it doesn't change too much within us winning! There are some hilarious moments in this episode that I know you guys are gonna love! I hope you all enjoy this video and if you did please consider subscribing and liking the video while you are at it!  
    • java.lang.IllegalArgumentException: Failed to create model for tutorialmod:tutorial_horse at net.minecraft.client.renderer.entity.EntityRenderers.lambda$createEntityRenderers$2(EntityRenderers.java:41) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?] {} at net.minecraft.client.renderer.entity.EntityRenderers.createEntityRenderers(EntityRenderers.java:37) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.entity.EntityRenderDispatcher.onResourceManagerReload(EntityRenderDispatcher.java:333) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.server.packs.resources.ResourceManagerReloadListener.lambda$reload$0(ResourceManagerReloadListener.java:13) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at com.mojang.blaze3d.systems.RenderSystem.replayQueue(RenderSystem.java:172) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:161) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at com.mojang.blaze3d.platform.Window.updateDisplay(Window.java:333) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:1062) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:660) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:205) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {} at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {} at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:38) ~[fmlloader-1.18-38.0.5.jar%230!:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:90) [bootstraplauncher-0.1.17.jar:?] {} Caused by: java.lang.IllegalArgumentException: No model for layer tutorialmod:tutorial_horse#tutorial_horse at net.minecraft.client.model.geom.EntityModelSet.bakeLayer(EntityModelSet.java:18) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.entity.EntityRendererProvider$Context.bakeLayer(EntityRendererProvider.java:50) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at com.tutorial.tutorialmod.mobdata.TutorialHorse.TutorialHorseRenderer.<init>(TutorialHorseRenderer.java:42) ~[%2380!:?] {re:classloading} at net.minecraft.client.renderer.entity.EntityRenderers.lambda$createEntityRenderers$2(EntityRenderers.java:39) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} ... 115 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at net.minecraft.client.renderer.entity.EntityRenderers.lambda$createEntityRenderers$2(EntityRenderers.java:41) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?] {} at net.minecraft.client.renderer.entity.EntityRenderers.createEntityRenderers(EntityRenderers.java:37) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.entity.EntityRenderDispatcher.onResourceManagerReload(EntityRenderDispatcher.java:333) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.server.packs.resources.ResourceManagerReloadListener.lambda$reload$0(ResourceManagerReloadListener.java:13) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:67) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:90) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$4(SimpleReloadInstance.java:66) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading} at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?] {} at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?] {} at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?] {} at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?] {} at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {} at com.mojang.blaze3d.systems.RenderSystem.replayQueue(RenderSystem.java:172) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:161) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} -- Overlay render details -- Details: Overlay name: net.minecraft.client.gui.screens.LoadingOverlay Stacktrace: at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:877) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.runTick(Minecraft.java:1040) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:660) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:205) ~[forge-1.18-38.0.5_mapped_official_1.18-recomp.jar%2376!:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {} at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {} at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:38) ~[fmlloader-1.18-38.0.5.jar%230!:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%2310!:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:90) [bootstraplauncher-0.1.17.jar:?] {} Caused by: java.lang.IllegalArgumentException: Failed to create model for tutorialmod:tutorial_horse Caused by: java.lang.IllegalArgumentException: No model for layer tutorialmod:tutorial_horse#tutorial_horse There is no model layer, so the model is supposed to be non-existent?
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.