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

Error when reobfuscating with version 6.3.0.372 and MC 1.4.4


AbeJ
 Share

Recommended Posts

It's a completely clean jar, downloaded by Forge. Here's the relevant part of the output:

 

== Reobfuscating server ==
> Cleaning reobf
> Generating md5s
> Packing jar
> Reobfuscating jar
'"java" -cp "runtime/bin/retroguard.jar:lib:lib/*:jars/minecraft_server.jar" RetroGuard -notch temp/s...' failed : 1

== ERRORS FOUND ==

Unrecoverable error during obfuscation, see log file for details.
ERROR: error in opening zip file
==================

FATAL ERROR
Traceback (most recent call last):
  File "runtime/reobfuscate.py", line 53, in reobfuscate
    reobfuscate_side(commands, SERVER, reobf_all=reobf_all)
  File "/Users/abe/mcp/runtime/mcp.py", line 158, in reobfuscate_side
    commands.applyrg(side, True)
  File "/Users/abe/mcp/runtime/commands.py", line 907, in applyrg
    self.runcmd(forkcmd)
  File "/Users/abe/mcp/runtime/commands.py", line 1111, in runcmd
    raise CalledProcessError(process.returncode, forkcmd, output)
CalledProcessError: Command '"java" -cp "runtime/bin/retroguard.jar:lib:lib/*:jars/minecraft_server.jar" RetroGuard -notch temp/server_ro.cfg' returned non-zero exit status 1

 

Any ideas? I'm running Python 2.7.2, but I don't think that's important in this case.

Link to comment
Share on other sites

Well, see what the permissions are, It all works for me.

Place the valid clean jars there, and it won't overwrite them, and see if that helps.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to comment
Share on other sites

Same problem here. Linux, checked permissions, they're the same for both files. Here's what I found on my server_ro.log file:

 


# If this log is to be used for incremental obfuscation / patch generation, 
# add any '.class', '.method', '.field' and '.attribute' restrictions here:


#-DO-NOT-EDIT-BELOW-THIS-LINE------------------DO-NOT-EDIT-BELOW-THIS-LINE--
#
# RetroGuard MCP v3.6.5
#
# Logfile created on Tue Nov 20 20:22:59 BRST 2012
#
# Jar file to be obfuscated:           server_recomp.jar
# Target Jar file for obfuscated code: server_reobf.jar
# RetroGuard Script file used:         retroguard_ro.cfg
#

# Unrecoverable error during obfuscation:
# Review input jar for duplicate classes (same classfile with two different filenames).
# java.util.zip.ZipException: error in opening zip file
# 	at java.util.zip.ZipFile.open(Native Method)
# 	at java.util.zip.ZipFile.<init>(ZipFile.java:131)
# 	at java.util.zip.ZipFile.<init>(ZipFile.java:148)
# 	at COM.rl.obf.GuardDB.<init>(GuardDB.java:113)
# 	at COM.rl.obf.RetroGuardImpl.run(RetroGuardImpl.java:172)
# 	at COM.rl.obf.RetroGuardImpl.obfuscate(RetroGuardImpl.java:131)
# 	at COM.rl.obf.RetroGuardImpl.obfuscate(RetroGuardImpl.java:113)
# 	at RetroGuard.main(RetroGuard.java:90)

 

Interesting, I tried to check this server_recomp.jar file(all permissions to read, is only 22B in size(?!) ) and got this:

$ jar -tf temp/server_recomp.jar 
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at java.util.zip.ZipFile.<init>(ZipFile.java:92)
at sun.tools.jar.Main.list(Main.java:997)
at sun.tools.jar.Main.run(Main.java:242)
at sun.tools.jar.Main.main(Main.java:1167)

 

From here, I'm lost.

 

ADDENDUM: It does obfuscate the client classes, so they're there in the reobf folder. The mod works. But... I'm not sure if even in minecraft 1.3+ that's what's supposed to happen.

Link to comment
Share on other sites

Well, as of 1.4.5 we are no longer decompiling the server jar at all.

You shouldn't care about the server side obf {it shouldn't even be trying to obf it..} as your mod SHOULD be universal, if you did it right.

Still interesting that it screws up without giving a real error.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to comment
Share on other sites

I haven't ran into this issue in the wild, a few people seem to of got it but I don't think it's anything in particular to do with Forge. As we can reobf things properly.

But ya, This shouldn't be remotely a issue in 1.4.5

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

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.

