001/** 002 * 003 * Copyright 2003-2007 Jive Software. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package org.jivesoftware.smackx.muc; 019 020import org.jxmpp.jid.EntityFullJid; 021import org.jxmpp.jid.Jid; 022import org.jxmpp.jid.parts.Resourcepart; 023 024/** 025 * A listener that is fired anytime a participant's status in a room is changed, such as the 026 * user being kicked, banned, or granted admin permissions. 027 * 028 * @author Gaston Dombiak 029 */ 030public interface ParticipantStatusListener { 031 032 /** 033 * Called when a new room occupant has joined the room. Note: Take in consideration that when 034 * you join a room you will receive the list of current occupants in the room. This message will 035 * be sent for each occupant. 036 * 037 * @param participant the participant that has just joined the room 038 * (e.g. room@conference.jabber.org/nick). 039 */ 040 public abstract void joined(EntityFullJid participant); 041 042 /** 043 * Called when a room occupant has left the room on its own. This means that the occupant was 044 * neither kicked nor banned from the room. 045 * 046 * @param participant the participant that has left the room on its own. 047 * (e.g. room@conference.jabber.org/nick). 048 */ 049 public abstract void left(EntityFullJid participant); 050 051 /** 052 * Called when a room participant has been kicked from the room. This means that the kicked 053 * participant is no longer participating in the room. 054 * 055 * @param participant the participant that was kicked from the room 056 * (e.g. room@conference.jabber.org/nick). 057 * @param actor the moderator that kicked the occupant from the room (e.g. user@host.org). 058 * @param reason the reason provided by the actor to kick the occupant from the room. 059 */ 060 public abstract void kicked(EntityFullJid participant, Jid actor, String reason); 061 062 /** 063 * Called when a moderator grants voice to a visitor. This means that the visitor 064 * can now participate in the moderated room sending messages to all occupants. 065 * 066 * @param participant the participant that was granted voice in the room 067 * (e.g. room@conference.jabber.org/nick). 068 */ 069 public abstract void voiceGranted(EntityFullJid participant); 070 071 /** 072 * Called when a moderator revokes voice from a participant. This means that the participant 073 * in the room was able to speak and now is a visitor that can't send messages to the room 074 * occupants. 075 * 076 * @param participant the participant that was revoked voice from the room 077 * (e.g. room@conference.jabber.org/nick). 078 */ 079 public abstract void voiceRevoked(EntityFullJid participant); 080 081 /** 082 * Called when an administrator or owner banned a participant from the room. This means that 083 * banned participant will no longer be able to join the room unless the ban has been removed. 084 * 085 * @param participant the participant that was banned from the room 086 * (e.g. room@conference.jabber.org/nick). 087 * @param actor the administrator that banned the occupant (e.g. user@host.org). 088 * @param reason the reason provided by the administrator to ban the occupant. 089 */ 090 public abstract void banned(EntityFullJid participant, Jid actor, String reason); 091 092 /** 093 * Called when an administrator grants a user membership to the room. This means that the user 094 * will be able to join the members-only room. 095 * 096 * @param participant the participant that was granted membership in the room 097 * (e.g. room@conference.jabber.org/nick). 098 */ 099 public abstract void membershipGranted(EntityFullJid participant); 100 101 /** 102 * Called when an administrator revokes a user membership to the room. This means that the 103 * user will not be able to join the members-only room. 104 * 105 * @param participant the participant that was revoked membership from the room 106 * (e.g. room@conference.jabber.org/nick). 107 */ 108 public abstract void membershipRevoked(EntityFullJid participant); 109 110 /** 111 * Called when an administrator grants moderator privileges to a user. This means that the user 112 * will be able to kick users, grant and revoke voice, invite other users, modify room's 113 * subject plus all the partcipants privileges. 114 * 115 * @param participant the participant that was granted moderator privileges in the room 116 * (e.g. room@conference.jabber.org/nick). 117 */ 118 public abstract void moderatorGranted(EntityFullJid participant); 119 120 /** 121 * Called when an administrator revokes moderator privileges from a user. This means that the 122 * user will no longer be able to kick users, grant and revoke voice, invite other users, 123 * modify room's subject plus all the partcipants privileges. 124 * 125 * @param participant the participant that was revoked moderator privileges in the room 126 * (e.g. room@conference.jabber.org/nick). 127 */ 128 public abstract void moderatorRevoked(EntityFullJid participant); 129 130 /** 131 * Called when an owner grants a user ownership on the room. This means that the user 132 * will be able to change defining room features as well as perform all administrative 133 * functions. 134 * 135 * @param participant the participant that was granted ownership on the room 136 * (e.g. room@conference.jabber.org/nick). 137 */ 138 public abstract void ownershipGranted(EntityFullJid participant); 139 140 /** 141 * Called when an owner revokes a user ownership on the room. This means that the user 142 * will no longer be able to change defining room features as well as perform all 143 * administrative functions. 144 * 145 * @param participant the participant that was revoked ownership on the room 146 * (e.g. room@conference.jabber.org/nick). 147 */ 148 public abstract void ownershipRevoked(EntityFullJid participant); 149 150 /** 151 * Called when an owner grants administrator privileges to a user. This means that the user 152 * will be able to perform administrative functions such as banning users and edit moderator 153 * list. 154 * 155 * @param participant the participant that was granted administrator privileges 156 * (e.g. room@conference.jabber.org/nick). 157 */ 158 public abstract void adminGranted(EntityFullJid participant); 159 160 /** 161 * Called when an owner revokes administrator privileges from a user. This means that the user 162 * will no longer be able to perform administrative functions such as banning users and edit 163 * moderator list. 164 * 165 * @param participant the participant that was revoked administrator privileges 166 * (e.g. room@conference.jabber.org/nick). 167 */ 168 public abstract void adminRevoked(EntityFullJid participant); 169 170 /** 171 * Called when a participant changed his/her nickname in the room. The new participant's 172 * nickname will be informed with the next available presence. 173 * 174 * @param participant the participant that was revoked administrator privileges 175 * (e.g. room@conference.jabber.org/nick). 176 * @param newNickname the new nickname that the participant decided to use. 177 */ 178 public abstract void nicknameChanged(EntityFullJid participant, Resourcepart newNickname); 179 180}