Jump to content

[1.13.2] Some forge questions from a novice


Torq

Recommended Posts

Hello, I am new to the development of mods and I occasionally have questions. Perhaps they are stupid or something else, but I can not find some answer. English is not my native language, so I use a translator and there may be some errors. Most likely I will write additional questions here and I hope this topic will help someone. I also have plans to help with documentation and lessons, but for this I need to learn Forge.


1) How to add to the block the level of the tool used? I mean that the ore added by me could be mined with a pick not lower than iron. In the tool, this is set to ItemTier. I saw something similar at the end of the Block class and in ForgeHooks class.
2) How can I disable, delete or change vanilla blocks.
3) How can I make an intermediate advancement? For example, to have a copper pick between a stone pick and an iron ingot. How do I add opening recipes for this advancement? For example, how to open iron tools and armor after receiving an iron ingot.

4) How can I make my recipes go to the correct tabs in the recipe book? net.minecraft.client.util.RecipeBookClient
5) Can I just redefine some classes and somehow integrate them into the game, replacing the original ones? This would solve many problems.

I am a beginner and therefore it is difficult for me to understand how forge works, mainly due to the lack of documentation and the small amount of comments to the code.  Forge 1.13.2 is already sufficient to develop mods or I misunderstood and it is just being developed? This would explain the lack of simple and clear interfaces, factories and classes for the rapid development of modifications. Or maybe I'm blind and do not see (not understand) how to use Forge. I will be glad to receive any answer. For example, a link to an article, class, or at least a hint. If you add code samples or an explanation, it will be just fine.
 

Spoiler

source code of my first mod added



 

src.zip

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

5 hours ago, Torq said:

I am a beginner and therefore it is difficult for me to understand how forge works, mainly due to the lack of documentation and the small amount of comments to the code.  Forge 1.13.2 is already sufficient to develop mods or I misunderstood and it is just being developed? This would explain the lack of simple and clear interfaces, factories and classes for the rapid development of modifications. Or maybe I'm blind and do not see (not understand) how to use Forge. I will be glad to receive any answer. For example, a link to an article, class, or at least a hint. If you add code samples or an explanation, it will be just fine.

Forge for 1.13.2 is mostly done. However, Forge is built on top of Mojang’s minecraft code which doesn’t have “simple and clear interfaces, factories and classes for the rapid development of modifications”. Minecraft is not built with modding in mind at all and doesn’t have any code related to mods at all. Forge has many of these things though like event subscribing and Modder-friendly extensions to the vanilla system (like registries & capabilities). The documentation for vanilla methods is usually lacking or non-existent, but Forges methods are usually well documented. The Forge documentation (at https://mcforge.readthedocs.io/en/latest) hasn’t been (fully) updated for 1.13.2 yet. The Forge team is mostly focussed on fixing major bugs in 1.13 and preparing for 1.14. 

 

5 hours ago, Torq said:

 

  Reveal hidden contents

source code of my first mod added



 

src.zip

In future please upload your code as a working GitHub repository. People on these forums are unlikely to download random files from people they don’t know, and people on mobile can’t open zip files. 

Edited by Cadiboo
Fixed link
  • Like 1

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

Thank you, you have explained a lot. I haven't made a repository yet, but I'm working on it. Nevertheless, I think it is worthwhile to work on the classes, factories and interfaces (at least basic ones) inside Forge. If only because the Block class is the horror of the engineer. The remaining questions are still relevant, I will try to study myself how Forge and Minecraft work, but you can speed up this process.

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

12 hours ago, Torq said:

1) How to add to the block the level of the tool used? I mean that the ore added by me could be mined with a pick not lower than iron. In the tool, this is set to ItemTier. I saw something similar at the end of the Block class and in ForgeHooks class.

Override Block#getHarvestLevel.

 

13 hours ago, Torq said:

 2) How can I disable, delete or change vanilla blocks.

Override their entries in the blocks registry by registering a new block with the same registry name as the old one. This works with many registries, not just blocks.

However do consider using events before doing this. Overriding blocks won't really work well if multiple mods are overriding the same block. Maybe an event can do what you want.

 

13 hours ago, Torq said:

 3) How can I make an intermediate advancement? For example, to have a copper pick between a stone pick and an iron ingot. How do I add opening recipes for this advancement? For example, how to open iron tools and armor after receiving an iron ingot.

 

https://minecraft.gamepedia.com/Advancements#JSON_Format

Forge doesn't change the way datapacks register advancements or much about them really. You would do the same things you would when making a datapack.

 

