📄 iqownerhandler.java
字号:
for (String jid : adminsToRemove) {
presences.addAll(room.addMember(jid, null, senderRole));
}
}
// Destroy the room if the room is no longer persistent and there are no occupants in
// the room
if (!room.isPersistent() && room.getOccupantsCount() == 0) {
room.destroyRoom(null, null);
}
}
finally {
room.lock.writeLock().unlock();
}
// Send the updated presences to the room occupants
for (Iterator it = presences.iterator(); it.hasNext();) {
room.send((Presence)it.next());
}
}
private void refreshConfigurationFormValues() {
room.lock.readLock().lock();
try {
FormField field = configurationForm.getField("muc#roomconfig_roomname");
field.clearValues();
field.addValue(room.getNaturalLanguageName());
field = configurationForm.getField("muc#roomconfig_roomdesc");
field.clearValues();
field.addValue(room.getDescription());
field = configurationForm.getField("muc#roomconfig_changesubject");
field.clearValues();
field.addValue((room.canOccupantsChangeSubject() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_maxusers");
field.clearValues();
field.addValue(Integer.toString(room.getMaxUsers()));
field = configurationForm.getField("muc#roomconfig_presencebroadcast");
field.clearValues();
for (String roleToBroadcast : room.getRolesToBroadcastPresence()) {
field.addValue(roleToBroadcast);
}
field = configurationForm.getField("muc#roomconfig_publicroom");
field.clearValues();
field.addValue((room.isPublicRoom() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_persistentroom");
field.clearValues();
field.addValue((room.isPersistent() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_moderatedroom");
field.clearValues();
field.addValue((room.isModerated() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_membersonly");
field.clearValues();
field.addValue((room.isMembersOnly() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_allowinvites");
field.clearValues();
field.addValue((room.canOccupantsInvite() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_passwordprotectedroom");
field.clearValues();
field.addValue((room.isPasswordProtected() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_roomsecret");
field.clearValues();
field.addValue(room.getPassword());
field = configurationForm.getField("muc#roomconfig_whois");
field.clearValues();
field.addValue((room.canAnyoneDiscoverJID() ? "anyone" : "moderators"));
field = configurationForm.getField("muc#roomconfig_enablelogging");
field.clearValues();
field.addValue((room.isLogEnabled() ? "1" : "0"));
field = configurationForm.getField("x-muc#roomconfig_reservednick");
field.clearValues();
field.addValue((room.isLoginRestrictedToNickname() ? "1" : "0"));
field = configurationForm.getField("x-muc#roomconfig_canchangenick");
field.clearValues();
field.addValue((room.canChangeNickname() ? "1" : "0"));
field = configurationForm.getField("x-muc#roomconfig_registration");
field.clearValues();
field.addValue((room.isRegistrationEnabled() ? "1" : "0"));
field = configurationForm.getField("muc#roomconfig_roomadmins");
field.clearValues();
for (String jid : room.getAdmins()) {
field.addValue(jid);
}
field = configurationForm.getField("muc#roomconfig_roomowners");
field.clearValues();
for (String jid : room.getOwners()) {
field.addValue(jid);
}
// Remove the old element
probeResult.remove(probeResult.element(QName.get("x", "jabber:x:data")));
// Add the new representation of configurationForm as an element
probeResult.add(configurationForm.asXMLElement());
}
finally {
room.lock.readLock().unlock();
}
}
private void init() {
Element element = DocumentHelper.createElement(QName.get("query",
"http://jabber.org/protocol/muc#owner"));
configurationForm = new XDataFormImpl(DataForm.TYPE_FORM);
configurationForm.setTitle(LocaleUtils.getLocalizedString("muc.form.conf.title"));
List params = new ArrayList();
params.add(room.getName());
configurationForm.addInstruction(LocaleUtils.getLocalizedString("muc.form.conf.instruction", params));
XFormFieldImpl field = new XFormFieldImpl("FORM_TYPE");
field.setType(FormField.TYPE_HIDDEN);
field.addValue("http://jabber.org/protocol/muc#roomconfig");
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_roomname");
field.setType(FormField.TYPE_TEXT_SINGLE);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_roomname"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_roomdesc");
field.setType(FormField.TYPE_TEXT_SINGLE);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_roomdesc"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_changesubject");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_changesubject"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_maxusers");
field.setType(FormField.TYPE_LIST_SINGLE);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_maxusers"));
field.addOption("10", "10");
field.addOption("20", "20");
field.addOption("30", "30");
field.addOption("40", "40");
field.addOption("50", "50");
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.none"), "0");
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_presencebroadcast");
field.setType(FormField.TYPE_LIST_MULTI);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_presencebroadcast"));
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.moderator"), "moderator");
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.participant"), "participant");
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.visitor"), "visitor");
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_publicroom");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_publicroom"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_persistentroom");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_persistentroom"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_moderatedroom");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_moderatedroom"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_membersonly");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_membersonly"));
configurationForm.addField(field);
field = new XFormFieldImpl();
field.setType(FormField.TYPE_FIXED);
field.addValue(LocaleUtils.getLocalizedString("muc.form.conf.allowinvitesfixed"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_allowinvites");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_allowinvites"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_passwordprotectedroom");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_passwordprotectedroom"));
configurationForm.addField(field);
field = new XFormFieldImpl();
field.setType(FormField.TYPE_FIXED);
field.addValue(LocaleUtils.getLocalizedString("muc.form.conf.roomsecretfixed"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_roomsecret");
field.setType(FormField.TYPE_TEXT_PRIVATE);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_roomsecret"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_whois");
field.setType(FormField.TYPE_LIST_SINGLE);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_whois"));
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.moderator"), "moderators");
field.addOption(LocaleUtils.getLocalizedString("muc.form.conf.anyone"), "anyone");
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_enablelogging");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_enablelogging"));
configurationForm.addField(field);
field = new XFormFieldImpl("x-muc#roomconfig_reservednick");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_reservednick"));
configurationForm.addField(field);
field = new XFormFieldImpl("x-muc#roomconfig_canchangenick");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_canchangenick"));
configurationForm.addField(field);
field = new XFormFieldImpl("x-muc#roomconfig_registration");
field.setType(FormField.TYPE_BOOLEAN);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_registration"));
configurationForm.addField(field);
field = new XFormFieldImpl();
field.setType(FormField.TYPE_FIXED);
field.addValue(LocaleUtils.getLocalizedString("muc.form.conf.roomadminsfixed"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_roomadmins");
field.setType(FormField.TYPE_JID_MULTI);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_roomadmins"));
configurationForm.addField(field);
field = new XFormFieldImpl();
field.setType(FormField.TYPE_FIXED);
field.addValue(LocaleUtils.getLocalizedString("muc.form.conf.roomownersfixed"));
configurationForm.addField(field);
field = new XFormFieldImpl("muc#roomconfig_roomowners");
field.setType(FormField.TYPE_JID_MULTI);
field.setLabel(LocaleUtils.getLocalizedString("muc.form.conf.owner_roomowners"));
configurationForm.addField(field);
// Create the probeResult and add the basic info together with the configuration form
probeResult = element;
probeResult.add(configurationForm.asXMLElement());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -