Jump to content

Recommended Posts

Posted (edited)

Hello, my goal is to create a mod that can protect portions of the map, something like the famous "Towny / Faction" plugin. Working daily on Android and websites have always been used to using relational databases. While here on the forge I noticed that many programmers prefer to use the internal system "WorldSavedData".

 

So I ask you that you definitely have more experience with me with the mods.

-  What is the best approach to implementing my project?
-  To save the data I use: Database; jSON; Java Sql, WorldSavedData?
-  How do I handle the Client / Server synchronization problem?

Edited by JdiJack
Posted

I forgot to say, I chose to use a custom GUI to modify the parameters of the various areas (see screenshot below).

I start the GUI client side, is it correct?

2017-10-02_10.58.24.png

Posted

Well the first thing I'd ask is whether the areas can be represented "algorithmically" or if they need to be block by block. For example, if the GUI involves drawing rectangles to define the area then really only two points need to be saved per rectangle and I'm assuming there wouldn't be a great many overall areas.

 

In other words, if you want to save rectangular areas I don't think you need to store information for every block within that area. For rectangles I'd just create a simple class to store the two corners and then make a list of those rectangles. I would probably save it on the server side as world data with a simply serializer.

 

My next question is what exactly you mean by "protect" but assuming you mean it is not modifiable by players you can basically override/intercept all the player interaction with the blocks and cancel it if is within the areas.

 

Lastly, for syncing between client and server it may happen "automatically" if the modifiability is determined by the server. I'm not sure exactly how breaking blocks works, but several things send the user input (the mouse click) to the server that then takes the action (or in your case prevents the action) and then the results are automatically synced back to client. However, there are other things like movement where the client tries to do some processing to make it smoother and that might cause visual glitches while the server sync catches up.

 

So if you want client itself to be aware of the protected area, I would simply send a custom packet to the client whenever a player joins the world and resend any updates to all players if there is a change in the area definitions.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)
6 hours ago, jabelar said:

Well the first thing I'd ask is whether the areas can be represented "algorithmically" or if they need to be block by block. For example, if the GUI involves drawing rectangles to define the area then really only two points need to be saved per rectangle and I'm assuming there wouldn't be a great many overall areas.

In other words, if you want to save rectangular areas I don't think you need to store information for every block within that area. For rectangles I'd just create a simple class to store the two corners and then make a list of those rectangles. I would probably save it on the server side as world data with a simply serializer.

No, the areas are determined by the sum of the selected blocks. Areas can also be different from simple rectangles.

 

6 hours ago, jabelar said:

My next question is what exactly you mean by "protect" but assuming you mean it is not modifiable by players you can basically override/intercept all the player interaction with the blocks and cancel it if is within the areas.

Exactly, but this should not be a problem for the time being.

6 hours ago, jabelar said:

So if you want client itself to be aware of the protected area, I would simply send a custom packet to the client whenever a player joins the world and resend any updates to all players if there is a change in the area definitions.

This is the logic I had imagined myself.
The problem though is to understand how to implement the packages that the server must send to the client.

Try to explain me better:

I currently have a "Area.java" class that stores all the information about a single area:

- area name
- tenant
- taxes
- permissions
- List <BlockClaim.java>

I have two questions:
1) Can I save/load the "Area.java" class in WorldSavedData?
2a) Can I send the "Area.java" class with packages?
2b) Do you want to convert the "Area.java" class to json, and send the json through packets?

Edited by JdiJack
Posted

You just need to create an NBT compound that contains your data of your area class, which may be a simple as the name to identify the compound as an Area and four integers (two sets to define two corners of the rectangle). If you have NBT tag it is very easy to append to world data and also to serialize into packets. I think the byte buffer helper class has ability to write / read NBT from packet payloads and world save data is already NBT so you just add your data and it will automatically get saved and loaded (you'll still need to read it out after loading) to and from file.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
1 hour ago, jabelar said:

Devi solo creare un composto NBT che contiene i tuoi dati della tua classe di zona, che può essere semplice come il nome per identificare il composto come area e quattro interi (due set per definire due angoli del rettangolo). Se hai un tag NBT, è molto facile aggiungere i dati del mondo e anche serializzarlo in pacchetti. Penso che la classe di assistente di buffer di byte abbia la capacità di scrivere / leggere NBT dai pacchetti di payload e i dati di salvataggio del mondo sono già NBT in modo da semplicemente aggiungere i tuoi dati e sarà automaticamente salvato e caricato (dovrai ancora leggerlo dopo il caricamento ) da e verso il file.

thank you, I will try to get me to work and keep you up to date on the code that I will produce

Posted (edited)

I worked a bit and I produced this code:

 

AreeData class (WorldSavedData)

Spoiler

public class AreeData extends WorldSavedData{
	
	private static final String DATA_NAME = Reference.MODID + "_data_aree";
	
	public static AreeData getData(World world) {
		MapStorage storage = world.getMapStorage();
		AreeData instance = (AreeData) storage.getOrLoadData(AreeData.class, DATA_NAME);
		if (instance == null) {
			instance = new AreeData();
			storage.setData(DATA_NAME, instance);
		}
		return instance;
	}
	
	public AreeData() {
		super(DATA_NAME);
	}

	public AreeData(String name) {
		super(name);
	}

	//load
	@Override
	public void readFromNBT(NBTTagCompound nbt) {
	}

	//save
	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound nbt) {		
		return nbt;
	}

}

 

 

methods to write/read NBT

Spoiler

public NBTTagCompound writeAreaToNBT(AreaClaim area){
		if(area!=null){
			NBTTagCompound nbt = new NBTTagCompound();
			
			final String TAG = "area_claim:";
			
			nbt.setLong(TAG+"id", area.getId());
			nbt.setInteger(TAG+"dimension", area.getDimension());
			nbt.setString(TAG+"nome_area", area.getNomeArea());
			nbt.setLong(TAG+"id_casata", area.getIdCasata());
			nbt.setString(TAG+"affittuario_username", area.getAffittuario().getUsername());
			nbt.setString(TAG+"affittuario_uuid", area.getAffittuario().getUUIDString());		

			nbt.setBoolean(TAG+"perm_affittuari_build", area.getPermessi().get("affittuari").get("build"));
			nbt.setBoolean(TAG+"perm_affittuari_destroy", area.getPermessi().get("affittuari").get("destroy"));
			nbt.setBoolean(TAG+"perm_affittuari_switch", area.getPermessi().get("affittuari").get("switch"));
			nbt.setBoolean(TAG+"perm_affittuari_itemuse", area.getPermessi().get("affittuari").get("itemuse"));

			nbt.setBoolean(TAG+"perm_casata_build", area.getPermessi().get("casata").get("build"));
			nbt.setBoolean(TAG+"perm_casata_destroy", area.getPermessi().get("casata").get("destroy"));
			nbt.setBoolean(TAG+"perm_casata_switch", area.getPermessi().get("casata").get("switch"));
			nbt.setBoolean(TAG+"perm_casata_itemuse", area.getPermessi().get("casata").get("itemuse"));

			nbt.setBoolean(TAG+"perm_amici_build", area.getPermessi().get("amici").get("build"));
			nbt.setBoolean(TAG+"perm_amici_destroy", area.getPermessi().get("amici").get("destroy"));
			nbt.setBoolean(TAG+"perm_amici_switch", area.getPermessi().get("amici").get("switch"));
			nbt.setBoolean(TAG+"perm_amici_itemuse", area.getPermessi().get("amici").get("itemuse"));

			nbt.setBoolean(TAG+"perm_alleati_build", area.getPermessi().get("alleati").get("build"));
			nbt.setBoolean(TAG+"perm_alleati_destroy", area.getPermessi().get("alleati").get("destroy"));
			nbt.setBoolean(TAG+"perm_alleati_switch", area.getPermessi().get("alleati").get("switch"));
			nbt.setBoolean(TAG+"perm_alleati_itemuse", area.getPermessi().get("alleati").get("itemuse"));

			nbt.setBoolean(TAG+"perm_stranieri_build", area.getPermessi().get("stranieri").get("build"));
			nbt.setBoolean(TAG+"perm_stranieri_destroy", area.getPermessi().get("stranieri").get("destroy"));
			nbt.setBoolean(TAG+"perm_stranieri_switch", area.getPermessi().get("stranieri").get("switch"));
			nbt.setBoolean(TAG+"perm_stranieri_itemuse", area.getPermessi().get("stranieri").get("itemuse"));		
			
			nbt.setBoolean(TAG+"selezionata", area.getSelezionata());
			nbt.setBoolean(TAG+"mob_protetti", area.getMobProtetti());
			nbt.setInteger(TAG+"tasse", area.getTasse());
			nbt.setInteger(TAG+"color", area.getColor().hashCode());
			
			NBTTagList nbt_list_blocchi_claim = new NBTTagList();
			for(BloccoClaim blocco_claim : area.getBlocchiClaim()){
				nbt_list_blocchi_claim.appendTag(writeBloccoToNBT(blocco_claim));				
			}		
			nbt.setTag(TAG+"nbt_list_blocchi_claim", nbt_list_blocchi_claim);
			
			return nbt;
		}
		return null;		
	}
	
	public AreaClaim readAreaFromNbt(NBTTagCompound nbt){
		if(nbt!=null){
			final String TAG = "area_claim:";
			
			long id = nbt.getLong(TAG+"id");
			int dimension = nbt.getInteger(TAG+"dimension");
			String nome_area = nbt.getString(TAG+"nome_area");
			long id_casata = nbt.getLong(TAG+"id_casata");
			String affittuario_username = nbt.getString(TAG+"affittuario_username");
			String affittuario_uuid = nbt.getString(TAG+"affittuario_uuid");

			HashMap<String, HashMap<String, Boolean>> permessi = new HashMap<String, HashMap<String, Boolean>>();
			HashMap<String, Boolean> permessi_affitturari = new HashMap<String, Boolean>();
			HashMap<String, Boolean> permessi_casata = new HashMap<String, Boolean>();
			HashMap<String, Boolean> permessi_amici = new HashMap<String, Boolean>();
			HashMap<String, Boolean> permessi_alleati = new HashMap<String, Boolean>();
			HashMap<String, Boolean> permessi_stranieri = new HashMap<String, Boolean>();
			
			permessi_affitturari.put("build", nbt.getBoolean(TAG+"perm_affittuari_build"));
			permessi_affitturari.put("destroy", nbt.getBoolean(TAG+"perm_affittuari_destroy"));
			permessi_affitturari.put("switch", nbt.getBoolean(TAG+"perm_affittuari_switch"));
			permessi_affitturari.put("itemuse", nbt.getBoolean(TAG+"perm_affittuari_itemuse"));

			permessi_casata.put("build", nbt.getBoolean(TAG+"perm_casata_build"));
			permessi_casata.put("destroy", nbt.getBoolean(TAG+"perm_casata_destroy"));
			permessi_casata.put("switch", nbt.getBoolean(TAG+"perm_casata_switch"));
			permessi_casata.put("itemuse", nbt.getBoolean(TAG+"perm_casata_itemuse"));

			permessi_amici.put("build", nbt.getBoolean(TAG+"perm_amici_build"));
			permessi_amici.put("destroy", nbt.getBoolean(TAG+"perm_amici_build"));
			permessi_amici.put("switch", nbt.getBoolean(TAG+"perm_amici_build"));
			permessi_amici.put("itemuse", nbt.getBoolean(TAG+"perm_amici_build"));

			permessi_alleati.put("build", nbt.getBoolean(TAG+"perm_alleati_build"));
			permessi_alleati.put("destroy", nbt.getBoolean(TAG+"perm_alleati_destroy"));
			permessi_alleati.put("switch", nbt.getBoolean(TAG+"perm_alleati_switch"));
			permessi_alleati.put("itemuse", nbt.getBoolean(TAG+"perm_alleati_itemuse"));

			permessi_stranieri.put("build", nbt.getBoolean(TAG+"perm_stranieri_build"));
			permessi_stranieri.put("destroy", nbt.getBoolean(TAG+"perm_stranieri_destroy"));
			permessi_stranieri.put("switch", nbt.getBoolean(TAG+"perm_stranieri_switch"));
			permessi_stranieri.put("itemuse", nbt.getBoolean(TAG+"perm_stranieri_itemuse"));

			permessi.put("affittuari", permessi_affitturari);
			permessi.put("casata", permessi_casata);
			permessi.put("amici", permessi_amici);
			permessi.put("alleati", permessi_alleati);
			permessi.put("stranieri", permessi_stranieri);			

			boolean selezionata = nbt.getBoolean(TAG+"selezionata");
			boolean mob_protetti = nbt.getBoolean(TAG+"mob_protetti");
			int tasse = nbt.getInteger(TAG+"tasse");
			Color color = new Color(nbt.getInteger(TAG+"color"));
			
			ArrayList<BloccoClaim> blocchi_claim = new ArrayList<>();
			NBTTagList nbt_list_blocchi_claim = nbt.getTagList(TAG+"nbt_list_blocchi_claim", Constants.NBT.TAG_COMPOUND);
			for (int i=0; i < nbt_list_blocchi_claim.tagCount(); i++) {
				blocchi_claim.add(readBloccoFromNbt((NBTTagCompound)nbt_list_blocchi_claim.get(i)));
			}			
			AreaClaim area = new AreaClaim(nbt.getLong(""), nome_area, dimension, id_casata, mob_protetti, tasse, color);
			area.setPermessi(permessi);
			area.setBlocchiClaim(blocchi_claim);
			return area;
		}	
		return  null;
	}
	
	public NBTTagCompound writeBloccoToNBT(BloccoClaim blocco){
		if(blocco!=null){
			NBTTagCompound nbt = new NBTTagCompound();
			
			final String TAG = "blocco_claim:";
			
			nbt.setDouble(TAG+"x", blocco.getX());
			nbt.setDouble(TAG+"z", blocco.getZ());
			nbt.setInteger(TAG+"dimension", blocco.getDimension());
			
			return nbt;
		}
		return null;		
	}
	
	public BloccoClaim readBloccoFromNbt(NBTTagCompound nbt){
		if(nbt!=null){
			final String TAG = "blocco_claim:";
			
			double x = nbt.getLong(TAG+"x");
			double z = nbt.getLong(TAG+"z");
			int dimension = nbt.getInteger(TAG+"dimension");
			
			BloccoClaim blocco = new BloccoClaim(x, z, dimension);
			return blocco;
		}	
		return  null;
	}

 

 