Can't actually answer #4 since i've never really worked with the recipe book, but I don't think many players care since pretty much everybody uses JEI anyway. In theory it should assign a recipe to a tab based on the creative tab of the resulting item.

 

13 hours ago, Torq said:

5) Can I just redefine some classes and somehow integrate them into the game, replacing the original ones? This would solve many problems.

It is possible, but not with that mindset. It is a very invasive way that creates a ton of compatibility issues and is not going to be supported here. Use forge events or if something can't be acheived by an event/registry override/inserting other object into a field consider making a PR instead.

  • Like 1
Link to comment
Share on other sites

Thanks for answers.

I tried to insert advancement between vanilla advancement, but in the advancement menu I had 2 copies of advancement each. Vanilla and mine, but wrong, because One of my advancement got attached to vanilla. I thought it would be possible for me to override advancement if I write the same name, but the game loads two options, from minecraft and mod. There is a hunch that i need to find where minecraft stores these values and try to do something about it. But maybe I’m wrong again and there is a better way.

smelt_iron.json

Spoiler

{
  "parent": "torqmod:story/copper_tools",
  "display": {
    "icon": {
      "item": "minecraft:iron_ingot"
    },
    "title": {
      "translate": "advancements.story.smelt_iron.title"
    },
    "description": {
      "translate": "advancements.story.smelt_iron.description"
    },
    "frame": "task",
    "show_toast": true,
    "announce_to_chat": true,
    "hidden": false
  },
  "criteria": {
    "iron": {
      "trigger": "minecraft:inventory_changed",
      "conditions": {
        "items": [
          {
            "item": "minecraft:iron_ingot"
          }
        ]
      }
    }
  },
  "requirements": [
    [
      "iron"
    ]
  ]
}

 

iron_tools.json

Spoiler

{
  "parent": "minecraft:story/smelt_iron",
  "display": {
    "icon": {
      "item": "minecraft:iron_pickaxe"
    },
    "title": {
      "translate": "advancements.story.iron_tools.title"
    },
    "description": {
      "translate": "advancements.story.iron_tools.description"
    },
    "frame": "task",
    "show_toast": true,
    "announce_to_chat": true,
    "hidden": false
  },
  "criteria": {
    "iron_pickaxe": {
      "trigger": "minecraft:inventory_changed",
      "conditions": {
        "items": [
          {
            "item": "minecraft:iron_pickaxe"
          }
        ]
      }
    }
  },
  "requirements": [
    [
      "iron_pickaxe"
    ]
  ]
}

 

 

At the expense of question 5, I agree that this is a very aggressive way of solving a problem and it will cause a lot of problems in the work of the game itself. I realized this when I began to analyze possible examples of this approach. What is pr?

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

7 minutes ago, Torq said:

I thought it would be possible for me to override advancement if I write the same name, but the game loads two options

Override it by overriding the entry in the datapack. Bascially have a datapack with the modid of minecraft provided by your mod that overrides that one specific advancement.

 

8 minutes ago, Torq said:

What is pr?

Pull Request

Link to comment
Share on other sites

1 hour ago, V0idWa1k3r said:

Override it by overriding the entry in the datapack. Bascially have a datapack with the modid of minecraft provided by your mod that overrides that one specific advancement.

You want to say that this functionality already exists, I just do not know about it and therefore did not use it? I do not fully understand because of the language. You mean a specific parameter that I write in my advancment. Will it cancel vanilla advancment?

 

*update
I need to make the minecraft folder (in resources\data) , where should I put the redefinable advancement? Will there be problems with other mods that override advancement?

 

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

12 hours ago, V0idWa1k3r said:

Override Block#getHarvestLevel.

Should I constantly override Block # getHarvestLevel? And if I have 15 blocks and all have different levels? Should I do 15 classes? If I understand correctly, then harvestLevel is private so that programmers cannot change the blocks in the registry. But do I understand correctly that I must now redefine getHarvestLevel to all classes from net.minecraft.block? For example, if I want to create my own block of each type from vanilla minecraft? Am I already starting to write my library so that I would not override these types for every reason? Or is it not so gloomy? I just do not want to make a separate class for each block, as some mods do.

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

18 minutes ago, Torq said:

Should I constantly override Block # getHarvestLevel? And if I have 15 blocks and all have different levels? Should I do 15 classes?

Not necessarily, but yes, that would work. 

