WAT
just make field like this
private IIcon swordIcon, shieldIcon;
and
Override registerICons(IIConRegister reg)
In this method register IICons using swordIcon= rg.registerIICon("(sword location)"); etc.
Then in getIICon method, depending on state return either swordIcon or shieldIcon
Seriously, do you know basic java?
What player do you want to get the skin from? An in-game player or someone can be logged out at the time?
For the former, you can find instance of the AbstractClientPlayer for the player.
For the latter, you should download the skin manually. In this case, see SkinManager code. (especially #func_152790_a)
You can find the player(AbstractClientPlayer) from the client world, and call AbstractClientPlayer#getLocationSkin() to get the skin of the player. That also covers the exceptional cases.
Make your own (another) renderer which uses multiple models,
and substitute alternative model into the RenderLivingEntity#mainModel, It is protected field.
1. First remove this line:
private static final String __OBFID = "CL_00000397";
It is minecraft deobfuscation id, which is totally useless and unrelated with modding.
(+ Do not copy-paste code if you cant fully understand the code..)
2. Please rephrase your issue, I cant understand what is your problem.