I want to save in my WorldSavedData class "AreeData" the result of this method

Spoiler


	
	public NBTTagList getNBTListAree(){
		NBTTagList nbt_list_aree_claim = new NBTTagList();
		for(AreaClaim area_claim : this.getCasataTemp().getAreeClaim()){
			nbt_list_aree_claim.appendTag(writeAreaToNBT(area_claim));				
		}
		return nbt_list_aree_claim;
	}

How can I do?
 

 

Edited by JdiJack
Posted

Well one thing I think you're missing is the coordinates of the area itself.

 

I would have four double fields (or have a "rectangle" class) with four double fields that represent x1, z1, x2, z2 in the world. I would then have setter and getter methods for those points. In the write to NBT, I would write the four double values and in the read from NBT I would read the four double values.

 

Also, you should look at the official forge documentation for worldsavedata https://mcforge.readthedocs.io/en/latest/datastorage/worldsaveddata/.

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Why doubles? Why not integers or longs?

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.

Posted
2 hours ago, jabelar said:

Beh, una cosa che penso di essere mancante è la coordinazione dell'area stessa.

 

Avrei quattro campi doppio (o avere una classe "rettangolo") con quattro doppie campi che rappresentano x1, z1, x2, z2 nel mondo. Avrei poi metodi setter e getter per questi punti. Nella scrittura a NBT scrivo i quattro valori duplici e nella lettura da NBT leggerei i quattro valori doppie.

 

Inoltre, è necessario esaminare la documentazione ufficiale di forge per worldsavedata  https://mcforge.readthedocs.io/en/latest/datastorage/worldsaveddata/ .

 

As I said before, the areas I want to get must NOT be rectangles, but they can take any shape, so I need to track every block.

Please pay attention to this aspect and help me instead of the code I have extended. I have read the documentation https://mcforge.readthedocs.io/en/latest/datastorage/worldsaveddata/ several times.

My question is:
1) Is my code correct?
2) how do i save my ntb in worldsavedata class?

Posted

First of all, we can't really tell if your code is correct. That is up to you. The general approach looks correct but you have to verify the details. Have you tried to run the code? Did it work?

 

If you read the documentation it already explains how the saving works. It happens automatically as part of extending the world data class and using the setData() method.

 

To test your code you simply need to add console statements to follow the execution. If you put console statements in the right places you will be able to easily determine whether the code runs, when it runs, and the value of any key fields during the execution.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)
4 hours ago, jabelar said:

First of all, we can't really tell if your code is correct. That is up to you. The general approach looks correct but you have to verify the details.

Thank you, my goal was to understand this.

 

4 hours ago, jabelar said:

To test your code you simply need to add console statements to follow the execution. If you put console statements in the right places you will be able to easily determine whether the code runs, when it runs, and the value of any key fields during the execution.

Although I have not yet understood how to pass and assign the result of "getNBTListAree ()" to "writeToNBT (NBTTagCompound nbt)"

 

Nuova immagine bitmap.jpg

Edited by JdiJack
Posted (edited)

You use the tag compound's setTag() method to add other NBTBase objects, including NBTList to the compound. So in your case if you take the NBTCompound (like the world data compound or you can create a new NBTTagCompound depending on what exactly you're doing at the time.) and go setTag("area_claim_list", getNBTListArea()) it should add it to the compound.

Edited by jabelar
  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

I think I'm close to the solution, the problem is that the "readFromNBT" and "writeToNBT" methods are never called, although I call "markDirty ()".

Class Code "WorldSavedData":

Spoiler

public class AreeData extends WorldSavedData{
	
	private static final String DATA_NAME = Reference.MODID + "_data_aree";
	private NBTTagCompound nbt_message = new NBTTagCompound();
	
	public AreeData() {
		super(DATA_NAME);
	}

	public AreeData(String data_name) {
		super(data_name);
	}

	//load
	@Override
	public void readFromNBT(NBTTagCompound nbt) {
		//nbt_message = nbt;
		nbt_message = nbt.getCompoundTag(DATA_NAME);
	}

	//save
	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound nbt) {	
		nbt.setTag(DATA_NAME, nbt_message);
		//return nbt_message;
		return nbt;
	}
	
	public void salvaCambiamenti(){
		markDirty();
	}
	
	public NBTTagCompound getNBT(){
		return this.nbt_message;
	}
	
	public void setNBT(NBTTagCompound nbt){
		this.nbt_message=nbt;
	}
	
	public static AreeData getData(World world) {
		MapStorage storage = world.getMapStorage();
		AreeData instance = (AreeData) storage.getOrLoadData(AreeData.class, DATA_NAME);
		if (instance == null) {
			instance = new AreeData();
			storage.setData(DATA_NAME, instance);
		}
		return instance;
	}

}

 

 

another class code to save a new NTB:

Spoiler

AreeData area_data = AreeData.getData(Minecraft.getMinecraft().world);
area_data.setNBT(message_inviato.nbt_message);
area_data.salvaCambiamenti();

 

code to recover NTB saved:

Spoiler

AreeData.getData(Minecraft.getMinecraft().world).getNBT()

 

 

Posted

Okay, I was playing with this a bit, coding it my own way and I have a few tips and suggestions.

 

First of all, the world saved data class should also contain the fields that you're interested in changing. Those fields can in fact be simply a list of instances of another class, but the point is that you should be doing the converting between NBT read from file and the class field values.

 

So the way I would do it is that the world saved data class will contain a list of the protected area instances. But the world saved data class should also be used to set the data in those area instances because you need to know when they change to markDirty() properly.

 

Furthermore you have to develop the writeToNBT() and readFromNBT() methods. They should basically use tag lists to hold the list of areas which in turn hold the list of blocks within the area.

 

So for example, here is my protected area class example (note that I only stored name and list of block positions, in your code you should add other things like tenant, taxes and such):

 

public class ProtectedArea 
{
	private String name;
	private List<BlockPos> listBlocks = new ArrayList<BlockPos>();

	/**
	 * Instantiates a new protected area.
	 *
	 * @param parName the par name
	 */
	public ProtectedArea(String parName)
	{
		name = parName;
	}
	
	/**
	 * Gets the name.
	 *
	 * @return the name
	 */
	public String getName() { return name; }
	
	/**
	 * Adds the block position to the protected blocks list.
	 *
	 * @param parPos the par pos
	 */
	public void addBlock(BlockPos parPos)
	{
		listBlocks.add(parPos);
	}
	
	/**
	 * Removes the block position from the protected blocks list.
	 *
	 * @param parPos the par pos
	 */
	public void removeBlock(BlockPos parPos)
	{
		listBlocks.remove(parPos);
	}
	
	/**
	 * Clears the protected blocks.
	 */
	public void clearBlocks()
	{
		listBlocks.clear();
	}
	
	/**
	 * Gets the protected block list.
	 *
	 * @return the protected block list
	 */
	public List<BlockPos> getProtectedBlockList() { return listBlocks; }
	
	/**
	 * Gets the block list tag.
	 *
	 * @return the block list tag
	 */
	public NBTTagList getBlockListTag()
	{
		NBTTagList tagList = new NBTTagList();
		Iterator<BlockPos> iterator = listBlocks.iterator();
		while (iterator.hasNext())
		{
			BlockPos pos = iterator.next();
			NBTTagCompound posCompound = new NBTTagCompound();
			posCompound.setInteger("x", pos.getX());
			posCompound.setInteger("y", pos.getY());
			posCompound.setInteger("z", pos.getZ());
			tagList.appendTag(posCompound);
		}
		return tagList;
	}
}

 

And my example of the class that extends WorldSavedData is:

 

public class ProtectedAreaData extends WorldSavedData
{
	private static final String DATA_NAME = MainMod.MODID + "_data_aree";
	private List<ProtectedArea>  listAreas = new ArrayList<ProtectedArea>();
	
	/**
	 * Instantiates a new protected area data.
	 */
	public ProtectedAreaData() 
	{
		super(DATA_NAME);
	}

	/**
	 * Instantiates a new protected area data.
	 *
	 * @param name the name
	 */
	public ProtectedAreaData(String name) 
	{
		super(name);
	}
	
	/**
	 * Gets the world saved data instance associated to a given world.
	 *
	 * @param world the world
	 * @return the data instance
	 */
	public static ProtectedAreaData getDataInstance(World world) 
	{
		MapStorage storage = world.getMapStorage();
		ProtectedAreaData instance = (ProtectedAreaData) storage.getOrLoadData(ProtectedAreaData.class, DATA_NAME);
		if (instance == null) {
			instance = new ProtectedAreaData();
			storage.setData(DATA_NAME, instance);
		}
		return instance;
	}
	
	/**
	 * Adds the area to the list of protected areas.
	 *
	 * @param parArea the par area
	 */
	public void addArea(ProtectedArea parArea)
	{
		listAreas.add(parArea);
		markDirty();
	}
	
	/**
	 * Removes the area from the list of protected areas.
	 *
	 * @param parArea the par area
	 */
	public void removeArea(ProtectedArea parArea)
	{
		listAreas.remove(parArea);
		markDirty();
	}
	
	/**
	 * Clear the protected areas list.
	 */
	public void clearAreas()
	{
		listAreas.clear();
		markDirty();
	}
	
	/**
	 * Gets the area by name.
	 *
	 * @param parName the par name
	 * @return the area by name
	 */
	@Nullable
	public ProtectedArea getAreaByName(String parName)
	{
		Iterator<ProtectedArea> iterator = listAreas.iterator();
		while (iterator.hasNext())
		{
			ProtectedArea area = iterator.next();
			if (area.getName().equals(parName))
			{
				return area;
			}
		}
		
		return new ProtectedArea(parName);
	}
	
	/**
	 * Adds the block to a given area.
	 *
	 * @param parName the par name
	 * @param parPos the par pos
	 */
	public void addBlockToArea(String parName, BlockPos parPos)
	{
		getAreaByName(parName).addBlock(parPos);
		markDirty();
	}
	
	/**
	 * Removes the block from a given area.
	 *
	 * @param parName the par name
	 * @param parPos the par pos
	 */
	public void removeBlockFromArea(String parName, BlockPos parPos)
	{
		getAreaByName(parName).removeBlock(parPos);
		markDirty();
	}
	
	/**
	 * Clear blocks from area.
	 *
	 * @param parName the par name
	 */
	public void clearBlocksFromArea(String parName)
	{
		getAreaByName(parName).clearBlocks();
		markDirty();
	}
	
	/**
	 * Checks if a block position is protected.
	 *
	 * @param parPos the par pos
	 * @return true, if is block pos protected
	 */
	public boolean isBlockPosProtected(BlockPos parPos)
	{
		Iterator<ProtectedArea> iteratorArea = listAreas.iterator();
		while (iteratorArea.hasNext())
		{
			ProtectedArea area = iteratorArea.next();
			if (area.getProtectedBlockList().contains(parPos))
			{
				return true;
			}
		}
		
		return false;
	}
	
	/* (non-Javadoc)
	 * @see net.minecraft.world.storage.WorldSavedData#readFromNBT(net.minecraft.nbt.NBTTagCompound)
	 */
	//load
	@Override
	public void readFromNBT(NBTTagCompound nbt) 
	{
		listAreas.clear();
		
		NBTTagList tagListAreas = nbt.getTagList("Protected Areas", 10); // 10 indicates a list of NBTTagCompound
		Iterator<NBTBase> iterator = tagListAreas.iterator();
		while (iterator.hasNext())
		{
			NBTTagCompound areaCompound = (NBTTagCompound) iterator.next();
			ProtectedArea area = new ProtectedArea(areaCompound.getString(areaCompound.getString("Area Name")));
			listAreas.add(area);
			NBTTagList tagListPos = areaCompound.getTagList("Block List", 10);
			
			Iterator<NBTBase> iterator2 = tagListPos.iterator();
			while (iterator2.hasNext())
			{
				NBTTagCompound posCompound = (NBTTagCompound) iterator2.next();
				BlockPos pos = new BlockPos(
						posCompound.getInteger("x"),
						posCompound.getInteger("y"),
						posCompound.getInteger("z")
						);
				area.addBlock(pos);	
			}
		}
	}

