1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-30 02:02:06 +01:00

Modifies the #create method so that the user leaves the room if the room already existed

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2286 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Gaston Dombiak 2004-04-07 19:52:44 +00:00 committed by gdombiak
parent 6023b4fa64
commit efa6d1ddd8

View file

@ -216,16 +216,20 @@ public class MultiUserChat {
else if (presence.getError() != null) { else if (presence.getError() != null) {
throw new XMPPException(presence.getError()); throw new XMPPException(presence.getError());
} }
// Whether the room existed before or was created, the user has joined the room
this.nickname = nickname;
joined = true;
// Look for confirmation of room creation from the server // Look for confirmation of room creation from the server
MUCUser mucUser = getMUCUserExtension(presence); MUCUser mucUser = getMUCUserExtension(presence);
if (mucUser != null && mucUser.getStatus() != null) { if (mucUser != null && mucUser.getStatus() != null) {
if ("201".equals(mucUser.getStatus().getCode())) { if ("201".equals(mucUser.getStatus().getCode())) {
// Room was created and the user has joined the room // Room was created and the user has joined the room
this.nickname = nickname;
joined = true;
return; return;
} }
} }
// We need to leave the room since it seems that the room already existed
leave();
throw new XMPPException("Creation failed - Missing acknowledge of room creation."); throw new XMPPException("Creation failed - Missing acknowledge of room creation.");
} }
@ -451,7 +455,7 @@ public class MultiUserChat {
MUCOwner iq = new MUCOwner(); MUCOwner iq = new MUCOwner();
iq.setTo(room); iq.setTo(room);
iq.setType(IQ.Type.SET); iq.setType(IQ.Type.SET);
iq.addExtension(form.getDataForm()); iq.addExtension(form.getDataFormToSend());
// Send the completed configuration form to the server. // Send the completed configuration form to the server.
connection.sendPacket(iq); connection.sendPacket(iq);