Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[SOLVED]Get the width/height of an image loaded from a resourcelocation.

Recommended Posts

Im not sure if this is the best way, but the ResourceLocation also gives u the absolute/relative path for JavaIO. so u can go ahead, load the image inside an buffered image (goolge is your friend) and call the methods for getting width and height there. but java io is expensive so dont do this a lot.

Link to post
Share on other sites

Okay, so is everything alright in this file? Because i do not have an assets folder in that folder.


package itsamysterious.mods.reallifemod;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import com.google.common.collect.ImmutableSet;

import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.DefaultResourcePack;
import net.minecraft.client.resources.FolderResourcePack;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.client.resources.IResourceManagerReloadListener;
import net.minecraft.client.resources.IResourcePack;
import net.minecraft.client.resources.data.IMetadataSection;
import net.minecraft.client.resources.data.IMetadataSerializer;
import net.minecraft.util.ResourceLocation;

public class Screenshotspack extends FolderResourcePack implements IResourcePack,IResourceManagerReloadListener{
    public static final Set defaultResourceDomains = ImmutableSet.of("images");
    public static List<String> filenames=new ArrayList<String>();
public Screenshotspack() {
	super(new File(RealLifeMod.MinecraftDirectory+"/images"));

public InputStream getInputStream(ResourceLocation p_110590_1_) throws IOException {
	File f = new File(Minecraft.getMinecraft().mcDataDir,"images");
	return new FileInputStream(RealLifeMod.MinecraftDirectory+"/images/"+p_110590_1_.getResourcePath());

public boolean resourceExists(ResourceLocation p_110589_1_) {
	return this.getResourceStream(p_110589_1_) != null;

    private InputStream getResourceStream(ResourceLocation p_110605_1_)
    	InputStream f=null;
	try {
		f = new FileInputStream(RealLifeMod.MinecraftDirectory+"/images/"+p_110605_1_.getResourcePath());
	} catch (Exception e) {
        return f;

public Set getResourceDomains() {
	return defaultResourceDomains;

public IMetadataSection getPackMetadata(IMetadataSerializer p_135058_1_, String p_135058_2_) throws IOException {
	return null;

public BufferedImage getPackImage() throws IOException {
	return null;

public String getPackName() {
	return "images";

public void onResourceManagerReload(IResourceManager resourceManager) {

Link to post
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.

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

    • Just downloaded MDK for 1.17.1, set up my project in IntelliJ IDEA Community 2021.1.3, but there's an error "Exception in thread "main" java.lang.module.ResolutionException: Module jline.terminal reads more than one module named cpw.mods.securejarhandler". Java version is 16.0.2. If I'll try to change it, there'll be new module instead of "jline.terminal". Here's the full log: Exception in thread "main" java.lang.module.ResolutionException: Module jline.terminal reads more than one module named cpw.mods.securejarhandler at java.base/java.lang.module.Resolver.resolveFail(Resolver.java:908) at java.base/java.lang.module.Resolver.checkExportSuppliers(Resolver.java:729) at java.base/java.lang.module.Resolver.finish(Resolver.java:379) at java.base/java.lang.module.Configuration.<init>(Configuration.java:140) at java.base/java.lang.module.Configuration.resolveAndBind(Configuration.java:494) at java.base/java.lang.module.Configuration.resolveAndBind(Configuration.java:298) at cpw.mods.bootstraplauncher@0.1.15/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:77) Process finished with exit code 1 Any ideas to fix it?
    • I'm trying to create a command that Changes the nbt data of the currently held item. Ive gotten to the point where everything works except for this line. EntityPlayer player= sender.getDisplayName(); @Override public void processCommand(ICommandSender sender, String[] args) { String output = String.join(" ", args); if(args.length == 0) { throw new CommandException("no name defined"); } else { EntityPlayer player= sender.getDisplayName(); ItemStack stack = player.getHeldItem(); addInformation(stack, player, output); } } public void addInformation(ItemStack istack, EntityPlayer player, String itemname) { NBTTagCompound tag = istack.stackTagCompound; if (tag == null) { tag = new NBTTagCompound(); tag.setTag("display", new NBTTagCompound()); istack.stackTagCompound = tag; } tag.getTag("display"); tag.setTag("display", new NBTTagCompound()); NBTTagCompound tagname = tag.getCompoundTag("display"); NBTTagList name = new NBTTagList(); name.appendTag(new NBTTagString("§b"+itemname)); tagname.setTag("Name", name); }  
    • How?? I don't know the method that can change time.
    • use the SleepFinishedTimeEvent and set the time in the Event to the time you want
    • I want change how is the time manipulated when player is sleeping
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.