Hi,
I’m trying to create persistent MUC room (stored in database).
MultiUserChat muChat = new MultiUserChat(conn, roomJid);
muChat.create(nickName);
Form form = new Form(Form.TYPE_SUBMIT);
form.setAnswer(“muc#roomconfig_persistentroom”, true);
muChat.sendConfigurationForm(form);
muChat.changeSubject(subject);
With that I’ve got an exception:
java.lang.IllegalArgumentException: Field not found for the specified variable name.
at org.jivesoftware.smackx.Form.setAnswer(Form.java:253)
What am I doing wrong?
Flow
2
You need to use the correct answer form which can be obtained by
// Get the the room’s configuration form
Form form = muc.getConfigurationForm();
// Create a new form to submit based on the original form
Form submitForm = form.createAnswerForm();
before using setAnswer()
See also: http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/ muc.html#create
1 Like
To use setAnswer() you have to actually get the form, not create it yourself.
Check the documentation on form usage.
1 Like