Everything posted by Two
-
Gateway TimeOut / Install Links not working
Was just about to start a new server with friends, but nooooo... I think some kind of a backup system would be great to have, considering how important Forge is for the Minecraft community.
-
How to set mod level on commandline
I was setting the debug defines on the commandline used to start Minecraft in the Minecraft launcher as ChampionAsh535 suggested, this had zero effect. However enabling debugging in Curseforge did it. I have no idea what Curse is doing to suppress the commandlines, but if running with the Curseforge Launcher using that specific setting seems to be the only way to activate debug logs. Which is a bit odd, because it should listen to the commandline settings, especially if enforcing something like a log4j config file, but it is not. Thanks for the help!
-
How to set mod level on commandline
There is no debug log in the logs folder.
-
How to set mod level on commandline
Thank you, but this doesn't actually change anything about the log output. I also tried to set the file logger to debug, but again: no change in the log output.
-
How to set mod level on commandline
Hi, I am trying to help a modder to pin down an issue that's happening on my system and I am trying to figure out how to set the log level of forge file logging to debug. My attempts at googling and using the usual log4j settings have failed. I do not have access to the source code of the mod, so I need to set the log level on the command line.
-
Forge reobfuscation randomly fails on rock/stone
The error occurred again yesterday, and I can now say for sure that it is a re-obfuscation failure. I had just finished an update, did clean & build, tested the result in the IDE (non-obfuscated) and everything was working fine. So I copied the lib from that build to a real MC environment and it failed with the rock issue. I hit clean & build again, copied the lib again and then everything was working fine.
-
Forge reobfuscation randomly fails on rock/stone
I had this issue starting with at least Forge version 1277 and I still have the issue with 1481. You can find my mods here: https://github.com/twothe/ Affected are all mods that somehow use stone/rock as written above. I could not yet find any pattern to this, it seems to happen just randomly and does not seem to be associated to my code.
-
Forge reobfuscation randomly fails on rock/stone
I am not sure if there is even any other way. So yes: I am using the standard gradle tasks like clean and build.
-
Forge reobfuscation randomly fails on rock/stone
Whenever I have a block in my mod that uses Blocks.stone or Materials.rock reobfuscation completely randomly fails sometimes. That is: the code works, then (without any change) I do a re-compile, and the game crashes with Then I recompile the exact same code-base (without any changes) and the crash is gone. I have not seen this happen with anything but Materials.rock / Blocks.stone. This is really annoying when you do a quick recompile to change something like version number after extensive testing, upload the mod just to realize that it is crashing because of this.
-
[1.7.10] How to sync items added to inventory?
I managed to find your topic: http://www.minecraftforge.net/forum/index.php/topic,20135.0.html After some more fiddling with the way Minecraft handles worlds, I realized that the TileEntity (probably) needs to be requested as follows: - On the server: DimensionManager.getWorld(message.dimensionID) - On the client: Minecraft.getMinecraft().theWorld (not sure about this one) The client often re-creates the world around the player, i.E. if he dies, which will cause the tile entity to be re-created as well, which however - to complicate things further - is NOT the tile that is actually used in the world. Also it is unclear to me what happens if the player is in a different dimension (there is only one theWorld) and the server sends an update for that tile entity, which makes me speculate that there is a better way to do this. I'd love to get some more feedback on this if you have the time.
-
[1.7.10] How to sync items added to inventory?
Ok, I will have a look at them. Thank you.
-
[1.7.10] How to sync items added to inventory?
Which packets would that be?
-
[1.7.10] How to sync items added to inventory?
From the corresponding block to the tile entity code above: @Override public boolean onBlockActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ) { if (world.isRemote == false) { final TileEntity tileEntity = world.getTileEntity(x, y, z); if (tileEntityClass.isInstance(tileEntity)) { tileEntityClass.cast(tileEntity).giveItemsToPlayer(player); } else { FMLLog.severe("Grave TileEntity expected %s, but found %s", tileEntityClass.getName(), tileEntity == null ? "null" : tileEntity.getClass().getName()); } } return true; }
-
[1.7.10] How to sync items added to inventory?
The code that adds the items. Log output tells me that all items are properly added on the server: public void giveItemsToPlayer(final EntityPlayer player) { int count = GravesAssets.itemsPerSecond >= 0 ? GravesAssets.itemsPerSecond / TICKS_PER_SECOND : Integer.MAX_VALUE; FMLLog.info("Giving %d of %d items back to %s...", count, this.inventoryContent.size(), player.getDisplayName()); if (count == 0) { return; } InventoryContent content; final Deque<InventoryContent> notAdded = new LinkedList<InventoryContent>(); while ((count-- > 0) && ((content = this.inventoryContent.poll()) != null)) { FMLLog.info("Returning %s...", content.toString()); try { switch (content.inventoryID) { case INVENTORY_ID_VANILLA: if (player.inventory.getStackInSlot(content.slot) == null) { player.inventory.setInventorySlotContents(content.slot, content.itemStack); } else { notAdded.add(content); FMLLog.info("Failed."); } break; } } catch (Exception e) { FMLLog.warning("Failed to add item to inventory: %s\n%s", e.toString(), content.toString()); } } for (InventoryContent item : notAdded) { FMLLog.info("Adding %s...", item.toString()); if (player.inventory.addItemStackToInventory(item.itemStack) == false) { this.inventoryContent.add(item); FMLLog.info("Failed"); } } if (this.inventoryContent.isEmpty()) { FMLLog.info("All items have been returned"); this.worldObj.setBlockToAir(this.xCoord, this.yCoord, this.zCoord); } else { FMLLog.info("Items remain in grave"); this.markDirty(); } } Neither setInventorySlotContents nor addItemStackToInventory synchronize to the client.
-
[1.7.10] How to sync items added to inventory?
That is what I am doing. The client inventory however stays empty until relogging, then the items magically appear.
-
[1.7.10] How to sync items added to inventory?
I am currently trying to write a mod that sets items to specific player inventory slots (like armor) without using any containers or similar. I got that working so far using player.inventory.setInventorySlotContents(...), however the items are only visible after relogging, which tells me that I am missing something to synchronize that change to the player. How do I properly synchronize a batch change to the player's inventory?
-
How to show trace/debug log entries in output console?
In theory - that's as far as I could figure out - there needs to be a log4j.xml file somewhere, in which some handler needs to be reconfigured in some way to output trace/debug log entries on the IDE console. Italic font parts are those I wasn't able to figure out yet.
-
How to show trace/debug log entries in output console?
The benefit of not doing that is that you can leave important debug output inside the code, but have it hidden in release mode until you need it. System.out will just pollute the output.
-
How to show trace/debug log entries in output console?
I've been searching through the logging configuration for a while but can't seem to figure out how to get the trace/debug output of my mod to log on the console output (what you see when hitting 'run' in your IDE). I can see that the stuff is logged properly to the file, just not to my console. Any help would be appreciated.
-
Re: Forge: does it have viruses?
You're not sure if you can trust an official file used by thousands of people, but you do trust random people form the Internet? My advice: get a virus scanner. If you have no clue which one, try this one.
-
How to get a block's texture reliably?
Took a little more try and error, but finally I got it. For future reference, this is how you load any texture from a given block IIcon (use block.getIcon to get that icon): /* Returns the pixel data of the texture described by icon in ARGB format */ static int[] loadTexture(final IIcon icon) { try { final ResourceLocation resourceLocation = getResourceLocation(icon.getIconName()); final IResourceManager resourceManager = Minecraft.getMinecraft().getResourceManager(); final IResource resource = resourceManager.getResource(resourceLocation); final InputStream in = resource.getInputStream(); final BufferedImage image = ImageIO.read(in); return image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth()); } catch (Exception e) { FMLLog.log(Level.ERROR, e, "Unable to load texture '%s'", icon.getIconName()); } return null; } static ResourceLocation getResourceLocation(final String blockTexture) { String domain = "minecraft"; String path = blockTexture; final int domainSeparator = blockTexture.indexOf(':'); if (domainSeparator >= 0) { path = blockTexture.substring(domainSeparator + 1); if (domainSeparator > 1) { domain = blockTexture.substring(0, domainSeparator); } } final String resourcePath = "textures/blocks/" + path + ".png"; // base path and PNG are hardcoded in Minecraft return new ResourceLocation(domain.toLowerCase(), resourcePath); }
-
How to get a block's texture reliably?
Thank you, I'll give it a try.
-
How to get a block's texture reliably?
Would you have an example code for that by any chance? I am trying to figure out how to load those for a while now and can't seem to find a working example.
-
How to get a block's texture reliably?
The way I want them to use I would only read them once, then reduce them to a single pixel value and cache that. So is there a way to do that other than to use the texture memory?
-
How to run JUnit tests?
That did it, thank you very much. =)
IPS spam blocked by CleanTalk.