Exemplo n.º 1
0
Arquivo: ct_msg.c Projeto: Lopo/Lotos
/* verify that mail has been sent to the address supplied */
void verify_email(UR_OBJECT user)
{
	set_crash();
if (word_count<2) {
  write_usage(user,"verify <verification code>");
  return;
  }
if (!user->email[0] || !strcmp(user->email,"#UNSET")) {
  write_user(user,"You have not yet set your email address.  You must do this first.\n");
  return;
  }
if (!strcmp(user->verify_code,"#EMAILSET")) {
  write_user(user,"You have already verified your current email address.\n");
  return;
  }
if (strcmp(user->verify_code,word[1]) || !strcmp(user->verify_code,"#NONE")) {
  write_user(user,"That does not match your verification code.  Check your code and try again.\n");
  return;
  }
strcpy(user->verify_code,"#EMAILSET");
user->mail_verified=1;
write_user(user,"\nThe verification code you gave was correct.\nYou may now use the auto-forward functions.\n\n");
if (amsys->auto_promote) check_autopromote(user, 3);
}
Exemplo n.º 2
0
Arquivo: set.c Projeto: amnuts/Amnuts
/*
 * Set the user attributes
 */
void
set_attributes(UR_OBJECT user)
{
    char name[USER_NAME_LEN + 1], *recname;
    int i, tmp;

    if (word_count < 2) {
        i = -1;
    } else {
        /* FIXME: Add abbreviated matching like help() does */
        for (i = 0; setstr[i].type; ++i) {
            if (!strcasecmp(setstr[i].type, word[1])) {
                break;
            }
        }
        if (!setstr[i].type) {
            i = -1;
        }
    }
    if (i == -1) {
        write_user(user, "Attributes you can set are:\n\n");
        for (i = 0; setstr[i].type; ++i) {
            vwrite_user(user, "~FC%s~RS : %s\n", setstr[i].type, setstr[i].desc);
        }
        write_user(user, "\n");
        return;
    }
    write_user(user, "\n");
    switch (i) {
    case SETSHOW:
        show_attributes(user);
        return;
    case SETGEND:
        *word[2] = tolower(*word[2]);
        if (*word[2] == 'm' || *word[2] == 'f' || *word[2] == 'n') {
            switch (*word[2]) {
            case 'm':
                user->gender = MALE;
                write_user(user, "Gender set to Male\n");
                break;
            case 'f':
                user->gender = FEMALE;
                write_user(user, "Gender set to Female\n");
                break;
            case 'n':
                user->gender = NEUTER;
                write_user(user, "Gender set to Unset\n");
                break;
            }
            check_autopromote(user, 1);
            return;
        }
        write_user(user, "Usage: set gender m|f|n\n");
        return;
    case SETAGE:
        if (word_count < 3) {
            write_user(user, "Usage: set age <age>\n");
            return;
        }
        tmp = atoi(word[2]);
        if (tmp < 0 || tmp > 200) {
            write_user(user,
                    "You can only set your age range between 0 (unset) and 200.\n");
            return;
        }
        user->age = tmp;
        vwrite_user(user, "Age now set to: %d\n", user->age);
        return;
    case SETWRAP:
        switch (user->wrap) {
        case 0:
            user->wrap = 1;
            write_user(user, "Word wrap now ON\n");
            break;
        case 1:
            user->wrap = 0;
            write_user(user, "Word wrap now OFF\n");
            break;
        }
        return;
    case SETEMAIL:
        strcpy(word[2], colour_com_strip(word[2]));
        if (strlen(word[2]) > 80) {
            write_user(user,
                    "The maximum email length you can have is 80 characters.\n");
            return;
        }
        if (!validate_email(word[2])) {
            write_user(user,
                    "That email address format is incorrect.  Correct format: [email protected]\n");
            return;
        }
        strcpy(user->email, word[2]);
        if (!*user->email) {
            write_user(user, "Email set to : ~FRunset\n");
        } else {
            vwrite_user(user, "Email set to : ~FC%s\n", user->email);
        }
        set_forward_email(user);
        return;
    case SETHOMEP:
        strcpy(word[2], colour_com_strip(word[2]));
        if (strlen(word[2]) > 80) {
            write_user(user,
                    "The maximum homepage length you can have is 80 characters.\n");
            return;
        }
        strcpy(user->homepage, word[2]);
        if (!*user->homepage) {
            write_user(user, "Homepage set to : ~FRunset\n");
        } else {
            vwrite_user(user, "Homepage set to : ~FC%s\n", user->homepage);
        }
        return;
    case SETHIDEEMAIL:
        switch (user->hideemail) {
        case 0:
            user->hideemail = 1;
            write_user(user, "Email now showing to only the admins.\n");
            break;
        case 1:
            user->hideemail = 0;
            write_user(user, "Email now showing to everyone.\n");
            break;
        }
        return;
    case SETCOLOUR:
        switch (user->colour) {
        case 0:
            user->colour = 1;
            write_user(user, "~FCColour now on\n");
            break;
        case 1:
            user->colour = 0;
            write_user(user, "Colour now off\n");
            break;
        }
        return;
    case SETPAGER:
        if (word_count < 3) {
            write_user(user, "Usage: set pager <length>\n");
            return;
        }
        user->pager = atoi(word[2]);
        if (user->pager < MAX_LINES || user->pager > 99) {
            vwrite_user(user,
                    "Pager can only be set between %d and 99 - setting to default\n",
                    MAX_LINES);
            user->pager = 23;
        }
        vwrite_user(user, "Pager length now set to: %d\n", user->pager);
        return;
    case SETROOM:
        switch (user->lroom) {
        case 0:
            user->lroom = 1;
            write_user(user, "You will log on into the room you left from.\n");
            break;
        case 1:
            user->lroom = 0;
            write_user(user, "You will log on into the main room.\n");
            break;
        }
        return;
    case SETFWD:
        if (!*user->email) {
            write_user(user,
                    "You have not yet set your email address - autofwd cannot be used until you do.\n");
            return;
        }
        if (!user->mail_verified) {
            write_user(user,
                    "You have not yet verified your email - autofwd cannot be used until you do.\n");
            return;
        }
        switch (user->autofwd) {
        case 0:
            user->autofwd = 1;
            write_user(user, "You will also receive smails via email.\n");
            break;
        case 1:
            user->autofwd = 0;
            write_user(user, "You will no longer receive smails via email.\n");
            break;
        }
        return;
    case SETPASSWD:
        switch (user->show_pass) {
        case 0:
            user->show_pass = 1;
            write_user(user,
                    "You will now see your password when entering it at login.\n");
            break;
        case 1:
            user->show_pass = 0;
            write_user(user,
                    "You will no longer see your password when entering it at login.\n");
            break;
        }
        return;
    case SETRDESC:
        switch (user->show_rdesc) {
        case 0:
            user->show_rdesc = 1;
            write_user(user, "You will now see the room descriptions.\n");
            break;
        case 1:
            user->show_rdesc = 0;
            write_user(user, "You will no longer see the room descriptions.\n");
            break;
        }
        return;
    case SETCOMMAND:
        switch (user->cmd_type) {
        case 0:
            user->cmd_type = 1;
            write_user(user,
                    "You will now see commands listed by functionality.\n");
            break;
        case 1:
            user->cmd_type = 0;
            write_user(user, "You will now see commands listed by level.\n");
            break;
        }
        return;
    case SETRECAP:
        if (!amsys->allow_recaps) {
            write_user(user,
                    "Sorry, names cannot be recapped at this present time.\n");
            return;
        }
        if (word_count < 3) {
            write_user(user, "Usage: set recap <name as you would like it>\n");
            return;
        }
        if (strlen(word[2]) > RECAP_NAME_LEN - 3) {
            write_user(user,
                    "The recapped name length is too long - try using fewer colour codes.\n");
            return;
        }
        recname = colour_com_strip(word[2]);
        if (strlen(recname) > USER_NAME_LEN) {
            write_user(user,
                    "The recapped name still has to match your proper name.\n");
            return;
        }
        strcpy(name, recname);
        strtolower(name);
        *name = toupper(*name);
        if (strcmp(user->name, name)) {
            write_user(user,
                    "The recapped name still has to match your proper name.\n");
            return;
        }
        strcpy(user->recap, word[2]);
        strcat(user->recap, "~RS"); /* user->recap is allways escaped with a reset to its colours... */
        strcpy(user->bw_recap, recname);
        vwrite_user(user,
                "Your name will now appear as \"%s~RS\" on the \"who\", \"examine\", tells, etc.\n",
                user->recap);
        return;
    case SETICQ:
        strcpy(word[2], colour_com_strip(word[2]));
        if (strlen(word[2]) > ICQ_LEN) {
            vwrite_user(user,
                    "The maximum ICQ UIN length you can have is %d characters.\n",
                    ICQ_LEN);
            return;
        }
        strcpy(user->icq, word[2]);
        if (!*user->icq) {
            write_user(user, "ICQ number set to : ~FRunset\n");
        } else {
            vwrite_user(user, "ICQ number set to : ~FC%s\n", user->icq);
        }
        return;
    case SETALERT:
        switch (user->alert) {
        case 0:
            user->alert = 1;
            write_user(user,
                    "You will now be alerted if anyone on your friends list logs on.\n");
            break;
        case 1:
            user->alert = 0;
            write_user(user,
                    "You will no longer be alerted if anyone on your friends list logs on.\n");
            break;
        }
        return;
    case SETREVBUF:
        switch (user->reverse_buffer) {
        case 0:
            user->reverse_buffer = 1;
            write_user(user, "~FCBuffers are now reversed\n");
            break;
        case 1:
            user->reverse_buffer = 0;
            write_user(user, "Buffers now not reversed\n");
            break;
        }
        return;
    }
}