Jump to content

[1.7.10] Parameterized Interfaces, TileEntities, and Event subscriptions.


Recommended Posts

Posted

This is a feasibility question, there is not much code yet. I am sure the route I am taking is possible, but as someone who likes to write as little code in the final implementation, but overwrites to get a solid generalized framework going... This thread is going to be about generalized/parameterized interfaces in the EVENT_BUS.

 

Background: Skip to the line if you do not care.

I am working on a mod which is focussed on balanced teleportation. This 'balanced' aspect includes many things. But I aim it to be easily accessible in the early game. Teleportation takes time and isn't instant. To get to the mid-game of the mod you need quite some resources. But when you reach it there are ways to create more of the same rather and in a put-resources-in-and-forget fashion. And towards the end-game you need to worry about an energy system (I can hear the cringes >:] , but yeah it is mostly in the end-game this is needed). And... it is inspired by the tears of Bioshock Infinite. So lots of tear-static noises, icons with static noise backgrounds, and the player being in two places at the same time. Probability Space, but also adds the Unmaking, and Void Space.

But most of all, the biggest aspect is that a player can defend himself against unwanted incoming rifts as soon as the player found redstone and its first ender-shard. The players can place crafted blocks which will 'push away' or 'attract' the incoming rift. Allowing the player to set-up traps, force players to teleport inside walls etc etc.


I understand I could do this in many ways. I could request the chunk data and check the TileEntity List there. Or iterate through the whole 'Loaded TileEntity'-list searching for my blocks whenever someone tries to teleport. But to think ALL tile-entities needed to be iterated through and `instanceof`-ed and casted. Makes me cringe when I think of the tubing in someones average base would take... So, I thought of the following: All TileEntities who should react to a player teleporting in, subscribes to a RiftFormationEvent. This way the iteration is only done upon loading of the TileEntity, and only on chunk-level. And whenever they are already loaded the event will make sure the right TileEntities will be invoked and no iteration of TileEntity lists (in my mod) is required.

It seems I was wrong about some things concerning TileEntity loading on chunk-level. They aren't loaded in like that, unlike normal Entities... Still I plan on doing the event subscription like I made known. The question remains.

And again it seems I was wrong. There IS a Map containing TileEntities and this is in chunk-sized (each chunk has its own). It is just that it is by no means clear what is stored inside this. On declaration it just makes a new HashMap (Assuming <Object, Object> it becomes clear that the Key Value is a ChunkPosition Object).

 

