Jump to content

Hugman

Members
  • Posts

    18
  • Joined

  • Last visited

Everything posted by Hugman

  1. So, I want to create a new way to store my items. Essentially, new armor slots, called the "Outfit". I thought I'd need to start with the GUI. So I did this, and ran into some issues. Basically, I almost did a clone of the basic player inventory. However, I removed the crafting grid and for some reason that led all the other slots to offset by 5 when clicking (this is logic), however I don't understand whatever value was used to create this issue. Links: OutfitScreen.java OutfitContainer.java
  2. Okay, it works now. For anyone interested, here's my class: public final class MoveFiles { public static void copyToWorld(String dir, String file, int dim) throws IOException { InputStream FROM = MoveFiles.class.getClassLoader().getResourceAsStream("assets/mubble/worlds/" + dir + "/" + file); Path TO = new File(Minecraft.getMinecraft().gameDir + "/saves/" + Minecraft.getMinecraft().getIntegratedServer().getFolderName(), "/DIM" + dim + "/" + file).toPath(); CopyOption[] options = new CopyOption[] { }; Path parentDir = TO.getParent(); if (!Files.exists(parentDir)) Files.createDirectories(parentDir); if (Files.exists(TO)) return; Files.copy(FROM, TO, options); } }
  3. Okay so apparently InputStream FROM = CopyFiles.class.getClassLoader().getResourceAsStream("assets/mubble/worlds/" + dir + "/" + file); seems to work, but now the game crashes because the StandardCopyOption.COPY_ATTRIBUTES is not supported, should I just remove it?
  4. So at the end, how the FROM variable will look like? I'm sorry, I still don't really understand from which class I must do the getResourceAsStream neither what to put in it. Also, my region folder is located here:
  5. Following what you've said,here's my new-new method: public final class CopyFiles { public static void toWorld(String dir, String file, int dim) throws IOException { InputStream FROM = CopyFiles.class.getResourceAsStream("assets/mubble/worlds" + dir + "/" + file); //Path FROM = new File(new ResourceLocation(Reference.MODID + ":worlds/" + dir + "/" + file).getPath()).toPath(); Path TO = new File(DimensionManager.getCurrentSaveRootDirectory(), "DIM-64/" + file).toPath(); CopyOption[] options = new CopyOption[] { StandardCopyOption.COPY_ATTRIBUTES }; Files.copy(FROM, TO, options); } } The game crashes, FROM is null. I don't think I understood how to use getResourceAsStream, could you explain please?
  6. Hey again! I actually progressed very well since yetersday and found a way to do it properly, but I still need to solve an issue. Firstly, here's my new method: public final class CopyFiles { public static void toWorld(String dir, String file, int dim) throws IOException { Path FROM = new File(new ResourceLocation(Reference.MODID + ":worlds/" + dir + "/" + file).getPath()).toPath(); Path TO = new File(DimensionManager.getCurrentSaveRootDirectory(), "DIM-64/" + file).toPath(); CopyOption[] options = new CopyOption[] { StandardCopyOption.COPY_ATTRIBUTES }; Files.copy(FROM, TO, options); } } But upon loading the world, the game crashes and reports: java.nio.file.NoSuchFileException: worlds\wol\region\r.0.0.mca which I interpretate as an error with the FROM variable. Anything helping would be very cool, thanks in advance. EDIT: Woops, didn't saw the thread had a second page, currently looking at what you said, this very comment is useless, do like if you didn't saw it.
  7. Yes, sure, that's what I want. public final class CopyFiles { public static void toWorld(String FROM_s) throws IOException { Path FROM = Paths.get(FROM_s); Path TO = DimensionManager.getCurrentSaveRootDirectory().toPath(); CopyOption[] options = new CopyOption[] { StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES }; Files.copy(FROM, TO, options); } } I've made this class, but now I must get the path to my map in the .jar for the var Path, how can I do this?
  8. Then I must copy the files to .minecraft\saves\<world>\DIM64, am I right?
  9. Completely editable, changes persists, like a normal dimension, but the base map is already built.
  10. No, I want to have a dimension but it's actually a pre-built map. I want to copy the dimension world files I got in the .jar to the world directory so I can actually load the map.
  11. .minecraft\saves\<world> So I can put the dimension world directory in .minecraft\saves\<world>\DIM64 (as my dimension's ID is 64)
  12. Yes, but I want this directory to be the dimension folder that is directly put into the world folder itself.
  13. Oh okay, misunderstood, got it now. But still, how may I find the world file and put it as dir in Files.createTempDirectory(dir, prefix, attrs);?
  14. I've done this FileMover class: public class FileMover { public static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs) throws IOException { return dir; } } But then? How do I get the path to the world file itself, at dir in FileMover.createTempDirectory(dir, prefix, attrs);?
  15. So I must copy the dimension worlds files to a temporary location in, for example, .minecraft/mubble/worlds, and then I must copy those files to the world file?
  16. Then it must be assets\mubble\worlds\wol?
  17. I just tried doing that, but instead got stuck in a unreal dimension with not any sun or moon, while being console-spammed of that: [File IO Thread/ERROR] [minecraft/AnvilChunkLoader]: Failed to save chunk Escaping the dimension and re-entering it results in a complete blank world. Here's the line for getSaveFolder: @Override public String getSaveFolder() { return Reference.MODID + ":worlds/wol"; } Here's the entire dimension file and the world folder.
×
×
  • Create New...

Important Information

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