Jump to content

[Solved] How Do I Send Information to the GUI if I use ItemHandlers


DeathSpawn

Recommended Posts

Since I am using ItemHandlers I am not able to communicate using te.getField(int). Please provide an alternative to this problem. My Gui is working properly, just that I am not able to test whether the funace is active or not.

 

TileEntityGemEnchanter.class

public class TileEntityGemEnchanter extends TileEntityBase implements ITickable, ICapabilityProvider {

	private ItemStackHandler inventory = new ItemStackHandler(4);
	private DynamicEnergyStorage energy = new DynamicEnergyStorage(1000000);

	private boolean isEnchanting;

	private int enchantingTime;

	private int currentItemEnchantTime;
	private int enchantTime;
	private int shouldEnchantTime = 50;
	private String enchanterCustomName;
	private int counter = 0;

	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound compound) {
		super.writeToNBT(compound);
		compound.setTag("inventory", inventory.serializeNBT());
		energy.writeToNBT(compound);
		compound.setInteger("enchantTime", this.enchantTime);
		compound.setInteger("currentItemEnchantTime", this.currentItemEnchantTime);
		compound.setInteger("enchantingTime", this.enchantingTime);
		compound.setInteger("shouldEnchantTime", this.shouldEnchantTime);
		compound.setBoolean("isEnchanting", this.isEnchanting);
		if (this.hasCustomName()) {
			compound.setString("enchanterCustomName", this.enchanterCustomName);
		}
		return compound;
	}

	@Override
	public void readFromNBT(NBTTagCompound compound) {
		super.readFromNBT(compound);
		inventory.deserializeNBT(compound.getCompoundTag("inventory"));
		energy.readFromNBT(compound);
		this.enchantTime = compound.getInteger("enchantTime");
		this.currentItemEnchantTime = compound.getInteger("currentItemEnchantTime");
		this.enchantingTime = compound.getInteger("enchantingTime");
		this.shouldEnchantTime = compound.getInteger("shouldEnchantTime");
		this.isEnchanting = compound.getBoolean("isEnchanting");
		if (compound.hasKey("CustomName", 8)) {
			this.enchanterCustomName = compound.getString("CustomName");
		}
	}

	public boolean isEmpty() {
		for (int i = 0; i > this.inventory.getSlots(); i++) {
			if (!this.inventory.getStackInSlot(i).isEmpty()) {
				return false;
			}
		}

		return true;
	}

	public ItemStack decrStackSize(int index, int count) {
		return index >= 0 && index < this.inventory.getSlots()
				&& !((ItemStack) this.inventory.getStackInSlot(index)).isEmpty() && count > 0
						? ((ItemStack) this.inventory.getStackInSlot(index)).splitStack(count)
						: ItemStack.EMPTY;
	}

	public ItemStack removeStackFromSlot(int index) {
		if (index >= 0 && index < this.inventory.getSlots()) {
			this.inventory.setStackInSlot(index, ItemStack.EMPTY);
			return ItemStack.EMPTY;
		}
		return ItemStack.EMPTY;
	}

	public String getName() {
		return this.hasCustomName() ? this.enchanterCustomName : "container.enchanter";
	}

	public boolean hasCustomName() {
		return this.enchanterCustomName != null && !this.enchanterCustomName.isEmpty();
	}

	public void setCustomInventoryName(String name) {
		this.enchanterCustomName = name;
	}

	public void setInventorySlotContents(int index, ItemStack stack) {
		ItemStack itemstack = this.inventory.getStackInSlot(index);
		boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack)
				&& ItemStack.areItemStackTagsEqual(stack, itemstack);
		this.inventory.setStackInSlot(index, stack);

		if (stack.getCount() > 64) {
			stack.setCount(64);
		}

		if (index == 0 && !flag) {
			this.markDirty();
		}
	}

	public ItemStack getStackInSlot(int index) {
		return this.inventory.getStackInSlot(index);
	}

	@Override
	public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) {
		return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || capability == CapabilityEnergy.ENERGY
				|| super.hasCapability(capability, facing);
	}

	@Nullable
	@Override
	public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
		if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
			return (T) this.inventory;
		else if (capability == CapabilityEnergy.ENERGY)
			return (T) this.energy;
		else
			return super.getCapability(capability, facing);
	}

	public boolean isEnchanting() {
		return isEnchanting;
	}

	@Override
	public void update() {
		if (!this.world.isRemote) {
			List<EntityItem> items = new ArrayList<EntityItem>();
			items.addAll(world.getEntitiesWithinAABB(EntityItem.class,
					new AxisAlignedBB(pos.add(3, 3, 3), pos.add(-3, -3, -3))));
			for (EntityItem item : items) {
				if (item.getItem().getItem() == Items.STICK) {
					Utils.getLogger().info("Added Power!");
					this.energy.receiveEnergy(1000, false);
				}
			}

			if (this.canSmelt()) {
				this.currentItemEnchantTime = getEnchantTime(this.inventory.getStackInSlot(0),
						this.inventory.getStackInSlot(1));
				this.shouldEnchantTime = this.currentItemEnchantTime;
				this.isEnchanting = true;
				this.smeltItem();
			} else {
				this.enchantTime = 0;
				this.currentItemEnchantTime = 0;
				this.enchantingTime = 0;
				this.shouldEnchantTime = 0;
				this.isEnchanting = false;
			}
		}
		this.markDirty();
	}

	public int getEnchantTime(ItemStack stack, ItemStack stack2) {
		return 50;
	}

	/**
	 * Returns true if the furnace can smelt an item, i.e. has a source item,
	 * destination stack isn't full, etc.
	 */
	private boolean canSmelt() {
		ItemStack slot0 = this.inventory.getStackInSlot(0);
		ItemStack slot1 = this.inventory.getStackInSlot(1);
		ItemStack slot2 = this.inventory.getStackInSlot(2);
		boolean canSmelt = false;

		if (!(slot0.isEmpty() && slot1.isEmpty())) {
			ItemStack recipes = GemEnchanterRecipes.instance().getEnchantingResult(slot0, slot1);
			if (recipes != ItemStack.EMPTY) {
				if (((slot2.getItem() == recipes.getItem()
						&& slot2.getCount() < slot2.getItem().getItemStackLimit(slot2)) || slot2.isEmpty())
						&& this.energy.getEnergyStored() > 10) {
					canSmelt = true;
				}
			}
		}
		return canSmelt;
	}

	public void smeltItem() {
		ItemStack slot0 = this.inventory.getStackInSlot(0);
		ItemStack slot1 = this.inventory.getStackInSlot(1);
		ItemStack result = GemEnchanterRecipes.instance().getEnchantingResult(slot0, slot1);
		ItemStack slot2 = this.inventory.getStackInSlot(2);

		if (this.isEnchanting()) {
			if (this.enchantTime >= this.getShouldEnchantTime()) {
				slot0.shrink(1);
				slot1.shrink(1);
				if (slot2.isEmpty() || slot2.getItem() == Item.getItemFromBlock(Blocks.AIR)) {
					this.inventory.setStackInSlot(2, result.copy());
				} else {
					slot2.grow(result.getCount());
				}
			} else {
				this.enchantTime++;
				this.energy.extractEnergy(10, false);
			}
		}
	}

	public int getEnchantingTime() {
		return this.enchantingTime;
	}

	public void setEnchantingTime(int enchantingTime) {
		this.enchantingTime = enchantingTime;
	}

	public int getCurrentItemEnchantTime() {
		return this.currentItemEnchantTime;
	}

	public void setCurrentItemEnchantTime(int currentItemEnchantTime) {
		this.currentItemEnchantTime = currentItemEnchantTime;
	}

	public int getEnchantTime() {
		return this.enchantTime;
	}

	public void setEnchantTime(int enchantTime) {
		this.enchantTime = enchantTime;
	}

	public int getShouldEnchantTime() {
		return this.shouldEnchantTime;
	}

	public void setShouldEnchantTime(int shouldEnchantTime) {
		this.shouldEnchantTime = shouldEnchantTime;
	}

	public void setEnchanting(boolean isEnchanting) {
		this.isEnchanting = isEnchanting;
	}

	public boolean isItemValidForSlot(int index, ItemStack stack) {
		return index == 1 || index == 2;
	}

}

 

