The Presence object is generated by MultiUserChat.enter() as follows:
Presence joinPresence = new Presence(Presence.Type.available);
final FullJid jid = JidCreate.fullFrom(room, nickname);
joinPresence.setTo(jid);
...
If an application wishes to change the user’s status in the MUC, it needs to call muc.changeAvailabilityStatus() on the MUC (or on all MUCs). It might be worthwhile to optimize this by allowing the client to set an initial Presence that is not the default “available” one.