Jump to content

Recommended Posts

Posted

Hello everyone,

 

I've been getting some good support in the Discord about this recently, but still haven't been able to resolve my problems. I figured I'd create a post here now that the forums are back online.

 

What I'm trying to do: when a player types a command, I want to export an average pixel color value for the top surface of all blocks. What I've managed to do so far is to obtain the TextureAtlasSprite that I believe corresponds to the top surface of every block in the game. I cannot for the life of me figure out how to read the actual pixel values of this sprite though.

 

Here's what I have so far:

	// Flag for whether the player has executed a color map generation request.
	public static boolean MAPPING = false;

	@SubscribeEvent
	public static void onTickingPlayer(PlayerTickEvent event) {
		if (MAPPING) {
			MAPPING = false;
			EntityPlayer sender = event.player;
			sender.sendMessage(new TextComponentString(TextFormatting.GREEN + "Exporting all block textures..."));

			// Find the texture of each block.
			for (Block block : ForgeRegistries.BLOCKS) {
				for (IBlockState blockState : block.getBlockState().getValidStates()) {

					// Filter to test on just cobble for now.
					if (blockState.toString().equals("minecraft:cobblestone")) {

						// Retrieve the top quad of the block.
						System.out.println(blockState.toString());
						IBakedModel bakedModel = Minecraft.getMinecraft().getBlockRendererDispatcher()
								.getBlockModelShapes().getModelForState(blockState);
						List<BakedQuad> quadList = bakedModel.getQuads(blockState, EnumFacing.UP, 0L);
						TextureAtlasSprite sprite = quadList.isEmpty() ? bakedModel.getParticleTexture()
								: quadList.get(0).getSprite();
						if (sprite == null) {
							System.out.println("null");

						// If the sprite exists, parse its pixel information.
						} else {

							int width = sprite.getIconWidth();
							int height = sprite.getIconHeight();
							int bytesPerPixel = 4;
							ByteBuffer pixels = BufferUtils.createByteBuffer(width * height * bytesPerPixel);
							Minecraft.getMinecraft().getTextureManager()
									.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
							GL11.glReadPixels(sprite.getOriginX(), sprite.getOriginY(), width, height, GL11.GL_RGBA,
									GL11.GL_UNSIGNED_BYTE, pixels);

							// Debug print an image of the single block.
							int r = 0, g = 0, b = 0;
							BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
							for (int x = 0; x < width; x++) {
								for (int y = 0; y < height; y++) {
									int i = (x + (width * y)) * bytesPerPixel;
									r = pixels.get(i) & 0xFF;
									g = pixels.get(i + 1) & 0xFF;
									b = pixels.get(i + 2) & 0xFF;
									image.setRGB(x, height - (y + 1), (0xFF << 24) | (r << 16) | (g << 8) | b);
								}
							}
							File file = new File("test_cobblestone.png");
							String format = "png";
							try {
								ImageIO.write(image, format, file);
							} catch (IOException e) {
								e.printStackTrace();
							}

							// Debug print the atlas.
							int atlasSize = 112;
							ByteBuffer atlasPixels = BufferUtils.createByteBuffer(atlasSize * atlasSize * 4);
							Minecraft.getMinecraft().getTextureManager()
									.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
							GL11.glReadPixels(0, 0, atlasSize, atlasSize, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE,
									atlasPixels);
							BufferedImage atlasImage = new BufferedImage(atlasSize, atlasSize,
									BufferedImage.TYPE_INT_RGB);
							for (int x = 0; x < atlasSize; x++) {
								for (int y = 0; y < atlasSize; y++) {
									int i = (x + (atlasSize * y)) * bytesPerPixel;
									int atlasR = atlasPixels.get(i) & 0xFF;
									int atlasG = atlasPixels.get(i + 1) & 0xFF;
									int atlasB = atlasPixels.get(i + 2) & 0xFF;
									atlasImage.setRGB(x, atlasSize - (y + 1),
											(0xFF << 24) | (atlasR << 16) | (atlasG << 8) | atlasB);
								}
							}
							File atlasFile = new File("test_atlas.png");
							String atlasFormat = "png";
							try {
								ImageIO.write(atlasImage, atlasFormat, atlasFile);
							} catch (IOException e) {
								e.printStackTrace();
							}
						}
					}
				}
			}
		}
	}

 

