Files
jabber.space/src/content/docs/guides/chat-room-configuration-and-administration.md
2025-07-09 12:25:44 +02:00

180 lines
4.5 KiB
Markdown

---
title: Chat Room Configuration and Administration
description: A console-based XMPP client for power users.
sidebar:
order: 10
---
## Creating a room
Chat rooms are created when you join a room that does not yet exist, using the [`/join`](/command-reference#join) command.
If the server only supports an older version of the groupchat protocol, no further action is required, and other users may join the room.
Servers supporting <a href="http://xmpp.org/extensions/xep-0045.html" target="_blank" rel="noopener noreferrer">xep-0045</a> will create the room, which will be locked until the room has been configured, or the default configuration has been accepted.
To accept the default configuration and unlock the room:
```bash
/room accept
```
To view and edit the room configuration (see the next section for details):
```bash
/room config
```
To cancel room creation and destroy the room:
```bash
/room destroy
```
## Configuring a room
At any stage, users with appropriate privileges may configure a room with the following command:
```bash
/room config
```
A new window will be opened, and the room configuration form displayed. Each field in the form is given a tag (e.g. "field2").
![CProof room configuration](@assets/roomconfigform.png)
Form fields can be manipulated using the field tag and the value to set, add or remove depending on the field type. For example:
```bash
/field1 "New room name"
/field3 off
/field5 remove visitor
/field13 anyone
/field18 add anotheruser@openfire.local
```
For more information on how to manipulate a specific field, use the /form help command specifying the field tag, e.g.:
```bash
/form help field12
```
At any time whilst the form is being edited, the latest values can be shown with:
```bash
/form show
```
To save the changes:
```bash
/form submit
```
To discard the changes:
```bash
/form cancel
```
## Destroying a room
If a user has appropriate privileges a room can be destroyed at any time using the following command:
```bash
/room destroy
```
## Kicking occupants
Users with appropriate privileges may kick occupants from a room:
```bash
/kick nova
```
An optional reason may be supplied:
```bash
/kick nova Please do not use foul language.
```
## Banning users
Users with appropriate privileges may ban users permanently from a room, banning is carried out using the users Jabber ID rather than their nickname in the room:
```bash
/ban molly@chat.org
```
An optional reason may be supplied:
```bash
/ban molly@chat.org You may not enter this room anymore.
```
## Managing occupant roles
Roles specify an occupant's privileges within a room for the duration of one particular visit to that room. The possible roles, and the privileges associated with them are defined in <a href="http://xmpp.org/extensions/xep-0045.html#roles" target="_blank" rel="noopener noreferrer">xep-0045</a>.
Roles are set using an occupant's room nickname, the user must have the appropriate privileges to run the following commands.
To show occupants of all roles:
```bash
/role list
```
To show occupants with a specific role:
```bash
/role list moderator
/role list participant
/role list visitor
```
To change an occupant's role, for example to set the occupant with nick _bobmould_ to have role _participant_:
```bash
/role set participant bobmould
```
An optional reason may be specified:
```bash
/role set participant bobmould You may now speak!
```
## Managing user affiliations
Affiliations specify a user's privileges for a room across visits to that room. The possible affiliations, and the privileges associated with them are defined in <a href="http://xmpp.org/extensions/xep-0045.html#affil" target="_blank" rel="noopener noreferrer">xep-0045</a>.
Affiliations are set using a user's JID, the user must have the appropriate privileges to run the following commands.
To show users of all affiliations:
```bash
/affiliation list
```
To show users with a specific affiliation:
```bash
/affiliation list owner
/affiliation list admin
/affiliation list member
/affiliation list outcast
```
To change a user's affiliation, for example to set the user with JID *bob_mould@chat.org* to have affiliation member:
```bash
/affiliation set member bob_mould@chat.org
```
An optional reason may be specified:
```bash
/affiliation set member bob_mould@chat.org Because you come here so often.
```