public void unInvoke() { if (canBeUninvoked()) { if ((affected != null) && (affected instanceof MOB)) { MOB mob = (MOB) affected; if ((building != null) && (!aborted)) { if (messedUp) { if (activity == CraftingActivity.MENDING) messedUpCrafting(mob); else if (activity == CraftingActivity.LEARNING) { commonEmote(mob, "<S-NAME> fail(s) to learn how to make " + building.name() + "."); building.destroy(); } else if (activity == CraftingActivity.REFITTING) commonEmote(mob, "<S-NAME> mess(es) up refitting " + building.name() + "."); else commonEmote(mob, "<S-NAME> mess(es) up weaving " + building.name() + "."); } else { if (activity == CraftingActivity.MENDING) building.setUsesRemaining(100); else if (activity == CraftingActivity.LEARNING) { deconstructRecipeInto(building, recipeHolder); building.destroy(); } else if (activity == CraftingActivity.REFITTING) { building.basePhyStats().setHeight(0); building.recoverPhyStats(); } else { dropAWinner(mob, building); if (key != null) { dropAWinner(mob, key); if (building instanceof Container) key.setContainer((Container) building); } } } } building = null; key = null; activity = CraftingActivity.CRAFTING; } } super.unInvoke(); }