GuiGemEnchanter.class

public class GuiGemEnchanter extends GuiContainer{

	private TileEntityGemEnchanter te;
	private IInventory playerInv;
	
	public GuiGemEnchanter(InventoryPlayer playerInv, TileEntityGemEnchanter te) {
		super(new ContainerGemEnchanter(playerInv, te));
		
		this.xSize = 175;
		this.ySize = 165;
		
		this.te = te;
		this.playerInv = playerInv;
	}

	@Override
	protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
		this.mc.getTextureManager().bindTexture(new ResourceLocation(Reference.MOD_ID, "textures/gui/container/gem_enchanter.png"));
		this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
		int s = 0;
		if(!this.te.getWorld().isRemote) {
			s = te.getEnchantTime();
			Utils.getLogger().info(te.getEnchantTime());
		}
		if(s > 0) {
			Utils.getLogger().info("Reached here!");
			this.drawTexturedModalRect(79, 34, 176, 14, this.getEnchantedAmount(), 17);
		}
	}
	
	@Override
	protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
		String s = GemEnchantmentMod.proxy.localize(te.getName()); //Gets the formatted name for the block breaker from the language file - NOTE ADD "container.block_breaker=Block Breaker" to the language file (without quotes) and then delete this note
		this.mc.fontRenderer.drawString(s, this.xSize / 2 - this.mc.fontRenderer.getStringWidth(s) / 2, 6, 4210752); 
		this.mc.fontRenderer.drawString(this.playerInv.getDisplayName().getFormattedText(), 8, 72, 4210752);
		super.drawGuiContainerForegroundLayer(mouseX, mouseY);
	}

	private int getEnchantedAmount() {
		int currentItemEnchantAmount = this.te.getCurrentItemEnchantTime();
		int enchantTime = this.te.getEnchantTime();
		float percentage = enchantTime/currentItemEnchantAmount * 100;
		int amount = Math.round(percentage) * 24;
		return amount;
	}
	
}