(There are only 4 or 5 actually levels in vanilla, but that's quibbling)

18 minutes ago, Torq said:

For example, if I want to create my own block of each type from vanilla minecraft?

What do you mean? 

18 minutes ago, Torq said:

Am I already starting to write my library so that I would not override these types for every reason? Or is it not so gloomy? I just do not want to make a separate class for each block, as some mods do.

You can reuse classes, you're just creating new instances with different data. For example, both the vanilla stick and iron ingots ate both instances of the Item class. They don't have a ItemStick or ItemIronIngot classes. 

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

 

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

 

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

Link to comment
Share on other sites

20 minutes ago, Draco18s said:

What do you mean? 

For example, I made 10 ItemTier (0-3 wood-diamond 4-13 my). I need to make all the blocks of each type (BlockClay, BlockGlowstone and other) from vanilla minecraft and set harvestLevel (private) to them. I need to override getHarvestTool () and getHarvestLevel () + add two fields to return values (and maybe even properties and a new constructor with these fields). To do this, I will need to inherit (duplicate) all classes in the mod and make such changes in each one. If I understand what I am offered to do.

 

upd*
I can override Block and rewrite everything else, inheriting from Block, but then ModBlockGlowstone! = BlockGlowstone, although they will be exactly the same. That's why I say that I will have to override every class in net.minecraft.block

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

2 hours ago, Torq said:

I can override Block and rewrite everything else, inheriting from Block, but then ModBlockGlowstone! = BlockGlowstone, although they will be exactly the same. That's why I say that I will have to override every class in net.minecraft.block

BlockGlowstone inherits the method from Block because it extends it. You can override it just fine while still extending BlockGlowstone

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

9 hours ago, Cadiboo said:

BlockGlowstone inherits the method from Block because it extends it. You can override it just fine while still extending BlockGlowstone

I'm writing that I should inherit all the classes in net.minecraft.block and override each of them getHarvestLevel () and getHarvestTool (). And I will have a package with the same classes, but with overridden methods. There it is written over these methods // TODO: RE-Evaluate, where can I see what should be done with them?

 

upd*

I would like to use the standard classes if they suit me, but I still have to inherit for each type of block. I want to be inherited only in order to expand the block, and not to set the type and level of the tool, this is some kind of garbage. Can I solve this problem differently?

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

Do I have to do this for every class in net.minecraft.block?

Spoiler

package torq.torqmod.block;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockOre;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.ToolType;

/**
 * 
 * 
 * @author torq
 * @version 0.1
 */
public class ModBlockOre extends BlockOre {

	public int harvestLevel = 3;
	public ToolType toolType = ToolType.PICKAXE;

	public ModBlockOre(Block.Properties builder) {
		super(builder);
	}

	@Override
	public IItemProvider getItemDropped(IBlockState state, World worldIn, BlockPos pos, int fortune) {
		return (IItemProvider) this;
	}

	@Override
	public int quantityDropped(IBlockState state, Random random) {
		return 1;
	}

	@Override
	public int getHarvestLevel(IBlockState state) {
		return harvestLevel;
	}

	@Override
	public ToolType getHarvestTool(IBlockState state) {
		return toolType;
	}
}

 

 

Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

2 hours ago, Torq said:

Do I have to do this for every class in net.minecraft.block?

  Reveal hidden contents


package torq.torqmod.block;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockOre;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.ToolType;

/**
 * 
 * 
 * @author torq
 * @version 0.1
 */
public class ModBlockOre extends BlockOre {

	public int harvestLevel = 3;
	public ToolType toolType = ToolType.PICKAXE;

	public ModBlockOre(Block.Properties builder) {
		super(builder);
	}

	@Override
	public IItemProvider getItemDropped(IBlockState state, World worldIn, BlockPos pos, int fortune) {
		return (IItemProvider) this;
	}

	@Override
	public int quantityDropped(IBlockState state, Random random) {
		return 1;
	}

	@Override
	public int getHarvestLevel(IBlockState state) {
		return harvestLevel;
	}

	@Override
	public ToolType getHarvestTool(IBlockState state) {
		return toolType;
	}
}

 

 

No. Can you please clarify what you’re trying to do again? 

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

51 minutes ago, Cadiboo said:

No. Can you please clarify what you’re trying to do again? 

I have written the same thing several times. I have vanilla block classes. I want to make my object for each type (in order to study each type). I want to assign them harvestLevel and toolType, and they are private! I was told to override getHarvestLevel() and getToolType(). I have to duplicate all classes from net.minecraft.block (like ModBlock extend Block, ModBlockGlowstone extend BlockGlowstone, ModBlockClay extend BlockClay and all others) and override them with getHarvestLevel () and getToolType (). If I want (and I WANT) to use these classes to create all the objects and not to create 100 classes of blocks for each case (harvestLevel = 1,2,3,4 and toolType = axe, pickaxe and other), I will have to endure my classes in the library, override some of the methods and private them (which are deprecated), make normal constructors taking into account the new harvestLevel and toolType and can add some methods (for example setHarvestLevel() and setToolType() ) for the convenience of using these classes. So, I have to do this or have an option where I can normally set harvestLevel and toolType without overriding methods. Or maybe all the same the Forge team plans to make this mechanism normal for use?

 

upd*
Why do I want to inherit every class? What would be compatibility with vanilla types. Therefore, I wrote:

15 hours ago, Torq said:

I can override Block and rewrite everything else, inheriting from Block, but then ModBlockGlowstone! = BlockGlowstone, although they will be exactly the same. That's why I say that I will have to override every class in net.minecraft.block

I repeat the question. Should I make a library for modders (for myself), so that I would have my overridden classes that are fully compatible with net.minecraft.block, but with normal class constructors and private methods (which are depricated and will be deleted)? Although it will be necessary to look, they are not used anywhere other than the class itself and there already to think what to do with them.
What I want to do is normal, or not? Does this make sense or will the Forge team add it? Or maybe there is already something similar? Or it makes no sense, because it will not work or will the update come out and everything will break?

 
Or would it be better to inherit from "extends net.minecraftforge.registries.ForgeRegistryEntry <Block> implements IItemProvider, net.minecraftforge.common.extensions.IForgeBlock" and rewrite all other types, but without inheriting the garbage code? But I am afraid to imagine what will come of it and whether the game mechanisms will work normally. Forge type registries are Block, so this option is most likely not suitable.
 
Edited by Torq

If I helped you, don't forget like. I'm using a translator, sorry.

Link to comment
Share on other sites

Join the conversation

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

Guest
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

    • Oke i tried to download a different mod and try that out on my server and i get the same error. Now i know for a fact that my port forwarding and server is working properly, because i can join them without adding any mods into the server file, but then i dont know what i am doing wrong 
    • Salutation to you ladies and gentlemen, i must confidently say a very big thanks to Fastfundrecovery8 AT GMAIL COM for their tremendous action taken over my case immediately brought to their table, i saw how the whole process was going, and i wisperred to myself and said indeed i am previlledge to know such a legitimate recovery company who is very understable and do not stress their client over recovery software tools, Fastfunds Recovery are good in keeping to time, punctuality, I was scammed last year December 18, i realized that my long investment which i inteded to withdraw has long been a scam, got so frustrated, hired 4 recovery hackers which ended up taking money from me and i couldn't contact them anymore, i went through emotional pains and betrayer, wasn't easy for me at that moment, am very greatful for FastFunds Recovery, who was referred to me by a civil engineer who i was opportuned to share part of my story with and he was like i have a cyber friend do reach and say i'm from Pato's, that's how i got in touch with fastfundsrecovery8(@)gmail(.)com, do inform FastFunds recovery for any cyber issues. Fastfundsrecovery8 AT GMAIL WILL ALWAYS HELP GET BACK YOUR FUNDS.
    • Hello everyone i have made a server with forge and have added pixelmon into the server. But for some reason i keep getting "Internal Exception: io.netty.handles.codec.DecoderException: Not enough bytes in buffer, expected 105, byt got 48". I tried upping the ram of the server to 2GB but it didnt solve anything. I have 16 GB of ram on my pc (where i host the server), but i cant seem to get it to work. Pixelmon does work when i try to go into singleplayer, but for some reason just doesnt work online   Edit: server logs sais nothing aswell [18:55:49] [ServerMain/INFO]: Environment: Environment[accountsHost=https://api.mojang.com, sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD] [18:55:50] [ServerMain/INFO]: Loaded 7 recipes [18:55:51] [ServerMain/INFO]: Loaded 1271 advancements [18:55:51] [Server thread/INFO]: Starting minecraft server version 1.20.2 [18:55:51] [Server thread/INFO]: Loading properties [18:55:51] [Server thread/INFO]: Default game type: SURVIVAL [18:55:51] [Server thread/INFO]: Generating keypair [18:55:51] [Server thread/INFO]: Starting Minecraft server on *:xxxx [18:55:51] [Server thread/INFO]: Using default channel type [18:55:51] [Server thread/INFO]: Preparing level "world" [18:55:52] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld [18:55:53] [Worker-Main-8/INFO]: Preparing spawn area: 0% [18:55:53] [Worker-Main-8/INFO]: Preparing spawn area: 0% [18:55:53] [Worker-Main-8/INFO]: Preparing spawn area: 0% [18:55:53] [Worker-Main-12/INFO]: Preparing spawn area: 0% [18:55:54] [Worker-Main-11/INFO]: Preparing spawn area: 31% [18:55:54] [Server thread/INFO]: Time elapsed: 2344 ms [18:55:54] [Server thread/INFO]: Done (2.865s)! For help, type "help" [18:55:56] [User Authenticator #1/INFO]: UUID of player kemal007023 is 9a2a1dff-fa06-4e29-b57d-b1e6afb2db87 [18:55:56] [Server thread/INFO]: kemal007023[/xxxx] logged in with entity id 271 at (9.497695306619189, 68.0, 10.973182362716573) [18:55:56] [Server thread/INFO]: kemal007023 joined the game [18:55:56] [Server thread/INFO]: kemal007023 lost connection: Disconnected [18:55:56] [Server thread/INFO]: kemal007023 left the game [18:56:00] [User Authenticator #2/INFO]: UUID of player kemal007023 is 9a2a1dff-fa06-4e29-b57d-b1e6afb2db87 [18:56:00] [Server thread/INFO]: kemal007023[xxxx] logged in with entity id 272 at (9.497695306619189, 68.0, 10.973182362716573) [18:56:00] [Server thread/INFO]: kemal007023 joined the game [18:56:00] [Server thread/INFO]: kemal007023 lost connection: Disconnected [18:56:00] [Server thread/INFO]: kemal007023 left the game  
    • Hi, im making a BlockEntity that can contain fluids, and render them in the GUI, only one fluid works perfectly, I can fill or drain it, sync it to the client, and render it. The problem comes when i try to have two fluids in the same GUI, depending on what I delete or leave, the fluids act differently; for example, deleting both of them from "saveAdditional" and "load" methods makes that the fluids cannot render. Also, it can only render one fluid alone, or again, render one fluid, but twice (copies one fluid to the other one). FYI the left one is water, the right one is a red custom fluid. How can I fix this? BoilerBlockEntity: https://pastebin.com/e6b2U3sD BoilerMenu: https://pastebin.com/D375yCNr BoilerScreen: https://pastebin.com/WMrK83Du 
    • container@pterodactyl~ Server marked as starting... [Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete... [Pterodactyl Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx10240M -Dterminal.jline=false -Dterminal.ansi=true -jar server.jar Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture [15:07:29] [main/INFO]: Loading Minecraft 1.20.1 with Fabric Loader 0.15.9 [15:07:29] [ForkJoinPool-1-worker-3/WARN]: Mod geophilic uses the version v2.0.0-mc1.20u1.20.1 which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'v2'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version [15:07:29] [main/INFO]: Dependencies overridden for fabric-api, cem, colormatic, debugify [15:07:30] [main/WARN]: Warnings were found!  - Mod 'Debugify' (debugify) 1.20.1+2.0 recommends any 3.x version of yet-another-config-lib, which is missing!          - You should install any 3.x version of yet-another-config-lib for the optimal experience.  - Mod 'Fabric API' (fabric-api) 0.87.0+1.20.1 recommends any version after 4.5.0 of Fabulously Optimized, which is missing!          - You should install any version after 4.5.0 of Fabulously Optimized for the optimal experience. [15:07:30] [main/INFO]: Loading 174 mods:         - appleskin 2.5.0+mc1.20         - architectury 9.1.12         - ash_api 3.0.2+1.20.1         - axesareweapons 1.7.1         - balm-fabric 7.0.7         - betteradvancements 0.3.2.161         - betterdeserttemples 1.20-Fabric-3.0.1            \-- org_reflections_reflections 0.10.2         - betterdungeons 1.20-Fabric-4.0.1         - betterfortresses 1.20-Fabric-2.0.2         - betterjungletemples 1.20-Fabric-2.0.1         - bettermineshafts 1.20-Fabric-4.0.1         - betteroceanmonuments 1.20-Fabric-3.0.1         - betterstrongholds 1.20-Fabric-4.0.1         - betterwitchhuts 1.20-Fabric-3.0.1         - bookshelf 20.0.3         - cardinal-components 5.2.2            |-- cardinal-components-base 5.2.2            |-- cardinal-components-block 5.2.2            |-- cardinal-components-chunk 5.2.2            |-- cardinal-components-entity 5.2.2            |-- cardinal-components-item 5.2.2            |-- cardinal-components-level 5.2.2            |-- cardinal-components-scoreboard 5.2.2            \-- cardinal-components-world 5.2.2         - carryon 2.1.1.3         - cloth-config 11.1.106            \-- cloth-basic-math 0.6.1         - collective 6.65         - comforts 6.3.3+1.20.1            \-- spectrelib 0.13.12+1.20.1                 |-- com_electronwill_night-config_core 3.6.5                 \-- com_electronwill_night-config_toml 3.6.5         - completeconfig 2.5.0            |-- completeconfig-base 2.5.0            |-- completeconfig-gui-cloth 2.5.0            \-- completeconfig-gui-yacl 2.5.0         - connectiblechains 2.2.1+1.20.1         - customizableelytra 2.1.0+1.20         - cyclepaintings 3.2         - debugify 1.20.1+2.0         - diagonalfences 8.0.1         - diagonalwindows 8.0.1         - doubledoors 5.0         - easyanvils 8.0.1         - easymagic 8.0.1         - easyshulkerboxes 8.0.0            \-- puzzlesapi 8.0.2                 \-- puzzlesaccessapi 8.0.5         - elytraslot 6.3.0+1.20.1         - emotecraft 2.2.7-b.build.50            \-- bendy-lib 4.0.0         - enchanted-vertical-slabs 1.9         - endrem 5.2.2         - fabric-api 0.87.0+1.20.1            |-- fabric-api-base 0.4.30+7abfd51577            |-- fabric-api-lookup-api-v1 1.6.35+4d8536c977            |-- fabric-biome-api-v1 13.0.10+b3afc78b77            |-- fabric-block-api-v1 1.0.9+e022e5d177            |-- fabric-blockrenderlayer-v1 1.1.40+b3afc78b77            |-- fabric-client-tags-api-v1 1.1.1+97bb207577            |-- fabric-command-api-v1 1.2.33+f71b366f77            |-- fabric-command-api-v2 2.2.12+b3afc78b77            |-- fabric-commands-v0 0.2.50+df3654b377            |-- fabric-containers-v0 0.1.63+df3654b377            |-- fabric-content-registries-v0 4.0.9+b3afc78b77            |-- fabric-convention-tags-v1 1.5.4+a1a980da77            |-- fabric-crash-report-info-v1 0.2.18+aeb40ebe77            |-- fabric-data-generation-api-v1 12.2.2+1e61dba177            |-- fabric-dimensions-v1 2.1.53+8536527b77            |-- fabric-entity-events-v1 1.5.22+b3afc78b77            |-- fabric-events-interaction-v0 0.6.1+e91849a877            |-- fabric-events-lifecycle-v0 0.2.62+df3654b377            |-- fabric-game-rule-api-v1 1.0.38+b04edc7a77            |-- fabric-item-api-v1 2.1.27+b3afc78b77            |-- fabric-item-group-api-v1 4.0.10+23d9108177            |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77            |-- fabric-keybindings-v0 0.2.34+df3654b377            |-- fabric-lifecycle-events-v1 2.2.21+b3afc78b77            |-- fabric-loot-api-v2 1.1.39+b3afc78b77            |-- fabric-loot-tables-v1 1.1.43+9e7660c677            |-- fabric-message-api-v1 5.1.7+3265161977            |-- fabric-mining-level-api-v1 2.1.49+b3afc78b77            |-- fabric-model-loading-api-v1 1.0.2+709a987177            |-- fabric-models-v0 0.4.1+9386d8a777            |-- fabric-networking-api-v1 1.3.10+eeb8eb3677            |-- fabric-networking-v0 0.3.50+df3654b377            |-- fabric-object-builder-api-v1 11.1.1+6beca84877            |-- fabric-particles-v1 1.1.1+201a23a077            |-- fabric-recipe-api-v1 1.0.20+b3afc78b77            |-- fabric-registry-sync-v0 2.3.2+4df89eb277            |-- fabric-renderer-api-v1 3.1.2+6bdb2ed077            |-- fabric-renderer-indigo 1.4.2+6bdb2ed077            |-- fabric-renderer-registries-v1 3.2.45+df3654b377            |-- fabric-rendering-data-attachment-v1 0.3.34+b3afc78b77            |-- fabric-rendering-fluids-v1 3.0.27+b3afc78b77            |-- fabric-rendering-v0 1.1.48+df3654b377            |-- fabric-rendering-v1 3.0.7+b3afc78b77            |-- fabric-resource-conditions-api-v1 2.3.5+ea08f9d877            |-- fabric-resource-loader-v0 0.11.9+132c48c177            |-- fabric-screen-api-v1 2.0.7+b3afc78b77            |-- fabric-screen-handler-api-v1 1.3.29+b3afc78b77            |-- fabric-sound-api-v1 1.0.12+b3afc78b77            |-- fabric-transfer-api-v1 3.3.0+cdf060b277            \-- fabric-transitive-access-wideners-v1 4.3.0+6c31357e77         - fabric-language-kotlin 1.10.10+kotlin.1.9.10            |-- org_jetbrains_kotlin_kotlin-reflect 1.9.10            |-- org_jetbrains_kotlin_kotlin-stdlib 1.9.10            |-- org_jetbrains_kotlin_kotlin-stdlib-jdk7 1.9.10            |-- org_jetbrains_kotlin_kotlin-stdlib-jdk8 1.9.10            |-- org_jetbrains_kotlinx_atomicfu-jvm 0.22.0            |-- org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm 1.7.3            |-- org_jetbrains_kotlinx_kotlinx-coroutines-jdk8 1.7.3            |-- org_jetbrains_kotlinx_kotlinx-datetime-jvm 0.4.0            |-- org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm 1.6.0            |-- org_jetbrains_kotlinx_kotlinx-serialization-core-jvm 1.6.0            \-- org_jetbrains_kotlinx_kotlinx-serialization-json-jvm 1.6.0         - fabricloader 0.15.9            \-- mixinextras 0.3.5         - forgeconfigapiport 8.0.0         - furnacerecycle 2.0         - geophilic v2.0.0-mc1.20u1.20.1         - gildedarmor 1.8.0+fabric-1.20.1         - guiclock 4.2         - guicompass 4.2         - iceberg 1.1.15         - interactic 0.2.0+1.20         - java 17         - kiwi 11.1.1         - lazydfu 0.1.3         - leavesbegone 8.0.0         - lithium 0.11.2         - minecraft 1.20.1         - mixin-conflict-helper 1.2.0         - mixintrace 1.1.1+1.17         - moonlight 1.20-2.8.13         - morebannerfeatures 1.2.0         - mousewheelie 1.12.2+mc1.20.1            |-- amecsapi 1.5.1+mc1.20-pre1            |-- coat 1.0.0-beta.20+mc1.20-pre1            |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77            |-- fabric-screen-api-v1 2.0.7+b3afc78b77            |-- tweed4_annotated 1.3.1+mc1.20-pre1            |-- tweed4_base 1.7.1+mc1.20-pre1            |-- tweed4_data 1.2.1+mc1.20-pre1            |-- tweed4_data_hjson 1.1.1+mc1.20-pre1            |-- tweed4_tailor_coat 1.1.3+mc1.20-pre1            |-- tweed4_tailor_lang_json_descriptions 1.1.0+mc1.20-pre1            \-- tweed4_tailor_screen 1.1.4+mc1.20-pre1         - mru 0.2.1+1.20         - netherportalspread 7.5         - nochatreports 1.20.1-v2.2.2            |-- fabric-rendering-v1 3.0.6+b3afc78b82            \-- fabric-screen-api-v1 2.0.6+b3afc78b82         - nullscape 1.2.2         - nyfsspiders 2.1.1         - owo 0.11.1+1.20            \-- blue_endless_jankson 1.2.2         - patchouli 1.20.1-81-FABRIC            \-- fiber 0.23.0-2         - player-animator 1.0.2-rc1+1.20         - puzzleslib 8.0.24         - rare-ice 0.6.0         - replantingcrops 5.1         - riverredux 0.3.1         - shuffle 9.0.0+1.20.1         - sit 1.20-24         - snowrealmagic 9.0.1         - snowundertrees 1.1.0+1.20         - sound_physics_remastered 1.20.1-1.2.1         - starlight 1.1.2+fabric.dbc156f         - statement 4.2.8+1.14.4-1.20.1            |-- kanos_config 0.4.1+1.14.4-1.19.4            \-- statement_vanilla_compatibility 1.0.1+1.16.5-1.17         - terrablender 3.0.0.169         - transparent 8.0.1+1.20.1         - trinkets 3.7.1         - universalbonemeal 8.0.1         - vanillatweaks 1.5.69         - visualoverhaul 5.0.1            \-- midnightlib 1.4.1         - visualworkbench 8.0.0         - voicechat 1.20.1-2.4.24            \-- fabric-key-binding-api-v1 1.0.36+fb8d95da82         - wandering_collector 1.2.1+mc1.20-pre5            |-- coat 1.0.0-beta.20+mc1.20-pre1            |-- tweed4_annotated 1.3.1+mc1.20-pre1            |-- tweed4_base 1.7.1+mc1.20-pre1            |-- tweed4_data 1.2.1+mc1.20-pre1            |-- tweed4_data_hjson 1.1.1+mc1.20-pre1            |-- tweed4_tailor_coat 1.1.3+mc1.20-pre1            |-- tweed4_tailor_lang_json_descriptions 1.1.0+mc1.20-pre1            \-- tweed4_tailor_screen 1.1.4+mc1.20-pre1         - waterdripsound 1.19-0.3.2         - weaponmaster 3.0.5         - yet_another_config_lib_v3 3.1.1+1.20            |-- com_twelvemonkeys_common_common-image 3.10.0-SNAPSHOT            |-- com_twelvemonkeys_common_common-io 3.10.0-SNAPSHOT            |-- com_twelvemonkeys_common_common-lang 3.10.0-SNAPSHOT            |-- com_twelvemonkeys_imageio_imageio-core 3.10.0-SNAPSHOT            |-- com_twelvemonkeys_imageio_imageio-metadata 3.10.0-SNAPSHOT            \-- com_twelvemonkeys_imageio_imageio-webp 3.10.0-SNAPSHOT         - yosbr 0.1.2         - yungsapi 1.20-Fabric-4.0.1            \-- org_javassist_javassist 3.29.2-GA         - yungsbridges 1.20-Fabric-4.0.1         - yungsextras 1.20-Fabric-4.0.1 [15:07:30] [main/INFO]: Applying default options... (YOSBR) [15:07:30] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/home/container/libraries/net/fabricmc/sponge-mixin/0.12.5+mixin.0.8.5/sponge-mixin-0.12.5+mixin.0.8.5.jar Service=Knot/Fabric Env=SERVER [15:07:30] [main/INFO]: Compatibility level set to JAVA_17 [15:07:31] [main/INFO]: Preloading Debugify [15:07:31] [main/INFO]: Loaded configuration file for Lithium: 115 options available, 0 override(s) found [15:07:31] [main/WARN]: Reference map 'mru-refmap.json' for mru.mixins.json could not be read. If this is a development environment you can ignore this message [15:07:31] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras.mixins.json could not be read. If this is a development environment you can ignore this message [15:07:31] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras_fabric.mixins.json could not be read. If this is a development environment you can ignore this message [15:07:32] [main/WARN]: Error loading class: fr/catcore/server/translations/api/resource/language/SystemDelegatedLanguage (java.lang.ClassNotFoundException: fr/catcore/server/translations/api/resource/language/SystemDelegatedLanguage) [15:07:32] [main/ERROR]: A mod crashed on startup! net.fabricmc.loader.impl.FormattedException: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'spectrelib'!         at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:162) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.installer.ServerLauncher.main(ServerLauncher.java:69) ~[server.jar:1.0.0] Caused by: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'spectrelib'!         at net.fabricmc.loader.impl.FabricLoaderImpl.lambda$invokeEntrypoints$2(FabricLoaderImpl.java:388) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:386) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:160) ~[fabric-loader-0.15.9.jar:?]         ... 4 more Caused by: java.lang.NoClassDefFoundError: net/fabricmc/loader/impl/entrypoint/EntrypointUtils         at com.illusivesoulworks.spectrelib.SpectrePreLaunchFabricMod.onPreLaunch(SpectrePreLaunchFabricMod.java:33) ~[spectrelib-0.13.12+1.20.1-205a4d5a45c9ac39.jar:?]         at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:384) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:160) ~[fabric-loader-0.15.9.jar:?]         ... 4 more Caused by: java.lang.ClassNotFoundException: net.fabricmc.loader.impl.entrypoint.EntrypointUtils         at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]         at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]         at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:226) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.15.9.jar:?]         at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]         at com.illusivesoulworks.spectrelib.SpectrePreLaunchFabricMod.onPreLaunch(SpectrePreLaunchFabricMod.java:33) ~[spectrelib-0.13.12+1.20.1-205a4d5a45c9ac39.jar:?]         at net.fabricmc.loader.impl.FabricLoaderImpl.invokeEntrypoints(FabricLoaderImpl.java:384) ~[fabric-loader-0.15.9.jar:?]         at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:160) ~[fabric-loader-0.15.9.jar:?]         ... 4 more container@pterodactyl~ Server marked as offline... [Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ---------- [Pterodactyl Daemon]: Exit code: 1 [Pterodactyl Daemon]: Out of memory: false [Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.
  • Topics

×
×
  • Create New...

Important Information

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