	/* (non-Javadoc)
	 * @see net.minecraft.world.storage.WorldSavedData#writeToNBT(net.minecraft.nbt.NBTTagCompound)
	 */
	//save
	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound nbt) 
	{	
		NBTTagList tagList = new NBTTagList();
		
		// cycle through the list of areas
		Iterator<ProtectedArea> iteratorArea = listAreas.iterator();
		while (iteratorArea.hasNext())
		{
			NBTTagCompound tagCompound = new NBTTagCompound();
			ProtectedArea area = iteratorArea.next();
			tagCompound.setString("Area Name", area.getName());
			tagCompound.setTag("Block List", area.getBlockListTag());
			tagList.appendTag(tagCompound);
		}

		nbt.setTag("Protected Areas", tagList);
		return nbt;
	}
}

 

NOTE: I have not tested this code yet. But I think the general approach should work well. It is very similar to the world data implemented for the ItemMap.

 

Now, when the player is changing things in your GUI you can use the methods to add the blocks and such as you need.

 

In summary, I think you need to have the informations in fields that are in the world save data class and you should furthermore implement the writeToNBT() and readFromNBT() to suit the information you want to save.

 

For syncing the client, you will have to send the world data yourself as a custom packet. The good news is that the minecraft packet can accept NBT directly as a payload.

 

I hope that helps. I need to go to be as it is past midnight ...

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
12 minutes ago, jabelar said:
Spoiler

 

Okay, stavo giocando con questo un po ', codificandolo a modo mio e ho qualche suggerimento e suggerimenti.

 

Innanzitutto, la classe di dati salvata nel mondo dovrebbe contenere anche i campi che ti interessa cambiare. Questi campi possono infatti essere semplicemente un elenco di istanze di un'altra classe, ma il punto è che si dovrebbe fare la conversione tra NBT leggere da file e valori di campo di classe.

 

Quindi il modo in cui farò è che la classe di dati salvata nel mondo contenga un elenco delle istanze dell'area protetta. Ma la classe di dati salvata in tutto il mondo dovrebbe essere utilizzata anche per impostare i dati nelle istanze di zona in quanto è necessario sapere quando cambiano correttamente in markDirty ().

 

Inoltre, è necessario sviluppare i metodi writeToNBT () e readFromNBT () . Dovrebbero fondamentalmente utilizzare elenchi di tag per tenere l'elenco di aree che a sua volta tenere l'elenco di blocchi all'interno della zona.

 

Quindi, ad esempio, qui è l'esempio della mia categoria di aree protette (noti che ho solo memorizzato il nome e l'elenco di posizioni di blocco, nel tuo codice dovresti aggiungere altre cose come inquilino, tasse e simili):

 



public class ProtectedArea 
{
	private String name;
	private List<BlockPos> listBlocks = new ArrayList<BlockPos>();

	/**
	 * Instantiates a new protected area.
	 *
	 * @param parName the par name
	 */
	public ProtectedArea(String parName)
	{
		name = parName;
	}
	
	/**
	 * Gets the name.
	 *
	 * @return the name
	 */
	public String getName() { return name; }
	
	/**
	 * Adds the block position to the protected blocks list.
	 *
	 * @param parPos the par pos
	 */
	public void addBlock(BlockPos parPos)
	{
		listBlocks.add(parPos);
	}
	
	/**
	 * Removes the block position from the protected blocks list.
	 *
	 * @param parPos the par pos
	 */
	public void removeBlock(BlockPos parPos)
	{
		listBlocks.remove(parPos);
	}
	
	/**
	 * Clears the protected blocks.
	 */
	public void clearBlocks()
	{
		listBlocks.clear();
	}
	
	/**
	 * Gets the protected block list.
	 *
	 * @return the protected block list
	 */
	public List<BlockPos> getProtectedBlockList() { return listBlocks; }
	