BlockGemEnchanter.class

ublic class BlockGemEnchanter extends BlockRotatableBase{
	
	public BlockGemEnchanter(Material materialIn, String registryName, float resistance, float hardness,
			Class tileEntity) {
		super(materialIn, registryName, resistance, hardness, tileEntity);
	}
	
	@Override
	public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn,
			EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
		if(!worldIn.isRemote) {
			playerIn.openGui(GemEnchantmentMod.instance, GUI_ID.GEM_ENCHANTER.getGUI_ID(), worldIn, pos.getX(), pos.getY(), pos.getZ());
		}
		return true;
	}

}

 

Edited by DeathSpawn
Link to comment
Share on other sites

13 minutes ago, DeathSpawn said:

Please provide an alternative to this problem.

You can recreate those methods in your te or you could just do te.fieldName

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Packets.

  • Like 1

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

The getField method from Vanilla creates a level abstraction that I don’t think any Modder wants or needs. You should just use getCapability(ItemHandlerCapability) (read more about capabilities here https://mcforge.readthedocs.io/en/latest/datastorage/capabilities/) or a method that returns your ItemStackHandler (you should still be using capabilities, use of a shorthand method is allowable for internal use though). For syncing you just need to override a couple of methods https://mcforge.readthedocs.io/en/latest/tileentities/tileentity/#synchronizing-the-data-to-the-client

  • 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

Are you syncing (and saving) your data? By default data is not synced to the client.

10 hours ago, Cadiboo said:

 

  • Thanks 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

25 minutes ago, DeathSpawn said:

The method has fixed the problem. Should I change the title to [Solved]... or something like that? I am new to the Minecraft Forge forums 

Yeah, just add “[SOLVED] “ to the start of the title (if you want to & if there’s space)

  • Thanks 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

For people referring to this in the future, Use these methods used in my case :

 

@Override
	public SPacketUpdateTileEntity getUpdatePacket(){
	    NBTTagCompound nbtTag = new NBTTagCompound();
	    nbtTag.setTag("inventory", inventory.serializeNBT());
		energy.writeToNBT(nbtTag);
		nbtTag.setInteger("enchantTime", this.enchantTime);
		nbtTag.setInteger("currentItemEnchantTime", this.currentItemEnchantTime);
		nbtTag.setInteger("enchantingTime", this.enchantingTime);
		nbtTag.setInteger("shouldEnchantTime", this.shouldEnchantTime);
		nbtTag.setBoolean("isEnchanting", this.isEnchanting);
	    return new SPacketUpdateTileEntity(getPos(), 1, nbtTag);
	}

	@Override
	public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt){
	    NBTTagCompound tag = pkt.getNbtCompound();
	    inventory.deserializeNBT(tag.getCompoundTag("inventory"));
		energy.readFromNBT(tag);
		this.enchantTime = tag.getInteger("enchantTime");
		this.currentItemEnchantTime = tag.getInteger("currentItemEnchantTime");
		this.enchantingTime = tag.getInteger("enchantingTime");
		this.shouldEnchantTime = tag.getInteger("shouldEnchantTime");
		this.isEnchanting = tag.getBoolean("isEnchanting");
	}

 