What I was trying to do with this code above is print out as debug two images, "test_cobblestone.png" and "test_atlas.png" which I would expect to correspond to the 16x16 area of the texture atlas for the cobblestone surface and to a larger 112x112 snapshot of the texture atlas, respectively. What I find instead is that they correspond to effectively partial screenshots of my current view when running the command! I've attached them to this post for reference. I put this code into a tick handler just in case it was somehow being broken when attempting to execute immediately off of the command.

 

What it seems to me is going on is an error somewhere in this part of my code:

int width = sprite.getIconWidth();
int height = sprite.getIconHeight();
int bytesPerPixel = 4;
ByteBuffer pixels = BufferUtils.createByteBuffer(width * height * bytesPerPixel);
Minecraft.getMinecraft().getTextureManager()
  .bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
GL11.glReadPixels(sprite.getOriginX(), sprite.getOriginY(), width, height, GL11.GL_RGBA,
  GL11.GL_UNSIGNED_BYTE, pixels);

 

It looks like "GL11.glReadPixels" is reading my screen and not the texture atlas.

 

Any and all help here would be appreciated. I know that I can maybe achieve the same goal by reading the textures from disk, but really want to better understand how I can actually read textures from the block texture atlas.

 

Thank you!

test_atlas.png

test_cobblestone.png

Posted
31 minutes ago, Rockhopper said:

It looks like "GL11.glReadPixels" is reading my screen and not the texture atlas.

That's quite literally what readPixels is supposed to do - it reads the pixel values from the currently bound framebuffer. For the future you can read documentation about opengl methods here.

For actually reading the pixel values from a texture you need to use getTexImage. Note that it will dump the entire texture onto the buffer though.

You could render the part of the texture you need onto a framebuffer and read from that using readPixels but I don't think it is going to be faster than reading the entire texture.

  • Like 1
Posted

Thank you @V0idWa1k3r! That was just the tip I needed to get this working. I found another post of yours elsewhere on the forum and ended up combining it with the advice here to come up with

						// Temporarily replace the frame buffer to write sprite data.
						int width = sprite.getIconWidth();
						int height = sprite.getIconHeight();
						Framebuffer currentFrame = Minecraft.getMinecraft().getFramebuffer();
						Framebuffer spriteFrame = new Framebuffer(width, height, true);
						spriteFrame.bindFramebuffer(true);
						GlStateManager.clearColor(0, 0, 0, 1);
						GlStateManager.clear(GL11.GL_COLOR_BUFFER_BIT);

						// Draw the actual block texture.
						GlStateManager.pushMatrix();
						float xScale = ((1.0f * Minecraft.getMinecraft().displayWidth)
								/ (1.0f * Minecraft.getMinecraft().displayHeight));
						GlStateManager.scale(xScale, 1, 1);
						Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
						Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(0, 0, sprite, 256, 256);
						GlStateManager.popMatrix();

						// Allocate a buffer for GL to dump pixels into.
						IntBuffer pixels = BufferUtils.createIntBuffer(width * height);
						GlStateManager.bindTexture(spriteFrame.framebufferTexture);

						// Dump the pixels onto the IntBuffer. Note that the pixel format is BGRA and
						// the pixel type is 8 bits per color.
						GlStateManager.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL12.GL_BGRA,
								GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixels);

						// Allocate the array to hold pixel values.
						int[] pixelValues = new int[width * height];
						pixels.get(pixelValues);
						TextureUtil.processPixelValues(pixelValues, width, height);

which seems to be working great.

 