Guest
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Buttons are client side only, you must send a packet to the server saying "this button was pressed."
    • Hello, I came to ask you to help me how to fix the crash at the beginning of the launch I tried to check the modpack via curseforge, I reinstalled java, I reinstalled the modpack and also I erased the cache folder of Minecraft launcher. No resolution of the problem.   The error is showing this:  "The game crashed whilst initializing game Error: java.lang.NullPointerException: Initializing game Exit code: -1" I made a pastebin link for you to see, here is the pastebin link: https://pastebin.com/dpEnzy01  
    • hi guys, i need help  with tileentitys. i have a button in my tileentity and i want if i press the butten, a function should be called up in the in the tileentityclass.  More precisely said the brewBlackout() class my Init in the Screen: @Override protected void init() { this.addButton(new ImageButton(this.guiLeft + 10, this.height + 30, 20, 18, 0, 0, 19, CONTINUE_BUTTON, (button) -> { ((ImageButton)button).setPosition(this.guiLeft + 20, this.height / 2 - 49); })); } and my tileentity package net.the_goldbeards.lootdebugs.tileentity; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.*; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.the_goldbeards.lootdebugs.init.ModBlocks; import net.the_goldbeards.lootdebugs.init.ModItems; import net.the_goldbeards.lootdebugs.init.ModTileEntities; import javax.annotation.Nonnull; public class PubTile extends TileEntity implements ITickableTileEntity { private final ItemStackHandler itemHandler = createHandler(); private final LazyOptional<IItemHandler> handler = LazyOptional.of(() -> itemHandler); public PubTile(TileEntityType<?> tileEntityTypeIn) { super(tileEntityTypeIn); } public PubTile() { this(ModTileEntities.PUB_TILE.get()); } @Override public void read(BlockState state, CompoundNBT nbt) { itemHandler.deserializeNBT(nbt.getCompound("pub")); super.read(state, nbt); } @Override public CompoundNBT write(CompoundNBT compound) { compound.put("pub", itemHandler.serializeNBT()); return super.write(compound); } private ItemStackHandler createHandler() { return new ItemStackHandler(6) { @Override protected void onContentsChanged(int slot) { brewBlackout(); markDirty(); } @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { switch (slot) { case 0: return stack.getItem() == Items.WATER_BUCKET || stack.getItem() == Items.BUCKET;//Water Insert case 1: return stack.getItem() == Items.REDSTONE;//Barley Bulb case 2: return stack.getItem() == Items.WARPED_DOOR;// Yeast Cone case 3: return stack.getItem() == Items.MAGENTA_BANNER;//Malz Stars case 4: return stack.getItem() == ModItems.BARLEY_BULB.get();//Starch Nut case 5: return stack.getItem() == ModItems.MUG.get() || stack.getItem() == ModItems.OILY_OAF.get() || stack.getItem() == ModItems.SKULL_CRUSHER.get() || stack.getItem() == ModItems.OILY_OAF.get();//Output -> Mug or Mug with Liquid default: return false; } } @Override protected int getStackLimit(int slot, @Nonnull ItemStack stack) { if (slot == 5) { return 1; } if (slot == 0) { return 5; } else { return 64; } } @Nonnull @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { if (!isItemValid(slot, stack)) { return stack; } return super.insertItem(slot, stack, simulate); } }; } @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap) { if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap); } public void brewBlackout() { boolean isWaterInSlot = this.itemHandler.getStackInSlot(0).getCount() == 1 && this.itemHandler.getStackInSlot(0).getItem() == Items.WATER_BUCKET; boolean isMugInSlot = this.itemHandler.getStackInSlot(5).getCount() == 1 && this.itemHandler.getStackInSlot(5).getItem() == ModItems.MUG.get(); boolean isIngredients = this.itemHandler.getStackInSlot(4).getCount() >= 3 && this.itemHandler.getStackInSlot(4).getItem() == ModItems.BARLEY_BULB.get(); if (isMugInSlot && isIngredients && isWaterInSlot) { this.itemHandler.getStackInSlot(0).shrink(1); this.itemHandler.insertItem(0, new ItemStack(Items.BUCKET, 1), false); this.itemHandler.getStackInSlot(4).shrink(3); this.itemHandler.getStackInSlot(5).shrink(1); this.itemHandler.insertItem(5, new ItemStack(ModBlocks.OILY_OAF.get(), 1), false); } } /* private void craft() { Inventory inv = new Inventory(itemHandler.getSlots()); for (int i = 0; i < itemHandler.getSlots(); i++) { inv.setInventorySlotContents(i, itemHandler.getStackInSlot(i)); } Optional<PubRecipe> recipe = world.getRecipeManager() .getRecipe(ModRecipeTypes.PUB_RECIPE, inv, world); recipe.ifPresent(iRecipe -> { ItemStack output = iRecipe.getRecipeOutput(); craftTheItem(output); markDirty(); }); } private void craftTheItem(ItemStack output) { itemHandler.extractItem(0, 1,false); itemHandler.insertItem(0, new ItemStack(Items.BUCKET,1),false); } */ @Override public void tick() { // if(world.isRemote) // {return;} // craft(); }  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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