	/**
	 * Gets the block list tag.
	 *
	 * @return the block list tag
	 */
	public NBTTagList getBlockListTag()
	{
		NBTTagList tagList = new NBTTagList();
		Iterator<BlockPos> iterator = listBlocks.iterator();
		while (iterator.hasNext())
		{
			BlockPos pos = iterator.next();
			NBTTagCompound posCompound = new NBTTagCompound();
			posCompound
		
		
	

 

E il mio esempio della classe che estende WorldSavedData è:

 



public class ProtectedAreaData extends WorldSavedData
{
	private static final String DATA_NAME = MainMod.MODID + "_data_aree";
	private List<ProtectedArea>  listAreas = new ArrayList<ProtectedArea>();
	
	/**
	 * Instantiates a new protected area data.
	 */
	public ProtectedAreaData() 
	{
		super(DATA_NAME);
	}

	/**
	 * Instantiates a new protected area data.
	 *
	 * @param name the name
	 */
	public ProtectedAreaData(String name) 
	{
		super(name);
	}
	
	/**
	 * Gets the world saved data instance associated to a given world.
	 *
	 * @param world the world
	 * @return the data instance
	 */
	public static ProtectedAreaData getDataInstance(World world) 
	{
		MapStorage storage = world.getMapStorage();
		ProtectedAreaData instance = (ProtectedAreaData) storage.getOrLoadData(ProtectedAreaData.class, DATA_NAME);
		if (instance == null) {
			instance = new ProtectedAreaData();
			storage.setData(DATA_NAME, instance);
		}
		return instance;
	}
	
	/**
	 * Adds the area to the list of protected areas.
	 *
	 * @param parArea the par area
	 */
	public void addArea(ProtectedArea parArea)
	{
		listAreas.add(parArea);
		markDirty();
	}
	
	/**
	 * Removes the area from the list of protected areas.
	 *
	 * @param parArea the par area
	 */
	public void removeArea(ProtectedArea parArea)
	{
		listAreas.remove(parArea);
		markDirty();
	}
	
	/**
	 * Clear the protected areas list.
	 */
	public void clearAreas()
	{
		listAreas.clear();
		markDirty();
	}
	
	/**
	 * Gets the area by name.
	 *
	 * @param parName the par name
	 * @return the area by name
	 */
	@Nullable
	public ProtectedArea getAreaByName(String parName)
	{
		Iterator<ProtectedArea> iterator = listAreas.iterator();
		while (iterator.hasNext())
		{
			ProtectedArea area = iterator.next();
			if (area.getName().equals(parName))
			{
				return area;
			}
		}
		
		return new ProtectedArea(parName);
	}
	
	/**
	 * Adds the block to a given area.
	 *
	 * @param parName the par name
	 * @param parPos the par pos
	 */
	public void addBlockToArea(String parName, BlockPos parPos)
	{
		getAreaByName(parName).addBlock(parPos);
		markDirty();
	}
	
	/**
	 * Removes the block from a given area.
	 *
	 * @param parName the par name
	 * @param parPos the par pos
	 */
	public void removeBlockFromArea(String parName, BlockPos parPos)
	{
		getAreaByName(parName).removeBlock(parPos);
		markDirty();
	}
	
	/**
	 * Clear blocks from area.
	 *
	 * @param parName the par name
	 */
	public void clearBlocksFromArea(String parName)
	{
		getAreaByName(parName).clearBlocks();
		markDirty();
	}
	
	/**
	 * Checks if a block position is protected.
	 *
	 * @param parPos the par pos
	 * @return true, if is block pos protected
	 */
	public boolean isBlockPosProtected(BlockPos parPos)
	{
		Iterator<ProtectedArea> iteratorArea = listAreas.iterator();
		while (iteratorArea.hasNext())
		{
			ProtectedArea area = iteratorArea.next();
			if (area.getProtectedBlockList().contains(parPos))
			{
				return true;
			}
		}
		
		return false;
	}
	
	/* (non-Javadoc)
	 * @see net.minecraft.world.storage.WorldSavedData#readFromNBT(net.minecraft.nbt.NBTTagCompound)
	 */
	//load
	@Override
	public void readFromNBT(NBTTagCompound nbt) 
	{
		listAreas.clear();
		
		NBTTagList tagListAreas = nbt.getTagList("Protected Areas", 10); // 10 indicates a list of NBTTagCompound
		Iterator<NBTBase> iterator = tagListAreas.iterator();
		while (iterator.hasNext())
		{
			NBTTagCompound areaCompound = (NBTTagCompound) iterator.next();
			ProtectedArea area = new ProtectedArea(areaCompound.getString(areaCompound.getString("Area Name")));
			listAreas.add(area);
			NBTTagList tagListPos = areaCompound.getTagList("Block List", 10);
			
			Iterator<NBTBase> iterator2 = tagListPos.iterator();
			while (iterator2.hasNext())
			{
				NBTTagCompound posCompound = (NBTTagCompound) iterator2.next();
				BlockPos pos = new BlockPos(
						posCompound.getInteger("x"),
						posCompound.getInteger("y"),
						posCompound.getInteger("z")
						);
				area.addBlock(pos);	
			}
		}
	}

	/* (non-Javadoc)
	 * @see net.minecraft.world.storage.WorldSavedData#writeToNBT(net.minecraft.nbt.NBTTagCompound)
	 */
	//save
	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound nbt) 
	{	
		NBTTagList tagList = new NBTTagList();
		
		// cycle through the list of areas
		Iterator<ProtectedArea> iteratorArea = listAreas.iterator();
		while (iteratorArea.hasNext())
		{
			NBTTagCompound tagCompound = new NBTTagCompound();
			ProtectedArea area = iteratorArea.next();
			tagCompound.setString("Area Name", area.getName());
			tagCompound.setTag("Block List", area
		

		
	

 

NOTA: non ho ancora provato questo codice. Ma penso che l'approccio generale dovrebbe funzionare bene. È molto simile ai dati del mondo implementati per l'ItemMap.

 

Ora, quando il giocatore sta cambiando le cose nella tua GUI, puoi utilizzare i metodi per aggiungere i blocchi e come hai bisogno.

 

In sintesi, penso che devi avere informazioni in campi che sono al mondo salvare la classe di dati e si dovrebbe inoltre implementare writeToNBT () e readFromNBT () per adattarsi alle informazioni che si desidera salvare.

 

Per la sincronizzazione del client, dovrai inviare i dati del mondo come un pacchetto personalizzato. La buona notizia è che il pacchetto miniera può accettare NBT direttamente come un payload.

 

Spero che aiuti. Devo andare per essere come è passato la mezzanotte ...

 

 

Thank you very much for your help, I appreciate it very much.
Conceptually your work is perfect, but my problem is another one.
I can not call the "writeToNBT ()" and "readFromNBT ()" methods. I will probably abandon WorldSaveData and implement a system that stores NTBCompaund directly on Disk

Posted
27 minutes ago, JdiJack said:

I can not call the "writeToNBT ()" and "readFromNBT ()" methods

 

Why not?

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted (edited)

I've implemented a simple class like this and I can not get it running. I'm desperate are 7 days trying to run WorldSaveData, I'm tired

 


 

Edited by JdiJack
Posted
8 hours ago, JdiJack said:

Thank you very much for your help, I appreciate it very much.
Conceptually your work is perfect, but my problem is another one.
I can not call the "writeToNBT ()" and "readFromNBT ()" methods. I will probably abandon WorldSaveData and implement a system that stores NTBCompaund directly on Disk

 

You should never need to call those functions. You should just need to markDirty(). If you look in my example, the whole point is that all the methods that can change data also do the markDirty().

 

You need to have the data in (or directly accessible from) the class that extends WorldSaveData, and then you should only change the data through that class -- you'll notice that I have methods in my data class that are used to access the data within the contained area classes -- you should not change the area information directly.

 

So, as long as: 

1) your world data is properly appended to the vanilla world data with the set method

2) you only change data through the world data class

3) you mark dirty every time there is a change.

 

Then you should be good.

 

Once you have that working, the next topic is to sync to client!

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

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

    • i cant play minecraft every time i launch it i have error   ---- Minecraft Crash Report ---- // I let you down. Sorry Time: 2025-09-01 16:35:23 Description: Unexpected error java.lang.IllegalStateException: Cannot get config value before config is loaded.     at MC-BOOTSTRAP/[email protected]/com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.2-jre.jar%23135!/:?] {re:mixin}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.getRaw(ModConfigSpec.java:1235) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.get(ModConfigSpec.java:1222) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading}     at TRANSFORMER/[email protected]/tv.soaryn.simpleweather.SimpleWeather$NeoBus.renderWeather(SimpleWeather.java:65) ~[simple_weather-1.0.13.jar%23756!/:?] {re:classloading}     at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:360) ~[bus-8.0.5.jar%23110!/:?] {}     at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:328) ~[bus-8.0.5.jar%23110!/:?] {}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.ClientHooks.fireClientTickPre(ClientHooks.java:1070) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.ClientHooksMixin from mod sodium,pl:mixin:APP:iceberg.neoforge.mixins.json:ClientHooksMixin from mod iceberg,pl:mixin:A}     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.tick(Minecraft.java:1787) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1161) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:807) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:230) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:cryonicconfig.mixins.json:client.MainMixin from mod cryonicconfig,pl:mixin:A,pl:runtimedistcleaner:A}     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {re:mixin}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:136) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:124) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonClientLaunchHandler.runService(CommonClientLaunchHandler.java:32) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.lambda$launchService$4(CommonLaunchHandler.java:118) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:103) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:74) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-11.0.5.jar%23112!/:?] {}     at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:210) [bootstraplauncher-2.0.2.jar:?] {}     at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:69) [bootstraplauncher-2.0.2.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at MC-BOOTSTRAP/[email protected]/com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.2-jre.jar%23135!/:?] {re:mixin}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.getRaw(ModConfigSpec.java:1235) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.common.ModConfigSpec$ConfigValue.get(ModConfigSpec.java:1222) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading}     at TRANSFORMER/[email protected]/tv.soaryn.simpleweather.SimpleWeather$NeoBus.renderWeather(SimpleWeather.java:65) ~[simple_weather-1.0.13.jar%23756!/:?] {re:classloading}     at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:360) ~[bus-8.0.5.jar%23110!/:?] {}     at MC-BOOTSTRAP/net.neoforged.bus/net.neoforged.bus.EventBus.post(EventBus.java:328) ~[bus-8.0.5.jar%23110!/:?] {}     at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.ClientHooks.fireClientTickPre(ClientHooks.java:1070) ~[neoforge-21.1.203-universal.jar%23498!/:?] {re:mixin,re:classloading,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.ClientHooksMixin from mod sodium,pl:mixin:APP:iceberg.neoforge.mixins.json:ClientHooksMixin from mod iceberg,pl:mixin:A} -- Uptime -- Details:     JVM uptime: 40.349s     Wall uptime: 11.181s     High-res time: 35.485s     Client ticks: 1 ticks / 0.050s Stacktrace:     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.fillReport(Minecraft.java:2394) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.emergencySaveAndCrash(Minecraft.java:868) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:828) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:owo.mixins.json:MinecraftClientMixin from mod owo,pl:mixin:APP:mixins.sodiumextras.json:impl.fps.GpuUsageMixin from mod sodiumextras,pl:mixin:APP:subtle_effects.mixins.json:client.MinecraftMixin from mod subtle_effects,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin from mod modernfix,pl:mixin:APP:modernfix-neoforge.mixins.json:feature.measure_time.MinecraftMixin_Forge from mod modernfix,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Images from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_Keybinds from mod iris,pl:mixin:APP:mixins.iris.json:MixinMinecraft_PipelineManagement from mod iris,pl:mixin:APP:pickupnotifier.common.mixins.json:client.MinecraftMixin from mod pickupnotifier,pl:mixin:APP:balm.neoforge.mixins.json:MinecraftMixin from mod balm,pl:mixin:APP:supplementaries-common.mixins.json:MinecraftMixin from mod supplementaries,pl:mixin:APP:resourcefulconfig.mixins.json:client.MinecraftMixin from mod resourcefulconfig,pl:mixin:APP:accessories-common.mixins.json:client.MinecraftMixin from mod accessories,pl:mixin:APP:transition.mixins.json:EntityRenderStateMixin from mod transition,pl:mixin:APP:transition.mixins.json:EntityRendererMixin from mod transition,pl:mixin:APP:proplacer.common.mixins.json:client.accessor.MinecraftAccessor from mod proplacer,pl:mixin:APP:lithium-neoforge.mixins.json:startup.MinecraftMixin from mod lithium,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin from mod fallingleaves,pl:mixin:APP:sodium-common.mixins.json:core.MinecraftMixin from mod sodium,pl:mixin:APP:sodium-neoforge.mixins.json:platform.neoforge.EntrypointMixin from mod sodium,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin from mod alltheleaks,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftMixin2 from mod alltheleaks,pl:mixin:APP:notenoughanimations.mixins.json:LivingRenderStateMixin from mod notenoughanimations,pl:mixin:APP:flywheel.impl.mixins.json:MinecraftMixin from mod flywheel,pl:mixin:APP:ponder-common.mixins.json:client.WindowResizeMixin from mod ponder,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient from mod immediatelyfast,pl:mixin:APP:extrasounds.mixins.json:hotbar.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds.mixins.json:inventory.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:extrasounds-forge.mixins.json:forge.MinecraftClientMixin from mod extrasounds,pl:mixin:APP:morediscs.mixins.json:MixinMinecraft from mod morediscs,pl:mixin:APP:prism.mixins.json:MinecraftMixin from mod prism,pl:mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft from mod bookshelf,pl:mixin:APP:mixins.sodiumdynamiclights.json:MinecraftClientMixin from mod sodiumdynamiclights,pl:mixin:APP:konkrete.mixins.json:client.MixinMinecraft from mod konkrete,pl:mixin:APP:createfood.mixins.json:MixinMinecraft from mod createfood,pl:mixin:APP:architectury.mixins.json:MixinMinecraft from mod architectury,pl:mixin:APP:kubejs.mixins.json:MinecraftClientMixin from mod kubejs,pl:mixin:APP:owo.mixins.json:ui.MinecraftClientMixin from mod owo,pl:mixin:APP:octolib-common.mixins.json:MinecraftMixin from mod octolib,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin from mod blueprint,pl:mixin:APP:moonlight-common.mixins.json:MinecraftMixin from mod moonlight,pl:mixin:APP:platform.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:platform-common.mixins.json:client.MinecraftMixin from mod platform,pl:mixin:APP:sounds.mixins.json:ui.HotbarKeybindSoundEffects from mod sounds,pl:mixin:APP:sounds.mixins.json:ui.ScreenSoundEffect from mod sounds,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin from mod iceberg,pl:mixin:APP:citresewn.mixins.json:types.enchantment.MinecraftClientMixin from mod citresewn,pl:mixin:APP:cryonicconfig.mixins.json:client.MinecraftMixin from mod cryonicconfig,pl:mixin:APP:fancymenu.mixins.json:client.IMixinMinecraft from mod fancymenu,pl:mixin:APP:fancymenu.mixins.json:client.MixinMinecraft from mod fancymenu,pl:mixin:APP:yacl.mixins.json:MinecraftMixin from mod yet_another_config_lib_v3,pl:mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin from mod (unknown),pl:mixin:APP:create.mixins.json:accessor.MinecraftAccessor from mod create,pl:mixin:APP:modernfix-common.mixins.json:feature.remove_telemetry.MinecraftMixin_Telemetry from mod modernfix,pl:mixin:A,pl:runtimedistcleaner:A}     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:230) ~[client-1.21.1-20240808.144430-srg.jar%23497!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:cryonicconfig.mixins.json:client.MainMixin from mod cryonicconfig,pl:mixin:A,pl:runtimedistcleaner:A}     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {re:mixin}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:136) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:124) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonClientLaunchHandler.runService(CommonClientLaunchHandler.java:32) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.lambda$launchService$4(CommonLaunchHandler.java:118) ~[loader-4.0.41.jar%23107!/:4.0] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:103) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:74) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-11.0.5.jar%23112!/:?] {}     at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-11.0.5.jar%23112!/:?] {}     at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:210) [bootstraplauncher-2.0.2.jar:?] {}     at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:69) [bootstraplauncher-2.0.2.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: No     Packs: vanilla, KubeJS Virtual Resource Pack [Internal, assets], KubeJS Virtual Resource Pack [After Mods, assets], KubeJS File Resource Pack [assets], KubeJS Virtual Resource Pack [Before Mods, assets], KubeJS Virtual Resource Pack [Last, assets] -- System Details -- Details:     Minecraft Version: 1.21.1     Minecraft Version ID: 1.21.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 21.0.7, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 944831160 bytes (901 MiB) / 1811939328 bytes (1728 MiB) up to 8589934592 bytes (8192 MiB)     CPUs: 8     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz     Identifier: Intel64 Family 6 Model 60 Stepping 3     Microarchitecture: Haswell (Client)     Frequency (GHz): 4.00     Number of physical packages: 1     Number of physical CPUs: 4     Number of logical CPUs: 8     Graphics card #0 name: NVIDIA GeForce GTX 1050 Ti     Graphics card #0 vendor: NVIDIA     Graphics card #0 VRAM (MiB): 4096.00     Graphics card #0 deviceId: VideoController1     Graphics card #0 versionInfo: 32.0.15.8097     Memory slot #0 capacity (MiB): 8192.00     Memory slot #0 clockSpeed (GHz): 1.60     Memory slot #0 type: DDR3     Memory slot #1 capacity (MiB): 8192.00     Memory slot #1 clockSpeed (GHz): 1.60     Memory slot #1 type: DDR3     Virtual memory max (MiB): 18735.40     Virtual memory used (MiB): 8120.46     Swap memory total (MiB): 2432.00     Swap memory used (MiB): 0.00     Space in storage for jna.tmpdir (MiB): available: 167115.08, total: 476888.00     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 167115.08, total: 476888.00     Space in storage for io.netty.native.workdir (MiB): available: 167115.08, total: 476888.00     Space in storage for java.io.tmpdir (MiB): available: 167115.08, total: 476888.00     Space in storage for workdir (MiB): available: 167115.08, total: 476888.00     JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx8G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     Loaded Shaderpack: (off)     Launched Version: neoforge-21.1.203     Launcher name: minecraft-launcher     Backend library: LWJGL version 3.3.3+5     Backend API: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 580.97, NVIDIA Corporation     Window size: 854x480     GFLW Platform: win32     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Is Modded: Definitely; Client brand changed to 'neoforge'     Universe: 400921fb54442d18     Type: Client (map_client.txt)     Graphics mode: fancy     Render Distance: 12/12 chunks     Resource Packs: vanilla     Current Language: en_us     Locale: ru_RU     System encoding: Cp1251     File encoding: UTF-8     CPU: 8x Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz     ModLauncher: 11.0.5+main.901c6ea8     ModLauncher launch target: forgeclient     ModLauncher services:          sponge-mixin-0.15.2+mixin.0.8.7.jar mixin PLUGINSERVICE          loader-4.0.41.jar slf4jfixer PLUGINSERVICE          loader-4.0.41.jar runtime_enum_extender PLUGINSERVICE          at-modlauncher-10.0.1.jar accesstransformer PLUGINSERVICE          loader-4.0.41.jar runtimedistcleaner PLUGINSERVICE          modlauncher-11.0.5.jar mixin TRANSFORMATIONSERVICE          modlauncher-11.0.5.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         [email protected]+0.16.0+1.21         [email protected]         [email protected]         [email protected]         [email protected]     Mod List:          amwplushies-neoforge-1.21.1-4.4.0.jar             |A Man With Plushies           |a_man_with_plushies           |4.4.0               |Manifest: NOSIGNATURE         accessories-neoforge-1.1.0-beta.48+1.21.1.jar     |Accessories                   |accessories                   |1.1.0-beta.48+1.21.1|Manifest: NOSIGNATURE         AdvancementPlaques-1.21.1-neoforge-1.6.8.jar      |Advancement Plaques           |advancementplaques            |1.6.8               |Manifest: NOSIGNATURE         AirHop-v21.1.0-1.21.1-NeoForge.jar                |Air Hop                       |airhop                        |21.1.0              |Manifest: NOSIGNATURE         alltheleaks-1.0.0+1.21.1-neoforge.jar             |All The Leaks                 |alltheleaks                   |1.0.0+1.21.1-neoforg|Manifest: NOSIGNATURE         amendments-1.21-2.0.5-neoforge.jar                |Amendments                    |amendments                    |1.21-2.0.5          |Manifest: NOSIGNATURE         anvilrestoration-1.21.1-2.4.jar                   |Anvil Restoration             |anvilrestoration              |2.4                 |Manifest: NOSIGNATURE         appleskin-neoforge-mc1.21-3.0.7.jar               |AppleSkin                     |appleskin                     |3.0.7+mc1.21        |Manifest: NOSIGNATURE         ArcaneLanterns-v21.1.0-1.21.1-NeoForge.jar        |Arcane Lanterns               |arcanelanterns                |21.1.0              |Manifest: NOSIGNATURE         architectury-13.0.8-neoforge.jar                  |Architectury                  |architectury                  |13.0.8              |Manifest: NOSIGNATURE         ArmorTrimItemFix-neoforge-1.21.1-1.2.0.jar        |Armor Trim Item Fix           |armortrimitemfix              |1.2.0               |Manifest: NOSIGNATURE         artifacts-neoforge-13.0.7.jar                     |Artifacts                     |artifacts                     |13.0.7              |Manifest: NOSIGNATURE         athena-neoforge-1.21-4.0.2.jar                    |Athena                        |athena                        |4.0.2               |Manifest: NOSIGNATURE         attributefix-neoforge-1.21.1-21.1.2.jar           |AttributeFix                  |attributefix                  |21.1.2              |Manifest: NOSIGNATURE         automaticdoors-1.21.1-4.9.jar                     |Automatic Doors               |automaticdoors                |4.9                 |Manifest: NOSIGNATURE         BadOptimizations-2.3.0-1.21.1.jar                 |BadOptimizations              |badoptimizations              |2.3.0               |Manifest: NOSIGNATURE         baguettelib-1.21.1-NeoForge-1.1.0.jar             |BaguetteLib                   |baguettelib                   |1.1.0               |Manifest: NOSIGNATURE         balm-neoforge-1.21.1-21.0.49.jar                  |Balm                          |balm                          |21.0.49             |Manifest: NOSIGNATURE         BarteringStation-v21.1.0-1.21.1-NeoForge.jar      |Bartering Station             |barteringstation              |21.1.0              |Manifest: NOSIGNATURE         bedspreads-neoforge-7.0.0+1.21.1.jar              |Bedspreads                    |bedspreads                    |7.0.0+1.21.1        |Manifest: NOSIGNATURE         BetterAdvancements-NeoForge-1.21.1-0.4.3.21.jar   |Better Advancements           |betteradvancements            |0.4.3.21            |Manifest: NOSIGNATURE         BetterAnimationsCollection-v21.1.0-1.21.1-NeoForge|Better Animations Collection  |betteranimationscollection    |21.1.0              |Manifest: NOSIGNATURE         betterarcheology-neoforge-1.3.2.jar               |Better Archeology             |betterarcheology              |1.3.2               |Manifest: NOSIGNATURE         better_climbing-neoforge-4.jar                    |Better Climbing               |better_climbing               |4                   |Manifest: NOSIGNATURE         BetterPingDisplay-1.21.1-1.1.jar                  |Better Ping Display           |betterpingdisplay             |1.1                 |Manifest: NOSIGNATURE         BetterThanMending-2.2.0.jar                       |BetterThanMending             |betterthanmending             |2.2.0               |Manifest: NOSIGNATURE         bibliocraft-1.21.1-1.6.1.jar                      |Bibliocraft Legacy            |bibliocraft                   |1.6.1               |Manifest: NOSIGNATURE         BlockRunner-v21.1.2-1.21.1-NeoForge.jar           |Block Runner                  |blockrunner                   |21.1.2              |Manifest: NOSIGNATURE         blueprint-1.21.1-8.0.5.jar                        |Blueprint                     |blueprint                     |8.0.5               |Manifest: NOSIGNATURE         bookshelf-neoforge-1.21.1-21.1.68.jar             |Bookshelf                     |bookshelf                     |21.1.68             |Manifest: NOSIGNATURE         bookshelves-2.5-neoforge-1.21.1.jar               |Bookshelves                   |bookshelves                   |2.5                 |Manifest: NOSIGNATURE         bouncierbeds-1.21.1-2.5.jar                       |Bouncier Beds                 |bouncierbeds                  |2.5                 |Manifest: NOSIGNATURE         buzzier_bees-1.21.1-7.0.0.jar                     |Buzzier Bees                  |buzzier_bees                  |7.0.0               |Manifest: NOSIGNATURE         Cardiac-NEOFORGE-0.5.3.4+1.21.jar                 |Cardiac                       |cardiac                       |0.5.3.4             |Manifest: NOSIGNATURE         catalogue-neoforge-1.21.1-1.11.1.jar              |Catalogue                     |catalogue                     |1.11.1              |Manifest: NOSIGNATURE         ceilingtorch-1.21.1-1.33.jar                      |Ceiling Torch                 |ceilingtorch                  |1.33                |Manifest: NOSIGNATURE         cfm_wap-1.21.1-neoforge-1.2.0.jar                 |CFM Refurbished: Watt about Po|cfm_wap                       |1.2.0               |Manifest: NOSIGNATURE         charmofundying-neoforge-9.1.0+1.21.1.jar          |Charm of Undying              |charmofundying                |9.1.0+1.21.1        |Manifest: NOSIGNATURE         chat_heads-0.13.20-neoforge-1.21.jar              |Chat Heads                    |chat_heads                    |0.13.20             |Manifest: NOSIGNATURE         ChatImpressiveAnimation-neoforge-1.4.0+mc1.21.5.ja|Chat Impressive Animation     |chatimpressiveanimation       |1.4.0+mc1.21.5      |Manifest: NOSIGNATURE         cherishedworlds-neoforge-10.1.1+1.21.1.jar        |Cherished Worlds              |cherishedworlds               |10.1.1+1.21.1       |Manifest: NOSIGNATURE         chipped-neoforge-1.21.1-4.0.2.jar                 |Chipped                       |chipped                       |4.0.2               |Manifest: NOSIGNATURE         ChippedExpress-universal-21x.jar                  |ChippedExpress                |chipped_express               |1.3.2               |Manifest: NOSIGNATURE         chisel-neoforge-2.0.0+mc1.21.1.jar                |Chisel Reborn                 |chisel                        |2.0.0+mc1.21.1      |Manifest: NOSIGNATURE         chunkloaders-1.2.8-neoforge-mc1.21.jar            |Chunk Loaders                 |chunkloaders                  |1.2.8               |Manifest: NOSIGNATURE         Chunky-NeoForge-1.4.23.jar                        |Chunky                        |chunky                        |1.4.23              |Manifest: NOSIGNATURE         citresewn-neoforge-1.21.1-0.jar                   |CITResewn                     |citresewn                     |0                   |Manifest: NOSIGNATURE         cloth-config-15.0.140-neoforge.jar                |Cloth Config v15 API          |cloth_config                  |15.0.140            |Manifest: NOSIGNATURE         Clumps-neoforge-1.21.1-19.0.0.1.jar               |Clumps                        |clumps                        |19.0.0.1            |Manifest: NOSIGNATURE         colorful-world-1.3b.jar                           |CoffeeG's Colorful World      |mr_coffeegs_colorfulworld     |1.3b                |Manifest: NOSIGNATURE         collective-1.21.1-8.3.jar                         |Collective                    |collective                    |8.3                 |Manifest: NOSIGNATURE         CompletionistsIndex-v21.1.0-1.21.1-NeoForge.jar   |Completionist's Index         |completionistsindex           |21.1.0              |Manifest: NOSIGNATURE         conditional-mixin-neoforge-0.6.4.jar              |conditional mixin             |conditional_mixin             |0.6.4               |Manifest: NOSIGNATURE         configlibtxf-7.2.8-neoforge.jar                   |ConfigLib TXF                 |configlibtxf                  |7.2.8-neoforge      |Manifest: NOSIGNATURE         connectedglass-1.1.14-neoforge-mc1.21.jar         |Connected Glass               |connectedglass                |1.1.14              |Manifest: NOSIGNATURE         connectivity-1.21.1-7.1.jar                       |Connectivity Mod              |connectivity                  |7.1                 |Manifest: NOSIGNATURE         Controlling-neoforge-1.21.1-19.0.5.jar            |Controlling                   |controlling                   |19.0.5              |Manifest: NOSIGNATURE         cookingforblockheads-neoforge-1.21.1-21.1.16.jar  |Cooking for Blockheads        |cookingforblockheads          |21.1.16             |Manifest: NOSIGNATURE         coolrain-1.1.0-1.21.1-neoforge.jar                |Cool Rain                     |coolrain                      |1.1.0               |Manifest: NOSIGNATURE         coroutil-neoforge-1.21.0-1.3.8.jar                |CoroUtil                      |coroutil                      |1.21.0-1.3.8        |Manifest: NOSIGNATURE         corpse-neoforge-1.21.1-1.1.10.jar                 |Corpse                        |corpse                        |1.21.1-1.1.10       |Manifest: NOSIGNATURE         corpsecurioscompat-1.21.1-NeoForge-3.1.2.jar      |Corpse Curios Compatibility   |corpsecurioscompat            |3.1.2               |Manifest: NOSIGNATURE         cosmeticarmorreworked-1.21.1-v1-neoforge.jar      |CosmeticArmorReworked         |cosmeticarmorreworked         |1.21.1-v1-neoforge  |Manifest: 5e:ed:25:99:e4:44:14:c0:dd:89:c1:a9:4c:10:b5:0d:e4:b1:52:50:45:82:13:d8:d0:32:89:67:56:57:01:53         craftingtweaks-neoforge-1.21.1-21.1.6.jar         |Crafting Tweaks               |craftingtweaks                |21.1.6              |Manifest: NOSIGNATURE         CraftingXP 1.21 .1 NeoForge.jar                   |CraftingXP                    |craftingxp                    |1.21.1              |Manifest: NOSIGNATURE         create-1.21.1-6.0.6.jar                           |Create                        |create                        |6.0.6               |Manifest: NOSIGNATURE         create_compressed-2.2.0-neoforge-1.21.1.jar       |Create Compressed             |create_compressed             |2.2.0               |Manifest: NOSIGNATURE         create-confectionery1.21.1_v1.1.2.jar             |Create Confectionery          |create_confectionery          |1.1.2               |Manifest: NOSIGNATURE         createaddition-1.5.2.jar                          |Create Crafts & Additions     |createaddition                |1.5.2               |Manifest: NOSIGNATURE         createdieselgenerators-1.21.1-1.3.4_1.jar         |Create Diesel Generators      |createdieselgenerators        |1.21.1-1.3.4        |Manifest: NOSIGNATURE         Create Encased-1.21.1-1.7.2-fix1.jar              |Create Encased                |createcasing                  |1.7.2-fix1          |Manifest: NOSIGNATURE         create_hypertube-0.2.5-NEOFORGE_1.jar             |Create Hypertube              |create_hypertube              |0.2.5               |Manifest: NOSIGNATURE         create_ltab-3.0.0.jar                             |Create Let The Adventure Begin|create_ltab                   |3.0.0               |Manifest: NOSIGNATURE         sliceanddice-neoforge-4.0.1.jar                   |Create Slice & Dice           |sliceanddice                  |4.0.1               |Manifest: NOSIGNATURE         create-stuff-additions1.21.1_v2.1.0e.jar          |Create Stuff 'N Additions     |create_sa                     |2.1.0.              |Manifest: NOSIGNATURE         bellsandwhistles-0.4.7-1.21.1.jar                 |Create: Bells & Whistles      |bellsandwhistles              |0.4.7-1.21.1        |Manifest: NOSIGNATURE         create_better_motors-3.1.4-1.21.1-neoforge.jar    |Create: Better Motors         |create_better_motors          |3.1.4               |Manifest: NOSIGNATURE         create-central-kitchen-2.1.3.jar                  |Create: Central Kitchen       |create_central_kitchen        |2.1.3               |Manifest: NOSIGNATURE         createchromaticreturn-1.0.1-neoforge-1.21.1.jar   |Create: Chromatic Return      |createchromaticreturn         |1.0.0               |Manifest: NOSIGNATURE         create_connected-1.1.6-mc1.21.1.jar               |Create: Connected             |create_connected              |1.1.6-mc1.21.1      |Manifest: NOSIGNATURE         copycats-3.0.2+mc.1.21.1-neoforge.jar             |Create: Copycats+             |copycats                      |3.0.2+mc.1.21.1-neof|Manifest: NOSIGNATURE         create-dragons-plus-1.6.1.jar                     |Create: Dragons Plus          |create_dragons_plus           |1.6.1               |Manifest: NOSIGNATURE         create_easy_structures-0.2a-neoforge-1.21.1.jar   |Create: Easy Structures       |create_easy_structures        |0.2                 |Manifest: NOSIGNATURE         create-enchantment-industry-2.1.7.jar             |Create: Enchantment Industry  |create_enchantment_industry   |2.1.7               |Manifest: NOSIGNATURE         createfood-neoforge-1.21.1-2.0.0-beta-3.jar       |Create: Food                  |createfood                    |2.0.0-beta-3        |Manifest: NOSIGNATURE         createframed-1.21.1-1.6.8.jar                     |Create: Framed                |createframed                  |1.6.8               |Manifest: NOSIGNATURE         create_oxidized-0.1.3.jar                         |Create: Oxidized              |create_oxidized               |0.1.3               |Manifest: NOSIGNATURE         create_pillagers_arise-118.28.GL-neoforge-1.21.1.j|Create: Pillagers Arise       |create_pillagers_arise        |118.28.             |Manifest: NOSIGNATURE         create_power_loader-2.0.3-mc1.21.1.jar            |Create: Power Loader          |create_power_loader           |2.0.3-mc1.21.1      |Manifest: NOSIGNATURE         create_simple_ore_doubling-1.5.5-neoforge-1.21.1.j|Create: Simple Ore Doubling   |create_simple_ore_doubling    |1.5.5               |Manifest: NOSIGNATURE         create_structures_arise-162.35.34-neoforge-1.21.1.|Create: Structures Arise      |create_structures_arise       |162.35.34           |Manifest: NOSIGNATURE         create_things_and_misc-4.0-neoforge-1.21.1.jar    |create: things and misc       |create_things_and_misc        |1.0.0               |Manifest: NOSIGNATURE         trading_floor-3.0.10.jar                          |Create: Trading Floor         |trading_floor                 |3.0.10              |Manifest: NOSIGNATURE         create_ultimate_factory-2.1.1-neoforge-1.21.1.jar |Create: Ultimate Factory      |create_ultimate_factory       |2.1.1               |Manifest: NOSIGNATURE         create_better_villagers-1.3.2.jar                 |Create_Better_Villagers       |create_better_villagers       |1.3.2               |Manifest: NOSIGNATURE         CreeperOverhaul-neoforge-1.21.1-4.0.6.jar         |Creeper Overhaul              |creeperoverhaul               |4.0.6               |Manifest: NOSIGNATURE         cristellib-neoforge-1.2.8.jar                     |Cristel Lib                   |cristellib                    |1.2.8               |Manifest: NOSIGNATURE         cryonicconfig-neoforge-1.0.0+mc1.21.8.jar         |Cryonic Config                |cryonicconfig                 |1.0.0+mc1.21.8      |Manifest: NOSIGNATURE         cupboard-1.21-2.9.jar                             |Cupboard mod                  |cupboard                      |2.9                 |Manifest: NOSIGNATURE         curios-neoforge-9.5.1+1.21.1.jar                  |Curios API                    |curios                        |9.5.1+1.21.1        |Manifest: NOSIGNATURE         curious_armor_stands-8.0.0.jar                    |Curious Armor Stands          |curious_armor_stands          |8.0.0               |Manifest: NOSIGNATURE         darkpaintings-neoforge-1.21.1-21.1.2.jar          |DarkPaintings                 |darkpaintings                 |21.1.2              |Manifest: NOSIGNATURE         DeathFinder-v21.1.1-1.21.1-NeoForge.jar           |Death Finder                  |deathfinder                   |21.1.1              |Manifest: NOSIGNATURE         deimos-1.21.1-neoforge-2.2.jar                    |Deimos                        |deimos                        |2.2                 |Manifest: NOSIGNATURE         denseores-1.21-1.2.2.jar                          |Dense Ores                    |denseores                     |1.2.2               |Manifest: NOSIGNATURE         diagonalblocks-neoforge-21.1.2.jar                |Diagonal Blocks               |diagonalblocks                |21.1.2              |Manifest: NOSIGNATURE         DiagonalFences-v21.1.1-1.21.1-NeoForge.jar        |Diagonal Fences               |diagonalfences                |21.1.1              |Manifest: NOSIGNATURE         DiagonalWalls-v21.1.2-1.21.1-NeoForge.jar         |Diagonal Walls                |diagonalwalls                 |21.1.2              |Manifest: NOSIGNATURE         DiagonalWindows-v21.1.1-1.21.1-NeoForge.jar       |Diagonal Windows              |diagonalwindows               |21.1.1              |Manifest: NOSIGNATURE         doubledoors-1.21.1-7.1.jar                        |Double Doors                  |doubledoors                   |7.1                 |Manifest: NOSIGNATURE         dungeons-and-taverns-v4.4.4 [NeoForge].jar        |Dungeons and Taverns          |mr_dungeons_andtaverns        |1-v4.4.4            |Manifest: NOSIGNATURE         e4mc_minecraft-neoforge-5.4.1.jar                 |e4mc                          |e4mc_minecraft                |5.4.1               |Manifest: NOSIGNATURE         EasyAnvils-v21.1.0-1.21.1-NeoForge.jar            |Easy Anvils                   |easyanvils                    |21.1.0              |Manifest: NOSIGNATURE         EasyMagic-v21.1.0-1.21.1-NeoForge.jar             |Easy Magic                    |easymagic                     |21.1.0              |Manifest: NOSIGNATURE         easy-villagers-neoforge-1.21.1-1.1.35.jar         |Easy Villagers                |easy_villagers                |1.21.1-1.1.35       |Manifest: NOSIGNATURE         EffectDescriptions-v21.1.1-1.21.1-NeoForge.jar    |Effect Descriptions           |effectdescriptions            |21.1.1              |Manifest: NOSIGNATURE         enchdesc-neoforge-1.21.1-21.1.8.jar               |EnchantmentDescriptions       |enchdesc                      |21.1.8              |Manifest: NOSIGNATURE         EnderZoology-v21.1.3-1.21.1-NeoForge.jar          |Ender Zoology                 |enderzoology                  |21.1.3              |Manifest: NOSIGNATURE         endersdelight-neoforge-1.21.1-1.1.0.jar           |Ender's Delight               |endersdelight                 |1.1.0               |Manifest: NOSIGNATURE         EnhancedNature-1.21-(v.3.0.1-NEO).jar             |Enhanced Nature               |enhanced_nature               |3.0.1               |Manifest: NOSIGNATURE         entityculling-neoforge-1.8.2-mc1.21.jar           |EntityCulling                 |entityculling                 |1.8.2               |Manifest: NOSIGNATURE         EquipmentCompare-1.21.1-neoforge-1.3.13.jar       |Equipment Compare             |equipmentcompare              |1.3.13              |Manifest: NOSIGNATURE         etched-4.0.0.jar                                  |Etched                        |etched                        |4.0.0               |Manifest: NOSIGNATURE         expandability-neoforge-12.0.0.jar                 |ExpandAbility                 |expandability                 |12.0.0              |Manifest: NOSIGNATURE         expandeddelight-0.1.3.2.jar                       |Expanded Delight              |expandeddelight               |0.1.3.2             |Manifest: NOSIGNATURE         expandedstorage-neoforge-1.21.1-14.2.1.jar        |Expanded Storage              |expandedstorage               |14.2.1              |Manifest: NOSIGNATURE         ExplorersCompass-1.21.1-3.0.3-neoforge.jar        |Explorer's Compass            |explorerscompass              |1.21.1-3.0.3-neoforg|Manifest: NOSIGNATURE         extensibleenums-neoforge-21.1.1.jar               |Extensible Enums              |extensibleenums               |21.1.1              |Manifest: NOSIGNATURE         ExtraSoundsNext-neoforge-1.21.1-1.4.jar           |ExtraSoundsNext               |extrasounds                   |1.4                 |Manifest: NOSIGNATURE         extrasponges-neoforge-1.21-1.6.1.jar              |ExtraSponges                  |extrasponges                  |1.6.1               |Manifest: NOSIGNATURE         EyesInTheDarkness-1.21.1-1.4.6.jar                |Eyes in the Darkness          |eyesinthedarkness             |1.4.6               |Manifest: NOSIGNATURE         factory_blocks-neoforge-1.4.0+mc1.21.1.jar        |Factory Blocks                |factory_blocks                |1.4.0+mc1.21.1      |Manifest: NOSIGNATURE         fadeless-neoforge-1.1.0.jar                       |Fadeless                      |fadeless                      |1.1.0               |Manifest: NOSIGNATURE         fallingleaves-1.21.1-2.5.1.jar                    |Fallingleaves                 |fallingleaves                 |2.5.1               |Manifest: NOSIGNATURE         fancymenu_neoforge_3.7.0_MC_1.21.1.jar            |FancyMenu                     |fancymenu                     |3.7.0               |Manifest: NOSIGNATURE         FarmersDelight-1.21.1-1.2.9.jar                   |Farmer's Delight              |farmersdelight                |1.2.9               |Manifest: NOSIGNATURE         farsight-1.21-3.8.jar                             |Farsight mod                  |farsight_view                 |3.8                 |Manifest: NOSIGNATURE         fast-ip-ping-v1.0.7-mc1.21.1-neoforge.jar         |Fast IP Ping                  |fastipping                    |1.0.7               |Manifest: NOSIGNATURE         FastWorkbench-1.21.1-9.1.3.jar                    |Fast Workbench                |fastbench                     |9.1.3               |Manifest: NOSIGNATURE         FastFurnace-1.21.1-9.0.1.jar                      |FastFurnace                   |fastfurnace                   |9.0.1               |Manifest: NOSIGNATURE         fastleafdecay-35.jar                              |FastLeafDecay                 |fastleafdecay                 |35                  |Manifest: NOSIGNATURE         ferritecore-7.0.2-neoforge.jar                    |Ferrite Core                  |ferritecore                   |7.0.2               |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         fixedanvilrepaircost-1.21.1-3.5.jar               |Fixed Anvil Repair Cost       |fixedanvilrepaircost          |3.5                 |Manifest: NOSIGNATURE         flywheel-neoforge-1.21.1-1.0.4.jar                |Flywheel                      |flywheel                      |1.0.4               |Manifest: NOSIGNATURE         fabric-api-base-0.4.42+d1308dedd1.jar             |Forgified Fabric API Base     |fabric_api_base               |0.4.42+d1308dedd1   |Manifest: NOSIGNATURE         fabric-block-view-api-v2-1.0.10+9afaaf8c19.jar    |Forgified Fabric BlockView API|fabric_block_view_api_v2      |1.0.10+9afaaf8c19   |Manifest: NOSIGNATURE         fabric-game-rule-api-v1-1.0.53+36d727be19.jar     |Forgified Fabric Game Rule API|fabric_game_rule_api_v1       |1.0.53+36d727be19   |Manifest: NOSIGNATURE         fabric-model-loading-api-v1-2.0.0+986ae77219.jar  |Forgified Fabric Model Loading|fabric_model_loading_api_v1   |2.0.0+986ae77219    |Manifest: NOSIGNATURE         fabric-renderer-indigo-1.7.0+acb05a3919.jar       |Forgified Fabric Renderer - In|fabric_renderer_indigo        |1.7.0+acb05a3919    |Manifest: NOSIGNATURE         fabric-renderer-api-v1-3.4.0+acb05a3919.jar       |Forgified Fabric Renderer API |fabric_renderer_api_v1        |3.4.0+acb05a3919    |Manifest: NOSIGNATURE         fabric-rendering-data-attachment-v1-0.3.48+73761d2|Forgified Fabric Rendering Dat|fabric_rendering_data_attachme|0.3.48+73761d2e19   |Manifest: NOSIGNATURE         FramedBlocks-10.4.0.jar                           |FramedBlocks                  |framedblocks                  |10.4.0              |Manifest: NOSIGNATURE         framework-neoforge-1.21.1-0.9.6.jar               |Framework                     |framework                     |0.9.6               |Manifest: NOSIGNATURE         ftb-library-neoforge-2101.1.19.jar                |FTB Library                   |ftblibrary                    |2101.1.19           |Manifest: NOSIGNATURE         ftb-quests-neoforge-2101.1.14.jar                 |FTB Quests                    |ftbquests                     |2101.1.14           |Manifest: NOSIGNATURE         ftb-teams-neoforge-2101.1.3.jar                   |FTB Teams                     |ftbteams                      |2101.1.3            |Manifest: NOSIGNATURE         ftb-xmod-compat-neoforge-21.1.5.jar               |FTB XMod Compat               |ftbxmodcompat                 |21.1.5              |Manifest: NOSIGNATURE         fusion-1.2.11a-neoforge-mc1.21.jar                |Fusion                        |fusion                        |1.2.11+a            |Manifest: NOSIGNATURE         fzzy_config-0.7.2+1.21+neoforge.jar               |Fzzy Config                   |fzzy_config                   |0.7.2+1.21+neoforge |Manifest: NOSIGNATURE         hats-neoforge-1.21.1-1.2.1.jar                    |Galena Hats                   |galena_hats                   |1.21.1-1.2.1        |Manifest: NOSIGNATURE         geckolib-neoforge-1.21.1-4.7.7.jar                |GeckoLib 4                    |geckolib                      |4.7.7               |Manifest: NOSIGNATURE         Geophilic v3.4.3 f15-80.mod.jar                   |Geophilic                     |geophilic                     |3.4.3               |Manifest: NOSIGNATURE         guardvillagers-2.3.2-1.21.1.jar                   |Guard Villagers               |guardvillagers                |2.3.2               |Manifest: NOSIGNATURE         guideme-21.1.14.jar                               |GuideME                       |guideme                       |21.1.14             |Manifest: NOSIGNATURE         handoveryouritems-1.21.1-3.6.jar                  |Hand Over Your Items          |handoveryouritems             |3.6                 |Manifest: NOSIGNATURE         handcrafted-neoforge-1.21.1-4.0.3.jar             |Handcrafted                   |handcrafted                   |4.0.3               |Manifest: NOSIGNATURE         HangGlider-v21.1.0-1.21.1-NeoForge.jar            |Hang Glider                   |hangglider                    |21.1.0              |Manifest: NOSIGNATURE         healingcampfire-1.21.1-6.2.jar                    |Healing Campfire              |healingcampfire               |6.2                 |Manifest: NOSIGNATURE         him-2.0.2-neoforge-1.21.1.jar                     |him                           |him                           |2.0.1               |Manifest: NOSIGNATURE         HopoBetterMineshaft-[1.21-1.21.3]-1.3.0b.jar      |HopoBetterMineshaft           |hopo                          |1.3.0               |Manifest: NOSIGNATURE         HopoBetterRuinedPortals-[1.21.1-1.21.3]-1.4.4b.jar|HopoBetterRuinedPortals       |hoporp                        |1.4.4               |Manifest: NOSIGNATURE         HopoBetterUnderwaterRuins-[1.21.1-1.21.3]-1.2.1b.j|HopoBetterUnderwaterRuins     |hopour                        |1.2.1               |Manifest: NOSIGNATURE         HorseExpert-v21.1.0-1.21.1-NeoForge.jar           |Horse Expert                  |horseexpert                   |21.1.0              |Manifest: NOSIGNATURE         Iceberg-1.21.1-neoforge-1.3.2.jar                 |Iceberg                       |iceberg                       |1.3.2               |Manifest: NOSIGNATURE         ImmediatelyFast-NeoForge-1.6.6+1.21.1.jar         |ImmediatelyFast               |immediatelyfast               |1.6.6+1.21.1        |Manifest: NOSIGNATURE         immersive_aircraft-1.3.3+1.21.1-neoforge.jar      |Immersive Aircraft            |immersive_aircraft            |1.3.3+1.21.1        |Manifest: NOSIGNATURE         immersivethunder-neoforge-1.21.1-1.3.0.jar        |Immersive Thunder             |immersivethunder              |1.3.0               |Manifest: NOSIGNATURE         ImmersiveUI-NEOFORGE-0.3.3+1.21.1.jar             |ImmersiveUI                   |immersiveui                   |0.3.3               |Manifest: NOSIGNATURE         infinitetrading-1.21.1-4.6.jar                    |Infinite Trading              |infinitetrading               |4.6                 |Manifest: NOSIGNATURE         iris-neoforge-1.8.12+mc1.21.1.jar                 |Iris                          |iris                          |1.8.12-snapshot+mc1.|Manifest: NOSIGNATURE         ironbookshelves-1.21.1-1.4.11-neoforge.jar        |Iron Bookshelves              |ironbookshelves               |1.21.1-1.4.11-neofor|Manifest: NOSIGNATURE         ItemBorders-1.21-neoforge-1.2.5.jar               |Item Borders                  |itemborders                   |1.2.5               |Manifest: NOSIGNATURE         Jade-1.21.1-NeoForge-15.10.3.jar                  |Jade                          |jade                          |15.10.3+neoforge    |Manifest: NOSIGNATURE         JadeAddons-1.21.1-NeoForge-6.1.0.jar              |Jade Addons                   |jadeaddons                    |6.1.0+neoforge      |Manifest: NOSIGNATURE         jamlib-neoforge-1.3.5+1.21.1.jar                  |JamLib                        |jamlib                        |1.3.5+1.21.1        |Manifest: NOSIGNATURE         jumpboat-1.21.0-1.0.5.jar                         |Jumpy Boats                   |jumpboat                      |1.21.0-1.0.5        |Manifest: NOSIGNATURE         justenoughbreeding-neoforge-1.21-1.21.1-1.6.2.jar |Just Enough Breeding          |justenoughbreeding            |1.6.2               |Manifest: NOSIGNATURE         jeed-1.21-2.2.19.jar                              |Just Enough Effects Descriptio|jeed                          |1.21-2.2.19         |Manifest: NOSIGNATURE         jei-1.21.1-neoforge-19.22.1.316.jar               |Just Enough Items             |jei                           |19.22.1.316         |Manifest: NOSIGNATURE         JustEnoughProfessions-neoforge-1.21.1-4.0.4.jar   |Just Enough Professions (JEP) |justenoughprofessions         |4.0.4               |Manifest: NOSIGNATURE         Kiwi-1.21.1-NeoForge-15.6.2.jar                   |Kiwi Library                  |kiwi                          |15.6.2+neoforge     |Manifest: NOSIGNATURE         konkrete_neoforge_1.9.9_MC_1.21.jar               |Konkrete                      |konkrete                      |1.9.9               |Manifest: NOSIGNATURE         thedarkcolour.kffmod-5.9.0.jar                    |Kotlin For Forge              |kotlinforforge                |5.9.0               |Manifest: NOSIGNATURE         kubejs-neoforge-2101.7.1-build.181.jar            |KubeJS                        |kubejs                        |2101.7.1-build.181  |Manifest: NOSIGNATURE         kuma-api-neoforge-21.0.5+1.21.jar                 |KumaAPI                       |kuma_api                      |21.0.5              |Manifest: NOSIGNATURE         mcwifipnp-1.9.0-1.21-neoforge.jar                 |LAN World Plug-n-Play         |mcwifipnp                     |1.9.0               |Manifest: NOSIGNATURE         LegendaryTooltips-1.21.1-neoforge-1.5.5.jar       |Legendary Tooltips            |legendarytooltips             |1.5.5               |Manifest: NOSIGNATURE         libIPN-neoforge-1.21-6.5.1.jar                    |libIPN                        |libipn                        |6.5.1               |Manifest: NOSIGNATURE         lithium-neoforge-0.15.0+mc1.21.1.jar              |Lithium                       |lithium                       |0.15.0+mc1.21.1     |Manifest: NOSIGNATURE         lootr-neoforge-1.21-1.10.35.91.jar                |Lootr                         |lootr                         |1.21-1.10.35.91     |Manifest: NOSIGNATURE         lukis-crazy-chambers-1.0.2.jar                    |Luki's Crazy Chambers         |mr_lukis_crazychambers        |1.0.2               |Manifest: NOSIGNATURE         mru-1.0.19+LTS+1.21.1+neoforge.jar                |M.R.U                         |mru                           |1.0.19+LTS+1.21.1+ne|Manifest: NOSIGNATURE         mcw-doors-1.1.2-mc1.21.1neoforge.jar              |Macaw's Doors                 |mcwdoors                      |1.1.2               |Manifest: NOSIGNATURE         mcw-fences-1.2.0-1.21.1neoforge.jar               |Macaw's Fences and Walls      |mcwfences                     |1.2.0               |Manifest: NOSIGNATURE         mcw-paintings-1.0.5-1.21.1neoforge.jar            |Macaw's Paintings             |mcwpaintings                  |1.0.5               |Manifest: NOSIGNATURE         mcw-paths-1.1.0neoforge-mc1.21.1.jar              |Macaw's Paths and Pavings     |mcwpaths                      |1.1.0               |Manifest: NOSIGNATURE         mcw-roofs-2.3.2-mc1.21.1neoforge.jar              |Macaw's Roofs                 |mcwroofs                      |2.3.2               |Manifest: NOSIGNATURE         mcw-stairs-1.0.1-1.21.1neoforge.jar               |Macaw's Stairs and Balconies  |mcwstairs                     |1.0.1               |Manifest: NOSIGNATURE         mcw-trapdoors-1.1.4-mc1.21.1neoforge.jar          |Macaw's Trapdoors             |mcwtrpdoors                   |1.1.4               |Manifest: NOSIGNATURE         MagnumTorch-v21.1.0-1.21.1-NeoForge.jar           |Magnum Torch                  |magnumtorch                   |21.1.0              |Manifest: NOSIGNATURE         man_of_many_planes-0.2.1+1.21.1-neoforge.jar      |Man of Many Planes            |man_of_many_planes            |0.2.1+1.21.1        |Manifest: NOSIGNATURE         Mekanism-1.21.1-10.7.15.81.jar                    |Mekanism                      |mekanism                      |10.7.15             |Manifest: NOSIGNATURE         MekanismAdditions-1.21.1-10.7.15.81.jar           |Mekanism: Additions           |mekanismadditions             |10.7.15             |Manifest: NOSIGNATURE         MekanismGenerators-1.21.1-10.7.15.81.jar          |Mekanism: Generators          |mekanismgenerators            |10.7.15             |Manifest: NOSIGNATURE         MekanismTools-1.21.1-10.7.15.81.jar               |Mekanism: Tools               |mekanismtools                 |10.7.15             |Manifest: NOSIGNATURE         melody_neoforge_1.0.10_MC_1.21.jar                |Melody                        |melody                        |1.0.10              |Manifest: NOSIGNATURE         midnightlib-1.7.5-neoforge+1.21.1.jar             |MidnightLib                   |midnightlib                   |1.7.5               |Manifest: NOSIGNATURE         client-1.21.1-20240808.144430-srg.jar             |Minecraft                     |minecraft                     |1.21.1              |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         MobLassos-v21.1.0-1.21.1-NeoForge.jar             |Mob Lassos                    |moblassos                     |21.1.0              |Manifest: NOSIGNATURE         modernfix-neoforge-5.24.3+mc1.21.1.jar            |ModernFix                     |modernfix                     |5.24.3+mc1.21.1     |Manifest: NOSIGNATURE         modpack-update-checker-1.21.1-neoforge-0.15.6.jar |Modpack Update Checker        |modpackupdatechecker          |0.15.6              |Manifest: 4f:88:cf:0c:4c:fd:bd:e8:35:93:f6:9f:0e:12:30:77:82:b3:66:1e:b0:ca:bc:29:a8:0b:91:83:c6:7d:81:19         mmv-1.1.2-1.21.jar                                |Moog's Structures Template    |mmv                           |1.1.2-1.21          |Manifest: NOSIGNATURE         moonlight-1.21-2.22.2-neoforge.jar                |Moonlight Lib                 |moonlight                     |1.21-2.22.2         |Manifest: NOSIGNATURE         morediscs-1.21.1-neoforge-35.jar                  |More Music Discs              |morediscs                     |35                  |Manifest: NOSIGNATURE         moreoverlays-1.24.1-mc1.21.1-neoforge.jar         |More Overlays Updated         |moreoverlays                  |1.24.1              |Manifest: NOSIGNATURE         morevanillashields-1.0.2-1.21.1.jar               |More Vanilla Shields          |morevanillashields            |1.0.2-1.21.1        |Manifest: NOSIGNATURE         MouseTweaks-neoforge-mc1.21-2.26.1.jar            |Mouse Tweaks                  |mousetweaks                   |2.26.1              |Manifest: NOSIGNATURE         1.21-neo-0.1.2.jar                                |MPUC lavender-md              |mpuc_lavendermd               |0.1.2               |Manifest: 4f:88:cf:0c:4c:fd:bd:e8:35:93:f6:9f:0e:12:30:77:82:b3:66:1e:b0:ca:bc:29:a8:0b:91:83:c6:7d:81:19         refurbished_furniture-neoforge-1.21.1-1.0.16.jar  |MrCrayfish's Furniture Mod: Re|refurbished_furniture         |1.0.16              |Manifest: NOSIGNATURE         MutantMonsters-v21.1.0-1.21.1-NeoForge.jar        |Mutant Monsters               |mutantmonsters                |21.1.0              |Manifest: NOSIGNATURE         MyNethersDelight-1.21.1-1.8.jar                   |My Nether's Delight           |mynethersdelight              |1.8                 |Manifest: NOSIGNATURE         nametagtweaks-1.21.1-4.0.jar                      |Name Tag Tweaks               |nametagtweaks                 |4.0                 |Manifest: NOSIGNATURE         NaturesCompass-1.21.1-3.0.3-neoforge.jar          |Nature's Compass              |naturescompass                |1.21.1-3.0.2-neoforg|Manifest: NOSIGNATURE         neoforge-21.1.203-universal.jar                   |NeoForge                      |neoforge                      |21.1.203            |Manifest: NOSIGNATURE         neoforgedatapackextensions-neoforge-21.1.2.jar    |NeoForge Data Pack Extensions |neoforgedatapackextensions    |21.1.2              |Manifest: NOSIGNATURE         netherportalfix-neoforge-1.21.1-21.1.1.jar        |NetherPortalFix               |netherportalfix               |21.1.1              |Manifest: NOSIGNATURE         nofeathertrample-1.21.1-1.3.jar                   |No Feather Trample            |nofeathertrample              |1.3                 |Manifest: NOSIGNATURE         noisium-neoforge-2.3.0+mc1.21-1.21.1.jar          |Noisium                       |noisium                       |2.3.0+mc1.21-1.21.1 |Manifest: NOSIGNATURE         Not Enough Recipe Book-NEOFORGE-0.4.3+1.21.jar    |Not Enough Recipe Book        |nerb                          |0.4.3               |Manifest: NOSIGNATURE         notenoughanimations-neoforge-1.10.1-mc1.21.jar    |NotEnoughAnimations           |notenoughanimations           |1.10.1              |Manifest: NOSIGNATURE         OctoLib-NEOFORGE-0.6.0.3+1.21.jar                 |OctoLib                       |octolib                       |0.6.0.3             |Manifest: NOSIGNATURE         Oreganized 1.21.1-5.0.0.jar                       |Oreganized                    |oreganized                    |5.0.0               |Manifest: NOSIGNATURE         overloadedarmorbar-neoforge-1.21-2.jar            |OverloadedArmorBar            |overloadedarmorbar            |2                   |Manifest: NOSIGNATURE         owo-lib-neoforge-0.12.15.5-beta.1+1.21.jar        |oωo                           |owo                           |0.12.15.5-beta.1+1.2|Manifest: NOSIGNATURE         packetfixer-3.1.4-1.20.5-1.21.X-merged.jar        |PacketFixer                   |packetfixer                   |3.1.4               |Manifest: NOSIGNATURE         particle_effects-1.21.1-NeoForge-1.0.1.jar        |Particle Effects              |particle_effects              |1.0.1               |Manifest: NOSIGNATURE         particular-1.21.1-NeoForge-1.1.6.jar              |Particular                    |particular                    |1.1.6               |Manifest: NOSIGNATURE         Perception-NEOFORGE-0.1.6+1.21.1.jar              |Perception                    |perception                    |0.1.6               |Manifest: NOSIGNATURE         PermanentSponges-v21.1.0-1.21.1-NeoForge.jar      |Permanent Sponges             |permanentsponges              |21.1.0              |Manifest: NOSIGNATURE         PickUpNotifier-v21.1.1-1.21.1-NeoForge.jar        |Pick Up Notifier              |pickupnotifier                |21.1.1              |Manifest: NOSIGNATURE         Placebo-1.21.1-9.9.1.jar                          |Placebo                       |placebo                       |9.9.1               |Manifest: NOSIGNATURE         platform-neoforge-1.21.1-1.2.10.2.jar             |Platform                      |platform                      |1.2.10.2            |Manifest: NOSIGNATURE         player-animation-lib-forge-2.0.1+1.21.1.jar       |Player Animator               |playeranimator                |2.0.1+1.21.1        |Manifest: NOSIGNATURE         plushies-neoforge-1.5.1.jar                       |Plushie Mod                   |plushies                      |1.5.1               |Manifest: NOSIGNATURE         Ponder-NeoForge-1.21.1-1.0.56.jar                 |Ponder                        |ponder                        |1.0.56              |Manifest: NOSIGNATURE         PortableHole-v21.1.0-1.21.1-NeoForge.jar          |Portable Hole                 |portablehole                  |21.1.0              |Manifest: NOSIGNATURE         prickle-neoforge-1.21.1-21.1.10.jar               |PrickleMC                     |prickle                       |21.1.10             |Manifest: NOSIGNATURE         Prism-1.21.1-neoforge-1.0.11.jar                  |Prism                         |prism                         |1.0.11              |Manifest: NOSIGNATURE         ProPlacer-v21.1.1-1.21.1-NeoForge.jar             |Pro Placer                    |proplacer                     |21.1.1              |Manifest: NOSIGNATURE         PuzzlesLib-v21.1.38-1.21.1-NeoForge.jar           |Puzzles Lib                   |puzzleslib                    |21.1.38             |Manifest: NOSIGNATURE         AdditionalEnchantedMiner-1.21.1-neoforge-21.1.119.|QuarryPlus                    |quarryplus                    |21.1.119            |Manifest: ef:50:af:b3:03:e0:3e:70:a7:ef:78:77:a5:4d:d4:b5:07:ec:df:9d:d6:f3:12:13:c9:3c:cd:9a:0a:3e:6b:43         rarcompat-1.21-0.9.6.jar                          |RAR-Compat                    |rarcompat                     |0.9.6               |Manifest: NOSIGNATURE         rechiseled-1.1.6a-neoforge-mc1.21.jar             |Rechiseled                    |rechiseled                    |1.1.6+a             |Manifest: NOSIGNATURE         rechiseledcreate-1.0.2a-neoforge-mc1.21.jar       |Rechiseled: Create            |rechiseledcreate              |1.0.2+a             |Manifest: NOSIGNATURE         reeses-sodium-options-neoforge-1.8.3+mc1.21.4.jar |Reese's Sodium Options        |reeses_sodium_options         |1.8.3+mc1.21.4      |Manifest: NOSIGNATURE         relics-1.21.1-0.11.jar                            |Relics                        |relics                        |0.11                |Manifest: NOSIGNATURE         replantingcrops-1.21.1-5.5.jar                    |Replanting Crops              |replantingcrops               |5.5                 |Manifest: NOSIGNATURE         repurposed_structures-7.5.17+1.21.1-neoforge.jar  |Repurposed Structures         |repurposed_structures         |7.5.17+1.21.1-neofor|Manifest: NOSIGNATURE         resourcelibrary-neoforge-1.21.1-2.8.0.jar         |Resource Library              |resourcelibrary               |1.21.1-2.8.0        |Manifest: NOSIGNATURE         resource_nether_ores-neoforge-1.21.1-2.1.0.jar    |Resource Nether Ores          |resource_nether_ores          |2.1.0               |Manifest: NOSIGNATURE         resourcefullib-neoforge-1.21-3.0.12.jar           |Resourceful Lib               |resourcefullib                |3.0.12              |Manifest: NOSIGNATURE         resourcefulconfig-neoforge-1.21-3.0.11.jar        |Resourcefulconfig             |resourcefulconfig             |3.0.11              |Manifest: NOSIGNATURE         rhino-2101.2.7-build.77.jar                       |Rhino                         |rhino                         |2101.2.7-build.77   |Manifest: NOSIGNATURE         rightclickharvest-neoforge-4.5.3+1.21.1.jar       |Right Click Harvest           |rightclickharvest             |4.5.3+1.21.1        |Manifest: NOSIGNATURE         satisfying_buttons-neoforge-1.1.2-1.21.1.jar      |Satisfying Buttons            |satisfying_buttons            |1.1.1               |Manifest: NOSIGNATURE         Searchables-neoforge-1.21.1-1.0.2.jar             |Searchables                   |searchables                   |1.0.2               |Manifest: NOSIGNATURE         simple_weather-1.0.13.jar                         |Simple Weather                |simple_weather                |1.0.13              |Manifest: NOSIGNATURE         simplehats-neoforge-1.21.1-0.4.0.jar              |SimpleHats                    |simplehats                    |0.4.0               |Manifest: NOSIGNATURE         simplylight-1.5.3+1.21.1-b4.jar                   |Simply Light                  |simplylight                   |1.5.3               |Manifest: NOSIGNATURE         SkinnedCarts-1.21-6.0.1.jar                       |Skinned Carts                 |skinnedcarts                  |6.0.1               |Manifest: NOSIGNATURE         sleepsooner-1.21.1-4.7.jar                        |Sleep Sooner                  |sleepsooner                   |4.7                 |Manifest: NOSIGNATURE         smallernetherportals-1.21.1-3.9.jar               |Smaller Nether Portals        |smallernetherportals          |3.9                 |Manifest: NOSIGNATURE         SmartBrainLib-neoforge-1.21.1-1.16.10.jar         |SmartBrainLib                 |smartbrainlib                 |1.16.10             |Manifest: NOSIGNATURE         smoothchunk-1.21-4.1.jar                          |Smoothchunk mod               |smoothchunk                   |4.1                 |Manifest: NOSIGNATURE         snowundertrees-1.21.1-1.5.jar                     |Snow Under Trees              |snowundertrees                |1.5                 |Manifest: NOSIGNATURE         SnowRealMagic-1.21.1-NeoForge-12.1.2.jar          |Snow! Real Magic!             |snowrealmagic                 |12.1.2+neoforge     |Manifest: NOSIGNATURE         sodium-neoforge-0.6.13+mc1.21.1.jar               |Sodium                        |sodium                        |0.6.13+mc1.21.1     |Manifest: NOSIGNATURE         sodiumdynamiclights-neoforge-1.0.10-1.21.1.jar    |Sodium Dynamic Lights         |sodiumdynamiclights           |1.0.9               |Manifest: NOSIGNATURE         sodiumextras-neoforge-1.0.8-1.21.1.jar            |Sodium Extras                 |sodiumextras                  |1.0.7               |Manifest: NOSIGNATURE         sodiumoptionsapi-neoforge-1.0.10-1.21.1.jar       |Sodium Options API            |sodiumoptionsapi              |1.0.10              |Manifest: NOSIGNATURE         sodiumoptionsmodcompat-neoforge-1.0.0-1.21.1.jar  |Sodium Options Mod Compat     |sodiumoptionsmodcompat        |1.0.0               |Manifest: NOSIGNATURE         someassemblyrequired-5.2.2.jar                    |Some Assembly Required        |someassemblyrequired          |5.2.2               |Manifest: NOSIGNATURE         sophisticatedbackpacks-1.21.1-3.24.21.1314.jar    |Sophisticated Backpacks       |sophisticatedbackpacks        |3.24.21             |Manifest: NOSIGNATURE         sophisticatedcore-1.21.1-1.3.64.1090.jar          |Sophisticated Core            |sophisticatedcore             |1.3.64              |Manifest: NOSIGNATURE         sound-physics-remastered-neoforge-1.21.1-1.4.10.ja|Sound Physics Remastered      |sound_physics_remastered      |1.21.1-1.4.10       |Manifest: NOSIGNATURE         sounds-2.4.13.1+lts+1.21.1+neoforge.jar           |Sounds                        |sounds                        |2.4.13.1+lts+1.21.1+|Manifest: NOSIGNATURE         spark-1.10.124-neoforge.jar                       |spark                         |spark                         |1.10.124            |Manifest: NOSIGNATURE         sparsestructures-neoforge-1.21.1-3.0.jar          |SparseStructures              |sparsestructures              |3.0                 |Manifest: NOSIGNATURE         spectrelib-neoforge-0.17.2+1.21.jar               |SpectreLib                    |spectrelib                    |0.17.2+1.21         |Manifest: NOSIGNATURE         SpikySpikes-v21.1.1-1.21.1-NeoForge.jar           |Spiky Spikes                  |spikyspikes                   |21.1.1              |Manifest: NOSIGNATURE         statuemenus-neoforge-21.1.0.jar                   |Statue Menus                  |statuemenus                   |21.1.0              |Manifest: NOSIGNATURE         stickyenchantinglapis-1.21.1-1.5.jar              |Sticky Enchanting Lapis       |stickyenchantinglapis         |1.5                 |Manifest: NOSIGNATURE         StorageDrawers-neoforge-1.21.1-13.11.1.jar        |Storage Drawers               |storagedrawers                |13.11.1             |Manifest: NOSIGNATURE         StrawStatues-v21.1.0-1.21.1-NeoForge.jar          |Straw Statues                 |strawstatues                  |21.1.0              |Manifest: NOSIGNATURE         SubtleEffects-neoforge-1.21.1-1.12.1.jar          |Subtle Effects                |subtle_effects                |1.12.1              |Manifest: NOSIGNATURE         supermartijn642configlib-1.1.8-neoforge-mc1.21.jar|SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               |Manifest: NOSIGNATURE         supermartijn642corelib-1.1.18a-neoforge-mc1.21.jar|SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.18+a            |Manifest: NOSIGNATURE         supplementaries-1.21-3.4.9-neoforge.jar           |Supplementaries               |supplementaries               |1.21-3.4.9          |Manifest: NOSIGNATURE         sweety_archaeology-1.0.9b-neoforge-1.21.1.jar     |Sweety's Archaeology          |sweety_archaeology            |1.0.9               |Manifest: NOSIGNATURE         sweety_garden-1.0.1-neoforge-1.21.1.jar           |Sweety's Garden               |sweety_garden                 |1.0.1               |Manifest: NOSIGNATURE         TCTcore-1.21.1.jar                                |tctcore                       |tctcore                       |2.0                 |Manifest: NOSIGNATURE         tide-neoforge-1.21-1.6.3.jar                      |Tide                          |tide                          |1.6.3               |Manifest: NOSIGNATURE         TinySkeletons-v21.1.0-1.21.1-NeoForge.jar         |Tiny Skeletons                |tinyskeletons                 |21.1.0              |Manifest: NOSIGNATURE         toofast-1.21.0-0.4.3.5.jar                        |Too Fast                      |toofast                       |0.4.3.5             |Manifest: NOSIGNATURE         t_and_t-neoforge-fabric-1.13.2.jar                |Towns and Towers              |t_and_t                       |1.13.2              |Manifest: NOSIGNATURE         TradingPost-v21.1.0-1.21.1-NeoForge.jar           |Trading Post                  |tradingpost                   |21.1.0              |Manifest: NOSIGNATURE         TRansition-1.0.3-1.21-neoforge-SNAPSHOT.jar       |TRansition                    |transition                    |1.0.3               |Manifest: NOSIGNATURE         trashcans-1.0.18c-neoforge-mc1.21.jar             |Trash Cans                    |trashcans                     |1.0.18+c            |Manifest: NOSIGNATURE         trashslot-neoforge-1.21.1-21.1.4.jar              |TrashSlot                     |trashslot                     |21.1.4              |Manifest: NOSIGNATURE         TRender-1.0.5-1.21-neoforge-SNAPSHOT.jar          |TRender                       |trender                       |1.0.5               |Manifest: NOSIGNATURE         trimmable_tools-neoforge-1.21.1-2.0.5.jar         |Trimmable Tools               |trimmable_tools               |2.0.5               |Manifest: NOSIGNATURE         UniversalBoneMeal-v21.1.0-1.21.1-NeoForge.jar     |Universal Bone Meal           |universalbonemeal             |21.1.0              |Manifest: NOSIGNATURE         sawmill-1.21-1.5.22-neoforge.jar                  |Universal Sawmill             |sawmill                       |1.21-1.5.22         |Manifest: NOSIGNATURE         vanillazoom-1.21.1-2.8.jar                        |Vanilla Zoom                  |vanillazoom                   |2.8                 |Manifest: NOSIGNATURE         VisualWorkbench-v21.1.1-1.21.1-NeoForge.jar       |Visual Workbench              |visualworkbench               |21.1.1              |Manifest: NOSIGNATURE         visuality-forge-2.1.0.jar                         |Visuality: Reforged           |visuality                     |2.1.0               |Manifest: NOSIGNATURE         wakes-1.21.1-NeoForge-1.0.2.jar                   |Wakes                         |wakes                         |1.0.2               |Manifest: NOSIGNATURE         worldplaytime-1.2.2-1.21-NEOFORGE.jar             |World Play Time               |worldplaytime                 |1.2.2               |Manifest: NOSIGNATURE         xptome-1.21.1-2.4.jar                             |XP Tome                       |xpbook                        |2.4                 |Manifest: NOSIGNATURE         yeetusexperimentus-neoforge-87.0.0.jar            |Yeetus Experimentus           |yeetusexperimentus            |87.0.0              |Manifest: NOSIGNATURE         yet_another_config_lib_v3-3.7.1+1.21.1-neoforge.ja|YetAnotherConfigLib           |yet_another_config_lib_v3     |3.7.1+1.21.1-neoforg|Manifest: NOSIGNATURE     Crash Report UUID: d3322bc4-8aef-4225-92bb-bb873ab76ea0     FML: 4.0.41     NeoForge: 21.1.203     Flywheel Backend: flywheel:off    
    • I have the same problem, but after research I still can't find a solution. Can you give me your list of mods so I know if we have one in common, and if that's the reason?
    • Hi! I setup and run MC forge MDK on Linux. Reading the code of the example mod, I expect to some entries in the log located in ./run/logs/latest.log. I can see the entries from commonSetup(): forge-1.21.7-57.0.2-mdk $ grep moellendorf -r ./run/logs/latest.log [01Sep2025 11:28:16.980] [Worker-Main-12/INFO] [eu.moellendorf.myfirstmod.MyFirstMod/]: HELLO FROM COMMON SETUP [01Sep2025 11:28:16.980] [Worker-Main-12/INFO] [eu.moellendorf.myfirstmod.MyFirstMod/]: DIRT BLOCK >> minecraft:dirt [01Sep2025 11:28:16.980] [Worker-Main-12/INFO] [eu.moellendorf.myfirstmod.MyFirstMod/]: The magic number is... 42 [01Sep2025 11:28:16.980] [Worker-Main-12/INFO] [eu.moellendorf.myfirstmod.MyFirstMod/]: ITEM >> minecraft:iron_ingot But I cannot see the log entries from onClientSetup(). I expect to see: "HELLO FROM CLIENT SETUP" "MINECRAFT NAME >> " and my user's name (presumably "dev") What am I missing?
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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