-Player initiates teleport.
-Chunk is force loaded (if it isn't loaded already) where exitEntity should spawn.
    (>Chunk.Load event is fired and subscribes TileEntities <<<<)
-Chunk checks NBTData for possible interactions from neighboring chunks (Stored in chunk NBT). If true > 
    >Chunk.Load event is fired and subscribes TileEntities <<<<
(Repeat on a breath-First approach with a maximum depth of a TBD number. Currently it depends on what has been found so far. When it is an end-game disruptor it will break of the search and use that as the main force. When it is a network of simple disruption stones, I think 3 x 3 chunks should be the max... But that is subject to change)
-RiftFormationEvent is fired.
    >All subscribed TileEntities will check if ExitEntity is in range. If so, it will register its own displacement vector in the event. If not, nothing will happen.
    >All displacements are calculated to the final destination of the ExitEntity
-ExitEntity is spawned
-EnterEntity is spawned
-Player enters ProbabilitySpace
-If both entities remain undisturbed when the player reaches his exit-gate. Player rifts through. (Currently the Player doesn't move on its own, and is more forced to go through an 'animated progress bar' of some sort.)
     If not, player will be thrown back to his start location with a bunch of damage... Or thrown into the Void (A dimension, not the one below the world). RnGesus (or the config option) will decide the players fate.
-Ticket of the forced chunks is invalidated.

The current points I am working at is notated with the "<<<<"-pointers.

 

As far as I understand the Event system in Forge is that it will write a class on the fly which will call-back on the function you subscribe it to. But the problem with TileEntities is that they aren't always there, so I expect there to be problems whenever I leave a TileEntity subscribed. In the WorldManager who tries to unload an entity which is still referenced in an other part of the program. Or when the Event is fired and tries to invoke a subscribed method which isn't loaded in the memory.

So, I have a ChunkEvent handler which subscribes and unsubscribes these Entities.

 

To prevent writing a massive method to subscribe and unsubscribe every possible class event type combination, or go with a subscription system where all TileEntities are subscribed to the root-event-type of my mod and cast it to whatever is needed,  I thought of the the following:

I made a parameterized interface:

package nl.scribblon.riftcraft.util;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import nl.scribblon.riftcraft.event.RiftCraftEvent;

/**
* Created by Scribblon for RiftCraft.
* Date Creation: 04-09-14
*
* Interface which needs to be implemented to whenever a TileEntity wants to be subscribed upon Chunk.Load.
*/
public interface ISubscribeable<T extends RiftCraftEvent> {

    void onEvent(T t);

}

The `@SubscribeEvent` will be placed in the implementation.

 

When implementing this interface it will look like this:

 

public class DisruptionStone implements ISubsribeable<RiftFormationEvent> {
    
    @SubscribeEvent
    public void onEvent(RiftFormationEvent event) {
        // do stuff
    }

}

 

Now here I start to enter a zone where I am questioning my own knowledge of java and how this interacts with the EVENT_BUS#register(...)-method. I have no clue how the ClassWriter inside the EventBus will interpret my interface. Or even how the ClassWriter does its magic. (It can be found in the ASMEventHandler)

 

When I implement ISubscribable I must give the interface a Type. T will be for example a RiftFormationEvent. However, upon loading the Chunk it will be passed on to the EVENT_BUS#register(iSubscribed) as the generalized interface-form.

 

Will the ClassWriter interpret the interface as it solved Parameter-Type? Or will it pick the RiftCraftEvent as the event type as it is the root or will all go well and I am just worrying about nothing?

 

I hope someone knows, as Google and my Google-Fu has forsaken me.

 

I am always open for suggestions, improvements, etc.

 

EDIT: see strikethrough section.

"I guess as this is pretty much WIP, I can just 'borrow' the sounds from that game without problem. They are just 'placeholders' anyway." -Me, while extracting the Tear sounds of Bioshock Infinite.

Posted
  On 9/4/2014 at 9:36 PM, diesieben07 said:

First of all: registering EventHandlers outside of the mod-loading phase (preInit, etc.) will trigger a log entry with Level.ERROR.

Ah, I wasn't aware. Well that rules out the TileEntity listens to the Events way I thought was the way.

 

  Quote

Regarding your interface: It is useless, this is not how the EventBus works! You can put whatever methods you want, you can name them however you want. If you pass any object to the EventBus it will find any method in there that's annotated, whether it's implemented from an interface (that might actually cause problems, looking at the code...) or not.

I am aware that the EventBus accepts any method name as long the name is accepted by the Java-compiler. But it always expect the method to have only 1 parameter, and this parameter should be a SubClass of the cpw.mods.fml.common.eventhandler.Event - class.

 

It is that I actually never figured out how interfaces work at the low-end-level of Java. How is an object which implemented an interface presented to other objects. Will the Interface reference to the actual object making the ClassWriter read the right method with the correct Event Type. Or will the object stored as interface be reference to its own kind of Object which has only that interfaced (generalized) method available and has the real implementation masked as a Java-Compiled-Code-Fu-Reference underneath it.

This does not mean that I don't know how they work and help in polymorphism on the high-end side of the code, what I am trying to achieve here.

 

  Quote

TileEntities actually have a built-in chunk-load and unload handler, validate() and invalidate(). But I still think that you should not be registering every single TileEntity as an EventHandler, that would cause quite some overhead. Have a centralized handler that delegates to the TileEntities.

That explains why I couldn't find the .onChunkLoad() equivalent of the .onChunkUnload() method in TileEntity.

But analyzing these methods leaves me wondering why .validate() is only used in two classes: BlockFurnace and Chunk.

In chunk it is called in the obfuscated func_150812_a . Which is called in World#setTileEntity() and Chunk#addTileEntity()... Going deeper only makes it a confusing looping dependency mess back to Chunk, deeper again back to World?!

 

Still, if I were to make my own manager with a list that listens to this event and delegate it to the whole registered list whenever this event is fired. I think the overhead will be about the same. Now I am registering to a Manager-class instead of the EventBus. The EventBus has already its own overhead when posting and registering an Event to the manager. And then you also got the Manager with its own Collection implementation to iterate it through.

But yeah, I do not understand the EventBus well enough to know if this implementation would be worse or not. And it seems it is the only way since my original plan is already out the water. It does lack the ChunkHandler though if I can just use the TileEntites own unload/load implementations.

"I guess as this is pretty much WIP, I can just 'borrow' the sounds from that game without problem. They are just 'placeholders' anyway." -Me, while extracting the Tear sounds of Bioshock Infinite.

Posted
  On 9/4/2014 at 10:36 PM, diesieben07 said:

An interface method is basically like an public abstract class method in an abstract class. It is a "method stub" in the abstract class, with no body, and in the subclass, where it is implemented it is a normal public method. Methods that override something are not any different from methods that do not override something. @Override for example does not exist in the bytecode at all.

 

Ah... Wait, I see the massive error in the example-Class. It missed the @Override-annotation. But if you say it was not going to be called the way I thought it would, it wouldn't have mattered anyway.

 

But like I said, I do know what interfaces are on how they work on the high end. It is the actual compiled low end I am not aware of how interfaces work and interact with each other. If what you have just typed is how it works, I think I need to delve deeper into that.

 

  Quote

Basically validate is called when the TE is added to the Chunk and invalidate is called when, well, it is no longer valid because another Block has been placed in it's location.

But what happens when a chunk is loaded? It is loading in the chunk... It is not setting blocks to be TileEntities or at least 6 'usage analysis'-s deep it seems to never be touched by something that loads in the TileEntity. There is only one way I guess I can test this. Just try it. And if that fails, back to the drawing board I must go.

 

  Quote

The EventBus is really blazing fast. When an Event is fired, the list of listeners for that Event are attached to the event itself, so there is no Map lookup for the listener list or anything, just a single method invocation. The ListenerList itself is just an Array which is iterated over (also damn fast). Then each EventListener is a class that is compiled on the fly when you register your object to directly invoke your methods, so there is no reflection overhead either.

So really, there is basically no overhead at all to the event system. What determines the speed, is your code, not the EventBus.

That explains the overhead it would have created whenever I would just add and delete these methods of different TileEntities on a Load/Unload basis. Guess modifying these files is a bit more of a hassle than adding and/or removing it from a Collection-implementation.

And yes, if I was to go ahead with my plan without consulting. It would probably made the EventBus slow whenever a lot of Entities needed to be written in and out of the resulting Event-Super-Class. On the regular tick by tick basis it wouldn't have mattered if I understand it now.

But I gotta say, it contradicts a bit what you said earlier. If an EventBus would have no overhead, adding complexity to the EventBus would result in no overhead either as it stands would have no overhead to begin with. It is that the native EventBus code isn't coded to handle registration and deletion of listeners beyond the Post-Init stage. But that is how Forge/FML decided to implement the Event Driven Architecture.

 

In the end I came up with the following:

I have an EventManager which contains a Collection (Type pending, EnumMap<EventType, HashSet<ISubsribeable<? extends RiftCraftEvent>> is currently the implementation I am heading for). In which I can register the ISubscribable interface implementations.

Whenever an event is fired concerning my mod, the Manager will catch it and deligate it to the right Set, where it will iterate through the registered TileEntities.

The registering and unregistering of TileEntities is done from the .invalidate(), validate() methods in the TileEntity. Currently I am not able to test this yet, so I keep my ChunkHandler around whenever I am actually able to test a rift. (I would love to be able to write JUnit tests for these kind of things... It only is not possible as it requires to interact with Minecraft-code itself to see how it loads and unloads Tile-Entities.)

 

NEVERTHELESS, thanks for the info and the help.

"I guess as this is pretty much WIP, I can just 'borrow' the sounds from that game without problem. They are just 'placeholders' anyway." -Me, while extracting the Tear sounds of Bioshock Infinite.

Posted
  On 9/5/2014 at 12:40 AM, diesieben07 said:

The EnumMap is a good choice, but I wouldn't go for HashSet. Use a simple ArrayList. That's much faster for iteration (and anything else pretty much, at least the operations you're gonna need here).

 

I would agree with you if I weren't going to add and remove elements in the ArrayList upon loading and unloading of TileEntities.

Dynamic Arrays would have an O(n) on insertion and deletion. While HashSet has a O(1) on those.

Both implementations are equal in providing iterators and for me the order in which the iterator presents all stored elements don't need to be in a particular order.

 

In all other cases, I would go for an ArrayList. Even though I know these Big O notations only becomes a thing on large element numbers. I think I can still justify it here on the basis of the expected amount of insertions and deletions in the Collection.

 

http://bigocheatsheet.com/

"I guess as this is pretty much WIP, I can just 'borrow' the sounds from that game without problem. They are just 'placeholders' anyway." -Me, while extracting the Tear sounds of Bioshock Infinite.

Posted

I will report back when I am at the stage where I can benchmark this. (And I remember to check my //TODO list from time to time)

Currently I am finalizing the ground work for the implementation of the items. Last thing to come are the renders and the textures... I am pretty much a programmer over artist -_-'

"I guess as this is pretty much WIP, I can just 'borrow' the sounds from that game without problem. They are just 'placeholders' anyway." -Me, while extracting the Tear sounds of Bioshock Infinite.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • If you've been searching for a fast, easy, and affordable way to send money globally, Lemfi coupon code $20 Cashback is your best bet. Lemfi has quickly grown to be a favorite money transfer platform, and for good reason. Use the RITEQH6J Lemfi coupon code and unlock unmatched benefits for global transactions. This code is perfect for users in the US, UK, Canada, and other Western countries looking for great value. With our exclusive Lemfi discount code $10 off and Lemfi code $20 Cashback, you’re not just saving money—you’re gaining convenience and rewards with every transfer. What Is The Lemfi Promo Code for $20 Cashback? We’re excited to bring you the best deals on Lemfi, and it all starts with the Lemfi coupon $20 Cashback. Whether you’re a new or returning customer, using our exclusive $20 Cashback Lemfi coupon can help you earn significant rewards. RITEQH6J: Flat $20 Cashback on your first transaction. RITEQH6J: Access to a $20 Cashback coupon pack for multiple future uses. RITEQH6J: Flat $20 Cashback discount for all new customers. RITEQH6J: Extra $20 Cashback promo for returning users. RITEQH6J: Quick activation with zero hidden fees or tricky terms. Lemfi First Time Promo Code $20 Cashback For New Users In 2025 If you're just signing up with Lemfi, you're in for a treat. Our Lemfi First Time Promo Code for $20 Cashback ensures new users get maximum value on their first few transactions. RITEQH6J: Get a $30 sign-up bonus instantly upon registration. RITEQH6J: Enjoy 10% Cashback up to $50 on your first transfer. RITEQH6J: $20 Cashback on your first few recurring money transfers. RITEQH6J: Additional $30 bonus on any transaction of $100 or more. RITEQH6J: Seamless application during account registration. How To Redeem The Lemfi Coupon $20 Cashback For New Users? Applying the Lemfi First Time Promo Code for $20 Cashback is as easy as sending money with Lemfi. Here’s how you do it: Download the Lemfi app or visit the website. Register a new account and verify your identity. During sign-up or your first transaction, enter the Lemfi Promo Code First Order $20 Cashback. Complete your first money transfer successfully. Your Lemfi First Time Promo Code $20 Cashback for new users will be applied automatically and credited within hours. Lemfi Promo Code $20 Cashback For Existing Customers Even if you’ve already used Lemfi before, there’s still something in store for you. Use our exclusive lemfi promo code $20 Cashback for existing users and lemfi discount code $20 Cashback for existing customers to unlock fantastic ongoing rewards. RITEQH6J: $10 bonus available for all repeat users. RITEQH6J: Earn $20 per referral after 20 transactions. RITEQH6J: Claim $20 cashback on your regular money transfers. RITEQH6J: Get a $30 reward when you transfer $100 or more. How To Use The Lemfi Code for $20 Cashback For Existing Customers? If you're already a Lemfi user, follow these simple steps to use your Lemfi discount code for $20 Cashback: Log in to your Lemfi account using your Lemfi login details. Head to the promotions or referral section. Enter the Code promo Lemfi for $20 Cashback. Make your next qualifying transfer. The Cashback will be processed and added to your Lemfi wallet. Latest Lemfi Promo Code for $20 Cashback The best part about Lemfi is that you don’t have to wait for special occasions to get big rewards. Use our latest Lemfi first time promo code for $20 Cashback first order, Lemfi discount code $20 Cashback, and Lemfi cashback code to get started. RITEQH6J: $30 sign-up bonus for all new accounts. RITEQH6J: 10% cashback up to $50 on the first transaction. RITEQH6J: $20 referral reward after 20 transfers. RITEQH6J: $20 cashback on your next 3 transactions. RITEQH6J: $30 bonus on every $100 transferred. How To Find The Lemfi Code for $20 Cashback? Looking for a verified and working Lemfi code for $20 Cashback? Here's what to do. Sign up for the Lemfi newsletter and receive the most recent Lemfi cashback code updates directly in your inbox. Also, follow Lemfi on Instagram, Twitter, and Facebook to catch exclusive deals and the Lemfi referral code Reddit for $20 Cashback shared by real users. And of course, don’t forget to visit trusted coupon platforms like ours for updated codes. Is Lemfi $20 Cashback Code Legit? Yes, absolutely! If you're wondering Is Lemfi legit?—rest assured, it’s a globally trusted platform. Our code promo Lemfi legit—RITEQH6J—is tested, verified, and completely safe to use. Whether you're making your first transfer or your tenth, Lemfi ensures your data and money are secure. How Does Lemfi Code for $20 Cashback Work? The $20 Cashback on first-time Lemfi money transfer is a reward given to new or existing users when they use the right promo code. Once you apply RITEQH6J, Lemfi tracks your transaction and credits the cashback into your wallet or account. Additionally, the Lemfi promo code for recurring transactions allows returning users to enjoy continued benefits. Whether you send money once a month or more frequently, every qualifying transfer can earn you $20 or more in bonuses. How To Earn Lemfi $20 Cashback Coupons As A New Customer? To earn Lemfi coupon code $20 Cashback, simply sign up with the Lemfi app and use the right promo code. Complete your account verification, and then send your first money transfer to activate the cashback offer. You can also use a 100 off Lemfi coupon code shared through special promotions or referral campaigns. As a new customer, these offers give you the best bang for your buck and encourage consistent usage. What Are The Advantages Of Using The Lemfi Discount Code for $20 Cashback? Using the Lemfi promo code for $10 bonus and Lemfi promo code for $20 Cashback comes with a long list of perks: $30 sign-up bonus for new users. 10% cashback up to $50 on first transfer. $20 referral bonus after 20 transactions. $20 cashback on recurring transfers. $30 bonus on $100 transfer. No expiration date. Global usability. Easy to apply and quick to redeem. Applicable via both app and website. Valid for both new and existing customers. Lemfi Discount Code For $20 Cashback And Free Gift For New And Existing Customers With our Lemfi Discount Code for $20 Cashback and $20 Cashback Lemfi discount code, both new and loyal users get exciting incentives. Use it today to unlock more than just cash savings. RITEQH6J: $30 bonus at sign-up for new accounts. RITEQH6J: 10% cashback up to $50 on first transfer. RITEQH6J: $20 per referral after 20 successful transactions. RITEQH6J: $20 cashback on repeat transfers. RITEQH6J: $30 bonus on transfers exceeding $100. Pros And Cons Of Using The Lemfi Discount Code $20 Cashback for Here are the key takeaways from using the Lemfi $20 Cashback discount code and Lemfi 100 off coupon: Pros: No expiration date. Works for both new and existing users. Huge rewards like $30 sign-up and $20 referral bonuses. Cashback on both first and recurring transfers. Easy to apply on both app and website. Cons: Some regions may have limited eligibility. Requires minimum transfer thresholds for some bonuses. Terms And Conditions Of Using The Lemfi Coupon $20 Cashback In 2025 Before using the Lemfi $20 Cashback code or latest Lemfi code $20 Cashback, keep these points in mind: The code RITEQH6J is valid globally. No expiration date—use it whenever you want. Valid for both new and existing users. Cashback applies to verified accounts only. Minimum transfer thresholds may apply. Cannot be combined with other Lemfi promotions. Final Note: Use The Latest Lemfi Discount Code $20 Cashback We hope you take full advantage of our Lemfi discount code for $20 Cashback to make your money transfers more rewarding. It’s easy to apply and gives you great savings with each use. If you’ve been waiting to try Lemfi, this is your sign—use our Lemfi $20 Cashback code and experience global money transfers like never before. FAQs Of Lemfi $20 Cashback Code Q1: How can I get the Lemfi $20 Cashback code? Use code RITEQH6J on your first Lemfi transaction. It automatically applies $20 Cashback to your wallet after completing the transfer. Q2: Is the Lemfi coupon code RITEQH6J available worldwide? Yes, the RITEQH6J code is valid for users across the globe. Whether you're in the US, UK, Canada, or EU, it works flawlessly. Q3: Can existing Lemfi users use the $20 Cashback code? Absolutely! Existing users can also use the RITEQH6J code for recurring cashback rewards and referral bonuses. Q4: Is Lemfi a legit platform for money transfers? Yes, Lemfi is a licensed, regulated, and legitimate service used by thousands for secure global transfers. Q5: How long does it take to get the cashback after using the code? Once your qualifying transfer is complete, cashback is usually credited to your account within a few hours.
    • Add crash-reports with sites like https://mclo.gs/ Remove the mod dashloader
    • java.lang.ExceptionInInitializerError     at knot//net.minecraft.class_3304.handler$znk000$dashloader$reloadDash(class_3304.java:1055)     at knot//net.minecraft.class_3304.method_18232(class_3304.java:47)     at knot//net.minecraft.class_310.<init>(class_310.java:652)     at knot//net.minecraft.client.main.Main.main(Main.java:211)     at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)     at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)     at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) Caused by: dev.quantumfusion.hyphen.thr.HyphenException:  Cause: net.minecraft.class_804.<init>(org.joml.Vector3f,org.joml.Vector3f,org.joml.Vector3f,org.joml.Vector3f)Suggestion: Check if the constructor holds all of the fields. Object Stacktrace:     in class_804_<@DataNullablenull>     at field thirdPersonLeftHand in DashModelTransformation_<@DataNullablenull>     at field transformation in DashBasicBakedModel Stacktrace:     at knot//dev.quantumfusion.hyphen.codegen.def.ClassDef.scan(ClassDef.java:80)     at knot//dev.quantumfusion.hyphen.SerializerHandler.acquireDef(SerializerHandler.java:114)     at knot//dev.quantumfusion.hyphen.codegen.def.ClassDef.scan(ClassDef.java:39)     at knot//dev.quantumfusion.hyphen.SerializerHandler.acquireDef(SerializerHandler.java:114)     at knot//dev.quantumfusion.hyphen.codegen.def.ClassDef.scan(ClassDef.java:39)     at knot//dev.quantumfusion.hyphen.SerializerHandler.scan(SerializerHandler.java:164)     at knot//dev.quantumfusion.hyphen.SerializerHandler.build(SerializerHandler.java:171)     at knot//dev.quantumfusion.hyphen.SerializerFactory.build(SerializerFactory.java:181)     at knot//dev.notalpha.dashloader.io.Serializer.<init>(Serializer.java:31)     at knot//dev.notalpha.dashloader.io.RegistrySerializer.<init>(RegistrySerializer.java:46)     at knot//dev.notalpha.dashloader.CacheImpl.<init>(CacheImpl.java:52)     at knot//dev.notalpha.dashloader.CacheFactoryImpl.build(CacheFactoryImpl.java:74)     at knot//dev.notalpha.dashloader.client.DashLoaderClient.<clinit>(DashLoaderClient.java:44)     ... 7 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at knot//net.minecraft.class_3304.handler$znk000$dashloader$reloadDash(class_3304.java:1055)     at knot//net.minecraft.class_3304.method_18232(class_3304.java:47)     at knot//net.minecraft.class_310.<init>(class_310.java:652) -- Initialization -- Details:     Modules:          ADVAPI32.dll:Advanced Windows 32 Base API:10.0.26100.3624 (WinBuild.160101.0800):Microsoft Corporation         COMCTL32.dll:User Experience Controls Library:6.10 (WinBuild.160101.0800):Microsoft Corporation         CRYPT32.dll:Crypto API32:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         CRYPTBASE.dll:Base cryptographic API DLL:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         CRYPTSP.dll:Cryptographic Service Provider API:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         CoreMessaging.dll:Microsoft CoreMessaging Dll:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         DBGHELP.DLL:Windows Image Helper:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         DEVOBJ.dll:Device Information Set DLL:10.0.26100.1150 (WinBuild.160101.0800):Microsoft Corporation         DNSAPI.dll:DNS Client API DLL:10.0.26100.1591 (WinBuild.160101.0800):Microsoft Corporation         GDI32.dll:GDI Client DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         GLU32.dll:OpenGL Utility Library DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         HID.DLL:Hid User Library:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         IMM32.DLL:Multi-User Windows IMM32 API Client DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         IPHLPAPI.DLL:IP Helper API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         IntelControlLib.dll:Intel Graphics Control Lib Runtime:1.0.200:         KERNEL32.DLL:Windows NT BASE API Client DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         KERNELBASE.dll:Windows NT BASE API Client DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         MMDevApi.dll:MMDevice API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         MSASN1.dll:ASN.1 Runtime APIs:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         MSCTF.dll:MSCTF Server DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         MessageBus.dll:NVIDIA Message Bus::NVIDIA Corporation         Microsoft.Internal.WarpPal.dll         MpOav.dll:IOfficeAntiVirus Module:4.18.25050.5 (bcf51ab773be21957c5713cae9cb3adf2fd75bf5):Microsoft Corporation         NSI.dll:NSI User-mode interface DLL:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         NTASN1.dll:Microsoft ASN.1 API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         NvCamera64.dll:Camera control and photo capture:7.1.0.0:NVIDIA Corporation         NvMessageBus.dll:NVIDIA Message Bus::NVIDIA Corporation         OLEAUT32.dll:OLEAUT32.DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         OWExplorer.dll:Overlay:2.2.276.1:Overwolf LTD         Ole32.dll:Microsoft OLE for Windows:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         OpenAL.dll:Main implementation library:1.21.1:         POWRPROF.dll:Power Profile Helper DLL:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         PSAPI.DLL:Process Status Helper:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         Pdh.dll:Windows Performance Data Helper DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         RPCRT4.dll:Remote Procedure Call Runtime:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         SETUPAPI.dll:Windows Setup API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         SHCORE.dll:SHCORE:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         SHELL32.dll:Windows Shell Common Dll:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         UMPDC.dll:User Mode Power Dependency Coordinator:10.0.26100.1301 (WinBuild.160101.0800):Microsoft Corporation         USER32.dll:Multi-User Windows USER API Client DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         USERENV.dll:Userenv:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         VCRUNTIME140.dll:Microsoft® C Runtime Library:14.38.33135.0:Microsoft Corporation         VERSION.dll:Version Checking and File Installation Libraries:10.0.26100.1150 (WinBuild.160101.0800):Microsoft Corporation         WINHTTP.dll:Windows HTTP Services:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         WINMM.dll:MCI API DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         WINSTA.dll:Winstation Library:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         WINTRUST.dll:Microsoft Trust Verification APIs:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         WS2_32.dll:Windows Socket 2.0 32-Bit DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         WTSAPI32.dll:Windows Remote Desktop Session Host Server SDK APIs:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         WindowsCodecs.dll:Microsoft Windows Codecs Library:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         XINPUT9_1_0.dll:XNA Common Controller:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         amsi.dll:Anti-Malware Scan Interface:10.0.26100.1150 (WinBuild.160101.0800):Microsoft Corporation         apphelp.dll:Application Compatibility Client Library:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         bcrypt.dll:Windows Cryptographic Primitives Library:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         bcryptPrimitives.dll:Windows Cryptographic Primitives Library:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         cfgmgr32.dll:Configuration Manager DLL:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         clbcatq.dll:COM+ Configuration Catalog:2001.12.10941.16384 (WinBuild.160101.0800):Microsoft Corporation         combase.dll:Microsoft COM for Windows:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         cryptnet.dll:Crypto Network Related API:10.0.26100.3624 (WinBuild.160101.0800):Microsoft Corporation         d3d11.dll:Direct3D 11 Runtime:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         d3dcompiler_47_64.dll:Direct3D HLSL Compiler for Redistribution:6.3.9600.16384 (winblue_rtm.130821-1623):Microsoft Corporation         dbgcore.DLL:Windows Core Debugging Helpers:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         dcomp.dll:Microsoft DirectComposition Library:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         dhcpcsvc.DLL:DHCP Client Service:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         dhcpcsvc6.DLL:DHCPv6 Client:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         dinput8.dll:Microsoft DirectInput:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         directxdatabasehelper.dll:DirectXDatabaseHelper:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         drvstore.dll:Driver Store API:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         dwmapi.dll:Microsoft Desktop Window Manager API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         dxcore.dll:DXCore:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         dxgi.dll:DirectX Graphics Infrastructure:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         extnet.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         fastprox.dll:WMI Custom Marshaller:10.0.26100.3624 (WinBuild.160101.0800):Microsoft Corporation         fwpuclnt.dll:FWP/IPsec User-Mode API:10.0.26100.3915 (WinBuild.160101.0800):Microsoft Corporation         gdi32full.dll:GDI Client DLL:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         glfw.dll:GLFW 3.4.0 DLL:3.4.0:GLFW         gpapi.dll:Group Policy Client API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         icm32.dll:Microsoft Color Management Module (CMM):10.0.26100.2314 (WinBuild.160101.0800):Microsoft Corporation         igc1464.dll:Intel Graphics Shader Compiler for Intel(R) Graphics Accelerator:31.0.101.5592:Intel Corporation         igc64.dll:Intel Graphics Shader Compiler for Intel(R) Graphics Accelerator:31.0.101.5592:Intel Corporation         igd10iumd64.dll:User Mode Driver for Intel(R) Graphics Technology:31.0.101.5592:Intel Corporation         igd10um64xe.DLL:User Mode Driver for Intel(R) Graphics Technology:31.0.101.5592:Intel Corporation         igdgmm64.dll:User Mode Driver for Intel(R) Graphics Technology:31.0.101.5592:Intel Corporation         imagehlp.dll:Windows NT Image Helper:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         inputhost.dll:InputHost:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         java.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         javaw.exe:OpenJDK Platform binary:17.0.15.0:Microsoft         jemalloc.dll         jimage.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         jli.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         jna16049269642719639181.dll:JNA native library:6.1.4:Java(TM) Native Access (JNA)         jsvml.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         jvm.dll:OpenJDK 64-Bit server VM:17.0.15.0:Microsoft         kernel.appcore.dll:AppModel API Host:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         lwjgl.dll         lwjgl_opengl.dll         lwjgl_stb.dll         management.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         management_ext.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         mdnsNSP.dll:Bonjour Namespace Provider:3,1,0,1:Apple Inc.         mscms.dll:Microsoft Color Matching System DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         msvcp140.dll:Microsoft® C Runtime Library:14.38.33135.0:Microsoft Corporation         msvcp_win.dll:Microsoft® C Runtime Library:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         msvcrt.dll:Windows NT CRT DLL:7.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         mswsock.dll:Microsoft Windows Sockets 2.0 Service Provider:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         napinsp.dll:E-mail Naming Shim Provider:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         ncrypt.dll:Windows NCrypt Router:10.0.26100.1591 (WinBuild.160101.0800):Microsoft Corporation         net.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         nio.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         nlansp_c.dll:NLA Namespace Service Provider DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         ntdll.dll:NT Layer DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         ntmarta.dll:Windows NT MARTA provider:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         nvapi64.dll:NVIDIA NVAPI Library, Version 566.14 :32.0.15.6614:NVIDIA Corporation         nvgpucomp64.dll:NVIDIA GPU Compiler Driver, Version 566.14 :32.0.15.6614:NVIDIA Corporation         nvldumdx.dll:NVIDIA Driver Loader, Version 566.14 :32.0.15.6614:NVIDIA Corporation         nvoglv64.dll:NVIDIA Compatible OpenGL ICD:32.0.15.6614:NVIDIA Corporation         nvppex.dll:NVIDIA Driver, Version 566.14 :32.0.15.6614:NVIDIA Corporation         nvspcap64.dll:NVIDIA Game Proxy 8FileVersion  1:11.0.4.159  8Produc:NVIDIA Corporation  L$FileDescriptio         nvwgf2umx.dll:NVIDIA D3D10 Driver, Version 566.14 :32.0.15.6614:NVIDIA Corporation         opengl32.dll:OpenGL Client DLL:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         opus4j.dll         perfos.dll:Windows System Performance Objects DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         pfclient.dll:SysMain Client:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         profapi.dll:User Profile Basic API:10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         rasadhlp.dll:Remote Access AutoDial Helper:10.0.26100.1150 (WinBuild.160101.0800):Microsoft Corporation         rsaenh.dll:Microsoft Enhanced Cryptographic Provider:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         sapi.dll:Speech API:5.3.29131.00 (WinBuild.160101.0800):Microsoft Corporation         sechost.dll:Host for SCM/SDDL/LSA Lookup APIs:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         shlwapi.dll:Shell Light-weight Utility Library:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         sunmscapi.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         symamsi.dll:Symantec AMSI provider:15.7.14.32:Broadcom         textinputframework.dll:"TextInputFramework.DYNLINK":10.0.26100.4484 (WinBuild.160101.0800):Microsoft Corporation         ucrtbase.dll:Microsoft® C Runtime Library:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         uxtheme.dll:Microsoft UxTheme Library:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         vcruntime140_1.dll:Microsoft® C Runtime Library:14.38.33135.0:Microsoft Corporation         verify.dll:OpenJDK Platform binary:17.0.15.0:Microsoft         wbemcomn.dll:WMI:10.0.26100.1150 (WinBuild.160101.0800):Microsoft Corporation         wbemprox.dll:WMI:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         wbemsvc.dll:WMI:10.0.26100.4202 (WinBuild.160101.0800):Microsoft Corporation         win32u.dll:Win32u:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         windows.staterepositorycore.dll:Windows StateRepository API Core:10.0.26100.4652 (WinBuild.160101.0800):Microsoft Corporation         windows.storage.dll:Microsoft WinRT Storage API:10.0.26100.1457 (WinBuild.160101.0800):Microsoft Corporation         winrnr.dll:LDAP RnR Provider DLL:10.0.26100.1882 (WinBuild.160101.0800):Microsoft Corporation         wintypes.dll:Windows Base Types DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         wldp.dll:Windows Lockdown Policy:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         wshbth.dll:Windows Sockets Helper DLL:10.0.26100.4061 (WinBuild.160101.0800):Microsoft Corporation         wshunix.dll:AF_UNIX Winsock2 Helper DLL:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         xinput1_4.dll:Microsoft Common Controller API:10.0.26100.1 (WinBuild.160101.0800):Microsoft Corporation         zip.dll:OpenJDK Platform binary:17.0.15.0:Microsoft Stacktrace:     at knot//net.minecraft.client.main.Main.main(Main.java:211)     at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)     at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)     at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.15, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 459466240 bytes (438 MiB) / 1612709888 bytes (1538 MiB) up to 4294967296 bytes (4096 MiB)     CPUs: 12     Processor Vendor: GenuineIntel     Processor Name: 13th Gen Intel(R) Core(TM) i5-13420H     Identifier: Intel64 Family 6 Model 186 Stepping 2     Microarchitecture: unknown     Frequency (GHz): 2.61     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 12     Graphics card #0 name: Intel(R) UHD Graphics     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 2048.00     Graphics card #0 deviceId: 0xa7a8     Graphics card #0 versionInfo: DriverVersion=31.0.101.5592     Graphics card #1 name: NVIDIA GeForce RTX 4050 Laptop GPU     Graphics card #1 vendor: NVIDIA (0x10de)     Graphics card #1 VRAM (MB): 4095.00     Graphics card #1 deviceId: 0x28a1     Graphics card #1 versionInfo: DriverVersion=32.0.15.6614     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 28382.02     Virtual memory used (MB): 27525.00     Swap memory total (MB): 12294.35     Swap memory used (MB): 1504.46     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4096m -Xms256m     Fabric Mods:          appleskin: AppleSkin 2.5.1+mc1.20         architectury: Architectury 9.2.14         bettervillage: Better village 3.3.1         citresewn: CIT Resewn 1.2.2+1.20.1             citresewn-defaults: CIT Resewn: Defaults 1.2.2+1.20.1         cloth-config: Cloth Config v11 11.1.136             cloth-basic-math: cloth-basic-math 0.6.1         continuity: Continuity 3.0.0+1.20.1         create: Create 0.5.1-j-build.1631+mc1.20.1             com_google_code_findbugs_jsr305: jsr305 3.0.2             flywheel: Flywheel 0.6.11-4             forgeconfigapiport: Forge Config API Port 8.0.0             milk: Milk Lib 1.2.60                 dripstone_fluid_lib: Dripstone Fluid Lib 3.0.2             porting_lib_accessors: Porting Lib Accessors 2.3.8+1.20.1             porting_lib_base: Porting Lib Base 2.3.8+1.20.1                 porting_lib_attributes: Porting Lib Attributes 2.3.8+1.20.1                 porting_lib_common: Porting Lib Common 2.3.8+1.20.1                 porting_lib_gui_utils: Porting Lib Gui Utils 2.3.8+1.20.1                 porting_lib_utility: Porting Lib Utility 2.3.8+1.20.1             porting_lib_brewing: Porting Lib Brewing 2.3.8+1.20.1             porting_lib_client_events: Porting Lib Client Events 2.3.8+1.20.1                 porting_lib_core: Porting Lib Core 2.3.8+1.20.1             porting_lib_entity: Porting Lib Entity 2.3.8+1.20.1                 porting_lib_mixin_extensions: Porting Lib Mixin Extensions 2.3.8+1.20.1             porting_lib_extensions: Porting Lib Extensions 2.3.8+1.20.1             porting_lib_models: Porting Lib Models 2.3.8+1.20.1                 porting_lib_fluids: Porting Lib Fluids 2.3.8+1.20.1                 porting_lib_model_loader: Porting Lib Model Loader 2.3.8+1.20.1             porting_lib_networking: Porting Lib Networking 2.3.8+1.20.1             porting_lib_obj_loader: Porting Lib Obj Loader 2.3.8+1.20.1             porting_lib_tags: Porting Lib Tags 3.0             porting_lib_tool_actions: Porting Lib Tool Actions 2.3.8+1.20.1             porting_lib_transfer: Porting Lib Transfer 2.3.8+1.20.1             reach-entity-attributes: Reach Entity Attributes 2.4.0             registrate-fabric: Registrate for Fabric 1.3.79-MC1.20.1                 porting_lib_data: Porting Lib Data 2.1.1090+1.20                     porting_lib_gametest: Porting Lib GameTest 2.1.1090+1.20                 porting_lib_model_generators: Porting Lib Model Generators 2.1.1090+1.20                     porting_lib_model_materials: Porting Lib Model Materials 2.1.1090+1.20         createdeco: Create Deco 2.0.2-1.20.1-fabric         cupboard: cupboard 1.20.1-2.7         dashloader: DashLoader 5.0.0-beta.2+1.20.0             com_github_luben_zstd-jni: zstd-jni 1.5.2-2             dev_notalpha_taski: Taski 2.1.0             dev_quantumfusion_hyphen: Hyphen 0.4.0-rc.3         ecologics: Ecologics 2.2.2         entityculling: EntityCulling 1.8.1             transition: TRansition 1.0.3             trender: TRender 1.0.5         fabric-api: Fabric API 0.92.6+1.20.1             fabric-api-base: Fabric API Base 0.4.32+1802ada577             fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.37+1802ada577             fabric-biome-api-v1: Fabric Biome API (v1) 13.0.14+1802ada577             fabric-block-api-v1: Fabric Block API (v1) 1.0.12+1802ada577             fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.3+924f046a77             fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.42+1802ada577             fabric-client-tags-api-v1: Fabric Client Tags 1.1.3+1802ada577             fabric-command-api-v1: Fabric Command API (v1) 1.2.35+f71b366f77             fabric-command-api-v2: Fabric Command API (v2) 2.2.14+1802ada577             fabric-commands-v0: Fabric Commands (v0) 0.2.52+df3654b377             fabric-containers-v0: Fabric Containers (v0) 0.1.67+df3654b377             fabric-content-registries-v0: Fabric Content Registries (v0) 4.0.13+1802ada577             fabric-convention-tags-v1: Fabric Convention Tags 1.5.6+1802ada577             fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.20+1802ada577             fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.0.2+de0fd6d177             fabric-data-generation-api-v1: Fabric Data Generation API (v1) 12.3.7+1802ada577             fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.55+1802ada577             fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.1+1c78457f77             fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.6.5+13a40c6677             fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.64+df3654b377             fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.41+1802ada577             fabric-item-api-v1: Fabric Item API (v1) 2.1.29+1802ada577             fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.14+1802ada577             fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.38+1802ada577             fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.36+df3654b377             fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.2.23+1802ada577             fabric-loot-api-v2: Fabric Loot API (v2) 1.2.3+1802ada577             fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.1.47+9e7660c677             fabric-message-api-v1: Fabric Message API (v1) 5.1.10+1802ada577             fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.52+1802ada577             fabric-model-loading-api-v1: Fabric Model Loading API (v1) 1.0.4+1802ada577             fabric-models-v0: Fabric Models (v0) 0.4.3+9386d8a777             fabric-networking-api-v1: Fabric Networking API (v1) 1.3.14+a158aa0477             fabric-networking-v0: Fabric Networking (v0) 0.3.54+df3654b377             fabric-object-builder-api-v1: Fabric Object Builder API (v1) 11.1.5+e35120df77             fabric-particles-v1: Fabric Particles (v1) 1.1.3+1802ada577             fabric-recipe-api-v1: Fabric Recipe API (v1) 1.0.24+1802ada577             fabric-registry-sync-v0: Fabric Registry Sync (v0) 2.3.6+1802ada577             fabric-renderer-api-v1: Fabric Renderer API (v1) 3.2.2+1802ada577             fabric-renderer-indigo: Fabric Renderer - Indigo 1.5.3+85287f9f77             fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.47+df3654b377             fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.39+92a0d36777             fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.0.29+1802ada577             fabric-rendering-v0: Fabric Rendering (v0) 1.1.50+df3654b377             fabric-rendering-v1: Fabric Rendering (v1) 3.0.9+1802ada577             fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.3.9+1802ada577             fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.11.12+fb82e9d777             fabric-screen-api-v1: Fabric Screen API (v1) 2.0.9+1802ada577             fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.33+1802ada577             fabric-sound-api-v1: Fabric Sound API (v1) 1.0.14+1802ada577             fabric-transfer-api-v1: Fabric Transfer API (v1) 3.3.6+8dd72ea377             fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 4.3.2+1802ada577         fabricloader: Fabric Loader 0.16.14             mixinextras: MixinExtras 0.4.1         farmersdelight: Farmer's Delight 1.20.1-2.4.0+refabricated             mm: Manningham Mills 2.3             porting_lib_config: Porting Lib Config 2.3.8+1.20.1             porting_lib_lazy_registration: Porting Lib Lazy Register 2.3.8+1.20.1             porting_lib_loot: Porting Lib Loot 2.3.8+1.20.1             porting_lib_recipe_book_categories: Porting Lib Recipe Book Categories 2.3.8+1.20.1         farsight: Farsight Mod 1.20.1-4.3             org_jctools_jctools-core: jctools-core 4.0.1         handcrafted: Handcrafted 3.0.6         immediatelyfast: ImmediatelyFast 1.5.1+1.20.4             net_lenni0451_reflect: Reflect 1.3.4         indium: Indium 1.0.36+mc1.20.1         iris: Iris 1.7.6+mc1.20.1             io_github_douira_glsl-transformer: glsl-transformer 2.0.1             org_anarres_jcpp: jcpp 1.4.14             org_antlr_antlr4-runtime: antlr4-runtime 4.13.1         java: OpenJDK 64-Bit Server VM 17         lambdynlights: LambDynamicLights 4.1.3+1.20.1             lambdynlights_api: LambDynamicLights (API) 4.1.3+1.20.1                 yumi-commons-collections: Yumi Commons: Collections 1.0.0-alpha.12                 yumi-commons-core: Yumi Commons: Core 1.0.0-alpha.12                 yumi-commons-event: Yumi Commons: Event 1.0.0-alpha.12             pride: Pride Lib 1.2.0+1.19.4             spruceui: SpruceUI 6.2.1+1.20         libraryferret: Library ferret 4.0.0         litematica: Litematica 0.15.4         lithium: Lithium 0.11.3         malilib: MaLiLib 0.16.3         minecraft: Minecraft 1.20.1         modmenu: Mod Menu 7.2.2         moonlight: Moonlight 1.20-2.14.13         no_fog: No Fog 1.3.6+1.16.5-1.21         railways: Create: Steam 'n' Rails 1.6.9+fabric-mc1.20.1         regions_unexplored: Regions Unexplored 0.5.6+1.20.1         resourcefullib: Resourceful Lib 2.1.29             com_teamresourceful_bytecodecs: bytecodecs 1.0.2             com_teamresourceful_yabn: yabn 1.0.3         sodium: Sodium 0.5.13+mc1.20.1         sound_physics_remastered: Sound Physics Remastered 1.20.1-1.4.12         starlight: Starlight 1.1.2+fabric.dbc156f         supplementaries: Supplementaries 1.20-3.1.36             mixinsquared: MixinSquared 0.1.1         terrablender: TerraBlender 3.0.1.10             com_electronwill_night-config_core: core 3.6.7             com_electronwill_night-config_toml: toml 3.6.7         twigs: Twigs 3.1.0         voicechat: Simple Voice Chat 1.20.1-2.5.34     Loaded Shaderpack: (off)     Flywheel Backend: Uninitialized     Launched Version: fabric-loader-0.16.14-1.20.1     Backend library: LWJGL version 3.3.1 SNAPSHOT     Backend API: NVIDIA GeForce RTX 4050 Laptop GPU/PCIe/SSE2 GL version 3.2.0 NVIDIA 566.14, NVIDIA Corporation     Window size: <not initialized>     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'fabric'     Type: Client (map_client.txt)     CPU: 12x 13th Gen Intel(R) Core(TM) i5-13420H
    • mclo only shows 25000 lines - add the rest with another link
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.