$xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage($l->g('nickname_empty_error'));
 } elseif (_pcpin_strlen($new_nickname_plain) < $session->_conf_all['nickname_length_min']) {
     // Nickname is too short
     $xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage(str_replace('[LENGTH]', $session->_conf_all['nickname_length_min'], $l->g('nickname_too_short_error')));
 } elseif (_pcpin_strlen($new_nickname_plain) > $session->_conf_all['nickname_length_max']) {
     // Nickname is too long
     $xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage(str_replace('[LENGTH]', $session->_conf_all['nickname_length_max'], $l->g('nickname_too_long')));
 } elseif ($nickname->_db_getList('id', 'id != ' . $nickname_id, 'nickname_plain LIKE ' . $new_nickname_plain, 1)) {
     // Nickname already exists
     $xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage(str_replace('[NICKNAME]', $new_nickname_plain, $l->g('nickname_not_available')));
     $nickname->_db_freeList();
 } elseif (false === $badword->checkString($new_nickname_plain) || false === $disallowed_name->checkString($new_nickname_plain) && $current_user->is_admin !== 'y') {
     // Nickname is not allowed
     $xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage(str_replace('[NICKNAME]', $new_nickname_plain, $l->g('nickname_not_available')));
 } else {
     // Nickname is free
     if ($nickname->updateNickname($profile_user_id, $nickname_id, $new_nickname)) {
         // Success
         $xmlwriter->setHeaderStatus(0);
         $xmlwriter->setHeaderMessage($l->g('nickname_updated'));
         // Get nicknames list
         $nicknames = $nickname->getNicknames($profile_user_id);
         foreach ($nicknames as $nickname_data) {
             $nicknames_xml[] = array('id' => $nickname_data['id'], 'nickname' => $nickname_data['nickname'], 'nickname_plain' => $nickname_data['nickname_plain'], 'default' => $nickname_data['default']);
         }
     } else {
         $message_ok = false;
     }
 }
 if (true !== $message_ok) {
     continue;
 }
 // Check message type
 switch ($type) {
     case '3001':
         // A text message
         if ($privacy == 2) {
             // PM does not needs a target room ID (will be delivered to user's room)
             $target_room_id = 0;
         }
         // Check message for containing bad words
         if (!empty($session->_conf_all['bad_language_mute']) && $current_user->is_admin !== 'y' && false === $badword->checkString($body)) {
             // Message contains bad words. Mute user.
             $current_user->globalMuteUnmute($current_user->id, 1, $session->_conf_all['bad_language_mute'], $l->g('watch_your_language'));
             $msg->addMessage(10110, 'n', 0, $l->g('server'), $session->_s_room_id, 0, $current_user->id . '/0/' . $session->_conf_all['bad_language_mute'] . '/' . $l->g('watch_your_language'), date('Y-m-d H:i:s'), 0, '');
         }
         break;
     case '10001':
         // "/clear" command
         if (empty($target_room_id)) {
             // "/clear all"
             $message_ok = $current_user->is_admin === 'y';
             if ($message_ok) {
                 // Delete all messages
                 $msg->deleteMessages(null, time());
             }
         } else {
 if ($language_id != $l->id) {
     $old_language_id = $l->id;
     if (true !== $l->setLanguage($language_id)) {
         $l->setLanguage($old_language_id);
     }
 }
 $errortext = array();
 $login = trim($login);
 $email = trim($email);
 if ($login == '') {
     $errortext[] = $l->g('username_empty');
 } elseif (_pcpin_strlen($login) < $session->_conf_all['login_length_min'] || _pcpin_strlen($login) > $session->_conf_all['login_length_max']) {
     $errortext[] = str_replace('[MIN]', $session->_conf_all['login_length_min'], str_replace('[MAX]', $session->_conf_all['login_length_max'], $l->g('username_length_error')));
 } elseif (!$current_user->checkUsernameUnique($login)) {
     $errortext[] = $l->g('username_already_taken');
 } elseif (true !== $badword->checkString($login) || true !== $disallowed_name->checkString($login)) {
     $errortext[] = $l->g('username_not_available');
 }
 if (!PCPIN_Common::checkEmail($email)) {
     $errortext[] = $l->g('email_invalid');
 } elseif (!$current_user->checkEmailUnique(0, $email)) {
     $errortext[] = $l->g('email_already_taken');
 }
 if (_pcpin_strlen($password) < 3) {
     $errortext[] = $l->g('password_too_short');
 }
 if (!empty($errortext)) {
     $xmlwriter->setHeaderStatus(1);
     $xmlwriter->setHeaderMessage('- ' . implode("\n- ", $errortext));
 } else {
     // Create user