and also add the following in the update() method:

 

if(this.world.isBlockLoaded(getPos())) { 
	this.world.notifyBlockUpdate(getPos(), this.world.getBlockState(getPos()), this.world.getBlockState(getPos()), 2);
}

 

This should fix the problem I had

  • Like 1
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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi, I'm asking for your help because I can't figure out how to make it so that when an item is crafted on the Crafting Table, it returns the item to the player's inventory and makes the item lose durability. I've tried looking everywhere without success. Like for the crafting of the cake which returns the empty bucket to the player, but also makes it lose durability.  
    • Description of issue: Tried to run MC client, crashing with java.lang.NoSuchFieldError. I Went into SRG fields, found that f_271198 does exist, but Forge thinks this field does not exist.   Crash Report: ---- Minecraft Crash Report ---- // I let you down. Sorry Time: 2024-02-22 09:21:29 Description: Mod loading error has occurred java.lang.Exception: Mod Loading has failed     at net.minecraftforge.logging.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:48) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading}     at net.minecraftforge.client.loading.ClientModLoader.completeModLoading(ClientModLoader.java:119) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$new$6(Minecraft.java:611) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.Util.ifElse(Util.java:432) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading}     at net.minecraft.client.Minecraft.lambda$new$7(Minecraft.java:602) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraftforge.client.loading.ForgeLoadingOverlay.render(ForgeLoadingOverlay.java:146) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading}     at net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:931) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.runTick(Minecraft.java:1250) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.run(Minecraft.java:801) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:234) ~[forge-1.20.4-49.0.30_mapped_official_1.20.4.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:91) ~[fmlloader-1.20.4-49.0.30.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:75) ~[fmlloader-1.20.4-49.0.30.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) ~[modlauncher-10.1.2.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:74) ~[modlauncher-10.1.2.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:114) ~[modlauncher-10.1.2.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:73) ~[modlauncher-10.1.2.jar:?] {}     at cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) ~[modlauncher-10.1.2.jar:?] {}     at net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:97) ~[bootstrap-2.0.0.jar!/:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:48) ~[bootstrap-2.0.0.jar!/:?] {}     at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:18) ~[bootstrap-2.0.0.jar!/:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Suspected Mod:      Better Biomes (betterbiomes), Version: 0.1.4.3         at TRANSFORMER/betterbiomes@0.1.4.3/net.crypticverse.betterbiomes.util.BetterBiomeWoodTypes.<clinit>(BetterBiomeWoodTypes.java:8) Stacktrace:     at net.crypticverse.betterbiomes.util.BetterBiomeWoodTypes.<clinit>(BetterBiomeWoodTypes.java:8) ~[betterbiomes-forge-2.1.4.6-1.20.4.jar!/:2.1.4.6-1.20.4] {re:classloading} -- MOD betterbiomes -- Details:     Mod File: /C:/Users/myUser/BetterBiomes-Forge/run/mods/betterbiomes-forge-2.1.4.6-1.20.4.jar     Failure message: Better Biomes (betterbiomes) has failed to load correctly         java.lang.NoSuchFieldError: f_271198_     Mod Version: 0.1.4.3     Mod Issue URL: NOT PROVIDED     Exception message: java.lang.NoSuchFieldError: f_271198_ Stacktrace:     at net.crypticverse.betterbiomes.util.BetterBiomeWoodTypes.<clinit>(BetterBiomeWoodTypes.java:8) ~[main/:?] {re:classloading}     at net.crypticverse.betterbiomes.BetterBiomes.<init>(BetterBiomes.java:55) ~[main/:?] {re:classloading}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}     at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:66) ~[javafmllanguage-1.20.4-49.0.30.jar!/:49.0.30] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:125) ~[fmlcore-1.20.4-49.0.30.jar!/:1.0] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {} -- System Details -- Details:     Minecraft Version: 1.20.4     Minecraft Version ID: 1.20.4     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.9, Eclipse Adoptium     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Eclipse Adoptium     Memory: 578548144 bytes (551 MiB) / 1128267776 bytes (1076 MiB) up to 8522825728 bytes (8128 MiB)     CPUs: 20     Processor Vendor: GenuineIntel     Processor Name: 12th Gen Intel(R) Core(TM) i7-12700K     Identifier: Intel64 Family 6 Model 151 Stepping 2     Microarchitecture: Alder Lake     Frequency (GHz): 3.61     Number of physical packages: 1     Number of physical CPUs: 12     Number of logical CPUs: 20     Graphics card #0 name: NVIDIA GeForce RTX 3070 Ti     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x2482     Graphics card #0 versionInfo: DriverVersion=31.0.15.3699     Memory slot #0 capacity (MB): 16384.00     Memory slot #0 clockSpeed (GHz): 4.80     Memory slot #0 type: Unknown     Memory slot #1 capacity (MB): 16384.00     Memory slot #1 clockSpeed (GHz): 4.80     Memory slot #1 type: Unknown     Virtual memory max (MB): 37373.42     Virtual memory used (MB): 22391.79     Swap memory total (MB): 4864.00     Swap memory used (MB): 95.69     JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump     ModLauncher: 10.1.2     ModLauncher launch target: forge_userdev_client     ModLauncher naming: mcp     ModLauncher services:          / slf4jfixer PLUGINSERVICE          / runtimedistcleaner PLUGINSERVICE          / runtime_enum_extender PLUGINSERVICE          / object_holder_definalize PLUGINSERVICE          / capability_token_subclass PLUGINSERVICE          / accesstransformer PLUGINSERVICE          / eventbus PLUGINSERVICE          / mixin PLUGINSERVICE          / fml TRANSFORMATIONSERVICE          / mixin TRANSFORMATIONSERVICE      FML Language Providers:          lowcodefml@49         minecraft@1.0         javafml@49.0.30     Mod List:                                                            |Minecraft                     |minecraft                     |1.20.4              |COMMON_SET|Manifest: NOSIGNATURE         TerraBlender-forge-1.20.4-3.3.0.12_mapped_official|TerraBlender                  |terrablender                  |3.3.0.12            |COMMON_SET|Manifest: NOSIGNATURE                                                           |Forge                         |forge                         |49.0.30             |COMMON_SET|Manifest: NOSIGNATURE         betterbiomes-forge-2.1.4.6-1.20.4.jar             |Better Biomes                 |betterbiomes                  |0.1.4.3             |ERROR     |Manifest: NOSIGNATURE         Notebook-api-forge-1.20.4-1.1.0.4_mapped_official_|Notebook                      |notebook                      |1.1.0.4             |COMMON_SET|Manifest: NOSIGNATURE     Crash Report UUID: ad19c004-038a-4777-adbc-0504acf15d93     FML: 0.0     Forge: net.minecraftforge:49.0.30
    • Some kind of issue/conflict with eureka - also try other builds of it
    • doesn't work But after trying to make a boat with Valkyrien Skies, I got this : https://pastebin.com/bxnDcHr3 maybe the problem comes from valkyrien skies itself ?
  • Topics

×
×
  • Create New...

Important Information

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