Just in case it helps anyone else down the road, here's what I use to retrieve the sprite.

					// If a block is liquid, get its texture from the fluid registry.
					if (block instanceof IFluidBlock || block instanceof BlockLiquid) {
						Fluid fluid = FluidRegistry.lookupFluidForBlock(block);
						ResourceLocation fluidTexture = fluid.getStill();
						sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(fluidTexture.toString());

					// Retrieve the top quad of the solid block.
					} else {
						IBakedModel bakedModel = Minecraft.getMinecraft().getBlockRendererDispatcher()
								.getBlockModelShapes().getModelForState(blockState);
						List<BakedQuad> quadList = bakedModel.getQuads(blockState, EnumFacing.UP, 0L);
						sprite = quadList.isEmpty() ? bakedModel.getParticleTexture() : quadList.get(0).getSprite();
					}

 

Posted

But while I've got you here, @V0idWa1k3r, any ideas how I could get this working on blocks like signs and beds? The sprite being retrieved for those blocks is the purple/black missing texture pattern. Clearly retrieving their top quad isn't the way to go.

Posted

Unfortunately those blocks use a TESR and you can't really do this with a TESR. A possible solution would be to render a TESR onto a separate framebuffer, but then you would need a solution for blocks that use a FastTESR. It is possible in theory I suppose but you would have to look into the way vanilla+forge render TESRs.

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

    • [30Jan2025 13:41:57. 714] [main/INFO] [cpw. mods. modlauncher. Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, arclightserver, --fml. forgeVersion, 47. 3. 22, --fml. mcVersion, 1. 20. 1, --fml. forgeGroup, net. minecraftforge, --fml. mcpVersion, 20230612. 114412, nogui] 14[30Jan2025 13:41:57. 715] [main/INFO] [cpw. mods. modlauncher. Launcher/MODLAUNCHER]: ModLauncher 10. 0. 9+10. 0. 9+main. dcd20f30 starting: java version 17. 0. 13 by Eclipse Adoptium; OS Linux arch amd64 version 5. 15. 0-131-generic 15[30Jan2025 13:41:58. 774] [main/INFO] [net. minecraftforge. fml. loading. ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is arclightserver 16[30Jan2025 13:41:58. 804] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0. 8. 5 Source=union:/server/libraries/org/spongepowered/mixin/0. 8. 5/mixin-0. 8. 5. jar%2399!/ Service=ModLauncher Env=SERVER 17[30Jan2025 13:41:59. 305] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/fmlcore/1. 20. 1-47. 3. 22/fmlcore-1. 20. 1-47. 3. 22. jar is missing mods. toml file 18[30Jan2025 13:41:59. 308] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/javafmllanguage/1. 20. 1-47. 3. 22/javafmllanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 19[30Jan2025 13:41:59. 309] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/lowcodelanguage/1. 20. 1-47. 3. 22/lowcodelanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 20[30Jan2025 13:41:59. 311] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/mclanguage/1. 20. 1-47. 3. 22/mclanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 21[30Jan2025 13:41:59. 572] [main/INFO] [net. minecraftforge. fml. loading. moddiscovery. JarInJarDependencyLocator/]: Found 15 dependencies adding them to mods collection 22[30Jan2025 13:42:04. 300] [main/INFO] [mixin/]: Compatibility level set to JAVA_17 23[30Jan2025 13:42:04. 507] [main/ERROR] [mixin/]: Mixin config mixins. megamons-common. json does not specify "minVersion" property 24[30Jan2025 13:42:04. 621] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [de. maxhenkel. tradecycling. MixinConnector] 25[30Jan2025 13:42:04. 625] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [io. izzel. arclight. common. mod. ArclightConnector] 26[30Jan2025 13:42:04. 696] [main/INFO] [Arclight/]: Arclight core mixin added. 27[30Jan2025 13:42:04. 708] [main/INFO] [Arclight/]: Arclight optimization mixin added. 28[30Jan2025 13:42:04. 712] [main/INFO] [cpw. mods. modlauncher. LaunchServiceHandler/MODLAUNCHER]: Launching target 'arclightserver' with arguments [nogui] 29[30Jan2025 13:42:04. 982] [main/WARN] [mixin/]: Reference map 'handcrafted-forge-1. 20. 1-forge-refmap. json' for handcrafted. mixins. json could not be read. If this is a development environment you can ignore this message 30[30Jan2025 13:42:05. 003] [main/WARN] [mixin/]: Reference map 'megamons-forge-refmap. json' for mixins. megamons-forge. json could not be read. If this is a development environment you can ignore this message 31[30Jan2025 13:42:05. 021] [main/WARN] [mixin/]: Reference map 'CreateLiquidFuel. refmap. json' for createliquidfuel. mixins. json could not be read. If this is a development environment you can ignore this message 32[30Jan2025 13:42:05. 029] [main/WARN] [mixin/]: Reference map 'chiselsandbits. refmap. json' for chisels-and-bits. mixins. json could not be read. If this is a development environment you can ignore this message 33[30Jan2025 13:42:06. 109] [main/WARN] [mixin/]: Error loading class: com/copycatsplus/copycats/content/copycat/slab/CopycatSlabBlock (java. lang. ClassNotFoundException: com. copycatsplus. copycats. content. copycat. slab. CopycatSlabBlock) 34[30Jan2025 13:42:06. 109] [main/WARN] [mixin/]: @Mixin target com. copycatsplus. copycats. content. copycat. slab. CopycatSlabBlock was not found create_connected. mixins. json:compat. CopycatBlockMixin 35[30Jan2025 13:42:06. 112] [main/WARN] [mixin/]: Error loading class: com/copycatsplus/copycats/content/copycat/board/CopycatBoardBlock (java. lang. ClassNotFoundException: com. copycatsplus. copycats. content. copycat. board. CopycatBoardBlock) 36[30Jan2025 13:42:06. 112] [main/WARN] [mixin/]: @Mixin target com. copycatsplus. copycats. content. copycat. board. CopycatBoardBlock was not found create_connected. mixins. json:compat. CopycatBlockMixin 37[30Jan2025 13:42:06. 154] [main/WARN] [mixin/]: Error loading class: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults (java. lang. ClassNotFoundException: me. jellysquid. mods. lithium. common. ai. pathing. PathNodeDefaults) 38[30Jan2025 13:42:06. 212] [main/ERROR] [net. minecraftforge. fml. loading. RuntimeDistCleaner/DISTXFORM]: Attempted to load class com/simibubi/create/foundation/gui/AbstractSimiScreen for invalid dist DEDICATED_SERVER 39[30Jan2025 13:42:06. 213] [main/WARN] [mixin/]: Error loading class: com/simibubi/create/foundation/gui/AbstractSimiScreen (java. lang. RuntimeException: Attempted to load class com/simibubi/create/foundation/gui/AbstractSimiScreen for invalid dist DEDICATED_SERVER) 40[30Jan2025 13:42:06. 213] [main/WARN] [mixin/]: @Mixin target com. simibubi. create. foundation. gui. AbstractSimiScreen was not found create_connected. mixins. json:sequencedgearshift. AbstractSimiScreenAccessor 41[30Jan2025 13:42:07. 237] [main/WARN] [mixin/]: Error loading class: juuxel/adorn/block/variant/BlockVariantSets (java. lang. ClassNotFoundException: juuxel. adorn. block. variant. BlockVariantSets) 42[30Jan2025 13:42:07. 237] [main/WARN] [mixin/]: @Mixin target juuxel. adorn. block. variant. BlockVariantSets was not found mixins. cobblemon-common. json:invoker. AdornRegisterInvoker 43[30Jan2025 13:42:11. 158] [main/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com. llamalad7. mixinextras. service. MixinExtrasServiceImpl(version=0. 3. 5). 44[30Jan2025 13:42:20. 266] [main/WARN] [mixin/]: Static binding violation: PRIVATE @Overwrite method m_147092_ in mixins. arclight. core. json:world. entity. ExperienceOrbMixin cannot reduce visibiliy of PUBLIC target method, visibility will be upgraded. 45[30Jan2025 13:42:21. 288] [main/ERROR] [net. minecraftforge. coremod. transformer. CoreModBaseTransformer/COREMOD]: Error occurred applying transform of coremod coremods/field_to_method. js function biome 46java. lang. IllegalStateException: Field f_47437_ is not private and an instance field 47at net. minecraftforge. coremod. api. ASMAPI. redirectFieldToMethod(ASMAPI. java:1069) ~[coremods-5. 2. 4. jar%2388!/:?] {} 48at org. openjdk. nashorn. internal. scripts. Script$Recompilation$22$292A$\^eval\_. initializeCoreMod#transformer(:11) ~[?:?] {} 49at org. openjdk. nashorn. internal. runtime. ScriptFunctionData. invoke(ScriptFunctionData. java:648) ~[nashorn-core-15. 4. jar%23100!/:?] {} 50at org. openjdk. nashorn. internal. runtime. ScriptFunction. invoke(ScriptFunction. java:513) ~[nashorn-core-15. 4. jar%23100!/:?] {} 51at org. openjdk. nashorn. internal. runtime. ScriptRuntime. apply(ScriptRuntime. java:520) ~[nashorn-core-15. 4. jar%23100!/:?] {} 52at org. openjdk. nashorn. api. scripting. ScriptObjectMirror. call(ScriptObjectMirror. java:111) ~[nashorn-core-15. 4. jar%23100!/:?] {} 53at net. minecraftforge. coremod. NashornFactory. lambda$getFunction$0(NashornFactory. java:37) ~[coremods-5. 2. 4. jar%2388!/:5. 2. 4] {} 54at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:22) ~[coremods-5. 2. 4. jar%2388!/:?] {} 55at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:14) ~[coremods-5. 2. 4. jar%2388!/:?] {} 56at net. minecraftforge. coremod. transformer. CoreModBaseTransformer. transform(CoreModBaseTransformer. java:60) ~[coremods-5. 2. 4. jar%2388!/:?] {} 57at cpw. mods. modlauncher. TransformerHolder. transform(TransformerHolder. java:41) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 58at cpw. mods. modlauncher. ClassTransformer. performVote(ClassTransformer. java:179) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 59at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:117) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 60at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 61at cpw. mods. cl. ModuleClassLoader. getMaybeTransformedClassBytes(ModuleClassLoader. java:250) ~[securejarhandler-2. 1. 10. jar:?] {} 62at cpw. mods. modlauncher. TransformingClassLoader. buildTransformedClassNodeFor(TransformingClassLoader. java:58) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 63at cpw. mods. modlauncher. LaunchPluginHandler. lambda$announceLaunch$10(LaunchPluginHandler. java:100) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 64at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. getClassNode(MixinLaunchPluginLegacy. java:222) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 65at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. getClassNode(MixinLaunchPluginLegacy. java:207) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 66at org. spongepowered. asm. mixin. transformer. ClassInfo. forName(ClassInfo. java:2005) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 67at org. spongepowered. asm. mixin. transformer. ClassInfo. forType(ClassInfo. java:2059) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 68at org. spongepowered. asm. mixin. transformer. ClassInfo. forDescriptor(ClassInfo. java:2038) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 69at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. transformMethod(MixinPreProcessorStandard. java:752) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 70at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. transform(MixinPreProcessorStandard. java:739) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 71at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. attach(MixinPreProcessorStandard. java:310) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 72at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. createContextFor(MixinPreProcessorStandard. java:280) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 73at org. spongepowered. asm. mixin. transformer. MixinInfo. createContextFor(MixinInfo. java:1288) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 74at org. spongepowered. asm. mixin. transformer. MixinApplicatorStandard. apply(MixinApplicatorStandard. java:292) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 75at org. spongepowered. asm. mixin. transformer. TargetClassContext. apply(TargetClassContext. java:383) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 76at org. spongepowered. asm. mixin. transformer. TargetClassContext. applyMixins(TargetClassContext. java:365) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 77at org. spongepowered. asm. mixin. transformer. MixinProcessor. applyMixins(MixinProcessor. java:363) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 78at org. spongepowered. asm. mixin. transformer. MixinTransformer. transformClass(MixinTransformer. java:250) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 79at org. spongepowered. asm. service. modlauncher. MixinTransformationHandler. processClass(MixinTransformationHandler. java:131) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 80at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. processClass(MixinLaunchPluginLegacy. java:131) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 81at cpw. mods. modlauncher. serviceapi. ILaunchPluginService. processClassWithFlags(ILaunchPluginService. java:156) ~[modlauncher-10. 0. 9. jar%2389!/:10. 0. 9+10. 0. 9+main. dcd20f30] {} 82at cpw. mods. modlauncher. LaunchPluginHandler. offerClassNodeToPlugins(LaunchPluginHandler. java:88) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 83at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:120) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 84at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 85at cpw. mods. cl. ModuleClassLoader. readerToClass(ModuleClassLoader. java:113) ~[securejarhandler-2. 1. 10. jar:?] {} 86at cpw. mods. cl. ModuleClassLoader. lambda$findClass$15(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 87at cpw. mods. cl. ModuleClassLoader. loadFromModule(ModuleClassLoader. java:229) ~[securejarhandler-2. 1. 10. jar:?] {} 88at cpw. mods. cl. ModuleClassLoader. findClass(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 89at cpw. mods. cl. ModuleClassLoader. loadClass(ModuleClassLoader. java:135) ~[securejarhandler-2. 1. 10. jar:?] {} 90at java. lang. ClassLoader. loadClass(ClassLoader. java:525) ~[?:?] {} 91at net. minecraft. core. GlobalPos. m_122641_(GlobalPos. java:11) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading} 92at com. mojang. serialization. codecs. RecordCodecBuilder. create(RecordCodecBuilder. java:72) ~[datafixerupper-6. 0. 8. jar%23111!/:?] {} 93at net. minecraft. core. GlobalPos. (GlobalPos. java:11) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading} 94at net. minecraft. world. entity. ai. memory. MemoryModuleType. (MemoryModuleType. java:32) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, pl:accesstransformer:B, re:mixin, pl:accesstransformer:B} 95at net. minecraft. world. entity. animal. frog. Tadpole. (TadpoleMixin. java:53) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, xf:fml:forge:forge_method_redirector, re:classloading, pl:accesstransformer:B, xf:fml:forge:forge_method_redirector, pl:mixin:APP:mixins. arclight. core. json:world. entity. animal. frog. TadpoleMixin, pl:mixin:A} 96at net. minecraft. world. entity. EntityType. (EntityTypeMixin. java:267) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, xf:fml:forge:forge_method_redirector, re:classloading, xf:fml:forge:forge_method_redirector, pl:mixin:APP:mixins. arclight. core. json:world. entity. EntityTypeMixin, pl:mixin:A} 97at net. minecraft. world. item. Items. (Items. java:754) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:object_holder_definalize:A, re:classloading, pl:object_holder_definalize:A} 98at net. minecraft. world. level. block. ComposterBlock. m_51988_(ComposterBlockMixin. java:60) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:APP:mixins. arclight. core. json:world. level. block. ComposterBlockMixin, pl:mixin:A} 99at net. minecraft. server. Bootstrap. m_135870_(BootstrapMixin. java:47) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading, pl:mixin:APP:mixins. arclight. core. json:server. BootstrapMixin, pl:mixin:A} 100at net. minecraft. server. Main. main(Main. java:121) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:A} 101at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 102at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 103at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 104at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 105at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. runTarget(CommonLaunchHandler. java:111) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 106at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. serverService(CommonLaunchHandler. java:103) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 107at net. minecraftforge. fml. loading. targets. CommonServerLaunchHandler. lambda$makeService$0(CommonServerLaunchHandler. java:27) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 108at cpw. mods. modlauncher. LaunchServiceHandlerDecorator. launch(LaunchServiceHandlerDecorator. java:30) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 109at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:53) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 110at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:71) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 111at cpw. mods. modlauncher. Launcher. run(Launcher. java:108) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 112at cpw. mods. modlauncher. Launcher. main(Launcher. java:78) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 113at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:26) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 114at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:23) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 115at io. izzel. arclight. boot. application. ApplicationBootstrap. accept(ApplicationBootstrap. java:46) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 116at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 117at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 118at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 119at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 120at io. izzel. arclight. boot. application. BootstrapTransformer. onInvoke$BootstrapLauncher(BootstrapTransformer. java:26) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 121at cpw. mods. bootstraplauncher. BootstrapLauncher. main(BootstrapLauncher. java:141) ~[bootstraplauncher-1. 1. 2. jar:?] {} 122at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 123at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 124at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 125at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 126at io. izzel. arclight. boot. application. Main_Forge. main(Main_Forge. java:33) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 127at io. izzel. arclight. server. Launcher. main(Launcher. java:18) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 128[30Jan2025 13:42:21. 327] [main/WARN] [mixin/]: @Inject(@At("INVOKE_ASSIGN")) Shift. BY=2 on refurbished_furniture. common. mixins. json:LevelChunkMixin::handler$zjk000$refurbishedFurniture$AfterRemoveBlockEntity exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. 129[30Jan2025 13:42:22. 457] [main/WARN] [mixin/]: Mixin alexscaves. mixins. json:SwampHutPieceMixin has multiple constructors, (Lnet/minecraft/world/level/levelgen/structure/pieces/StructurePieceType; IIIIIILnet/minecraft/core/Direction; )V was selected 130 131[30Jan2025 13:42:22. 601] [main/ERROR] [net. minecraftforge. coremod. transformer. CoreModBaseTransformer/COREMOD]: Error occurred applying transform of coremod coremods/field_to_method. js function biome 132java. lang. IllegalStateException: Field f_47437_ is not private and an instance field 133at net. minecraftforge. coremod. api. ASMAPI. redirectFieldToMethod(ASMAPI. java:1069) ~[coremods-5. 2. 4. jar%2388!/:?] {} 134at org. openjdk. nashorn. internal. scripts. Script$Recompilation$22$292A$\^eval\_. initializeCoreMod#transformer(:11) ~[?:?] {} 135at org. openjdk. nashorn. internal. runtime. ScriptFunctionData. invoke(ScriptFunctionData. java:648) ~[nashorn-core-15. 4. jar%23100!/:?] {} 136at org. openjdk. nashorn. internal. runtime. ScriptFunction. invoke(ScriptFunction. java:513) ~[nashorn-core-15. 4. jar%23100!/:?] {} 137at org. openjdk. nashorn. internal. runtime. ScriptRuntime. apply(ScriptRuntime. java:520) ~[nashorn-core-15. 4. jar%23100!/:?] {} 138at org. openjdk. nashorn. api. scripting. ScriptObjectMirror. call(ScriptObjectMirror. java:111) ~[nashorn-core-15. 4. jar%23100!/:?] {} 139at net. minecraftforge. coremod. NashornFactory. lambda$getFunction$0(NashornFactory. java:37) ~[coremods-5. 2. 4. jar%2388!/:5. 2. 4] {} 140at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:22) ~[coremods-5. 2. 4. jar%2388!/:?] {} 141at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:14) ~[coremods-5. 2. 4. jar%2388!/:?] {} 142at net. minecraftforge. coremod. transformer. CoreModBaseTransformer. transform(CoreModBaseTransformer. java:60) ~[coremods-5. 2. 4. jar%2388!/:?] {} 143at cpw. mods. modlauncher. TransformerHolder. transform(TransformerHolder. java:41) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 144at cpw. mods. modlauncher. ClassTransformer. performVote(ClassTransformer. java:179) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 145at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:117) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 146at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 147at cpw. mods. cl. ModuleClassLoader. readerToClass(ModuleClassLoader. java:113) ~[securejarhandler-2. 1. 10. jar:?] {} 148at cpw. mods. cl. ModuleClassLoader. lambda$findClass$15(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 149at cpw. mods. cl. ModuleClassLoader. loadFromModule(ModuleClassLoader. java:229) ~[securejarhandler-2. 1. 10. jar:?] {} 150at cpw. mods. cl. ModuleClassLoader. findClass(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 151at cpw. mods. cl. ModuleClassLoader. loadClass(ModuleClassLoader. java:135) ~[securejarhandler-2. 1. 10. jar:?] {} 152at java. lang. ClassLoader. loadClass(ClassLoader. java:525) ~[?:?] {} 153at net. minecraft. world. level. biome. FixedBiomeSource. (FixedBiomeSource. java:17) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading} 154at net. minecraft. world. level. biome. BiomeSources. m_220586_(BiomeSources. java:8) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading} 155at net. minecraft. core. registries. BuiltInRegistries. m_258029_(BuiltInRegistries. java:448) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 156at net. minecraft. core. registries. BuiltInRegistries. m_258037_(BuiltInRegistries. java:462) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 157at java. util. LinkedHashMap. forEach(LinkedHashMap. java:721) ~[?:?] {} 158at net. minecraft. core. registries. BuiltInRegistries. m_257453_(BuiltInRegistries. java:461) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 159at net. minecraft. core. registries. BuiltInRegistries. m_257498_(BuiltInRegistries. java:455) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 160at net. minecraft. server. Bootstrap. m_135870_(BootstrapMixin. java:55) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading, pl:mixin:APP:mixins. arclight. core. json:server. BootstrapMixin, pl:mixin:A} 161at net. minecraft. server. Main. main(Main. java:121) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:A} 162at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 163at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 164at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 165at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 166at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. runTarget(CommonLaunchHandler. java:111) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 167at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. serverService(CommonLaunchHandler. java:103) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 168at net. minecraftforge. fml. loading. targets. CommonServerLaunchHandler. lambda$makeService$0(CommonServerLaunchHandler. java:27) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 169at cpw. mods. modlauncher. LaunchServiceHandlerDecorator. launch(LaunchServiceHandlerDecorator. java:30) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 170at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:53) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 171at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:71) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 172at cpw. mods. modlauncher. Launcher. run(Launcher. java:108) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 173at cpw. mods. modlauncher. Launcher. main(Launcher. java:78) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 174at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:26) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 175at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:23) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 176at io. izzel. arclight. boot. application. ApplicationBootstrap. accept(ApplicationBootstrap. java:46) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 177at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 178at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 179at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 180at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 181at io. izzel. arclight. boot. application. BootstrapTransformer. onInvoke$BootstrapLauncher(BootstrapTransformer. java:26) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 182at cpw. mods. bootstraplauncher. BootstrapLauncher. main(BootstrapLauncher. java:141) ~[bootstraplauncher-1. 1. 2. jar:?] {} 183at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 184at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 185at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 186at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 187at io. izzel. arclight. boot. application. Main_Forge. main(Main_Forge. java:33) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 188at io. izzel. arclight. server. Launcher. main(Launcher. java:18) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {}
    • Welp, It doesn't crash but for some reason I broke pickaxes. They just wont work. The game behaves as if my hand was empty. Wtf is going on
    • Oh yeah, dammit. There's the duplicate mod. It works now
    • Making a modpack and crashing but can't find the mod thats the issue. I don't really want to have to try checking them one by one again.    This is the error: https://imgur.com/a/AB1LeBK And this the mod list: https://imgur.com/a/xBPhGdO  
  • Topics

×
×
  • Create New...

Important Information

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