s/owner/admin/ throughout the source code and docs.
This commit is contained in:
parent
f8b60fb5fd
commit
c1c91f9438
4
NEWS
4
NEWS
|
@ -22,10 +22,10 @@ new modes
|
|||
- Add cmode +J which disallows a kicked user from rejoining within 'X' seconds
|
||||
of them being kicked, where 'X' is the variable of the channel::kick_no_rejoin_time
|
||||
configuration option.
|
||||
- Add cmodes +a and +h (owner and halfop, respectively). There are 2 extra
|
||||
- Add cmodes +a and +h (admin and halfop, respectively). There are 2 extra
|
||||
prefixes to more finely-grain the status of staff members in your channels.
|
||||
They can be enabled or disabled in the configuration file with the options
|
||||
channel::use_halfop and channel::use_owner.
|
||||
channel::use_halfop and channel::use_admin.
|
||||
|
||||
new configuration options
|
||||
- auth::autojoin - This option will specify what channels users in a matching
|
||||
|
|
|
@ -372,7 +372,7 @@ channel {
|
|||
autochanmodes = "nt";
|
||||
exemptchanops = "NT";
|
||||
use_halfop = yes;
|
||||
use_owner = yes;
|
||||
use_admin = yes;
|
||||
use_invex = yes;
|
||||
use_except = yes;
|
||||
use_knock = yes;
|
||||
|
|
|
@ -749,15 +749,15 @@ channel {
|
|||
*/
|
||||
use_halfop = yes;
|
||||
|
||||
/* owner: Enable/disable channel mode +a, which adds owner,
|
||||
/* admin: Enable/disable channel mode +a, which adds admin,
|
||||
* a channel status above op that has op powers (kick, ban, mode, etc.)
|
||||
* owners can only be kicked/deownered by other owners, and may kick
|
||||
* admins can only be kicked/deadmined by other admins, and may kick
|
||||
* or deop anyone. Disabling this via rehash will cause things which
|
||||
* are rather confusing to occur, it is highly recommended to restart
|
||||
* if you wish to disable this option, though it may be enabled
|
||||
* by rehash with no problems.
|
||||
*/
|
||||
use_owner = yes;
|
||||
use_admin = yes;
|
||||
|
||||
/* invex: Enable/disable channel mode +I, a n!u@h list of masks
|
||||
* that can join a +i channel without an invite. Disabling this option
|
||||
|
|
|
@ -76,7 +76,7 @@ mo_opme(struct Client *client_p, struct Client *source_p, int parc, const char *
|
|||
{
|
||||
msptr = ptr->data;
|
||||
|
||||
if(is_chanop(msptr) || is_owner(msptr))
|
||||
if(is_chanop(msptr) || is_admin(msptr))
|
||||
{
|
||||
sendto_one_notice(source_p, ":%s Channel is not opless", parv[1]);
|
||||
return 0;
|
||||
|
|
|
@ -151,14 +151,14 @@ typedef int (*ExtbanFunc)(const char *data, struct Client *client_p,
|
|||
#define CHFL_QUIETED 0x0010 /* cached as being +q victim */
|
||||
#define ONLY_SERVERS 0x0020
|
||||
#define CHFL_HALFOP 0x0040
|
||||
#define CHFL_OWNER 0x0080
|
||||
#define CHFL_ADMIN 0x0080
|
||||
#define ONLY_OPERS 0x0100
|
||||
#define ALL_MEMBERS CHFL_PEON
|
||||
#define ONLY_CHANOPS CHFL_CHANOP
|
||||
#define ONLY_CHANOPSVOICED (CHFL_CHANOP|CHFL_VOICE)
|
||||
|
||||
#define is_chmode_h(x) ((x) && (x)->flags & CHFL_HALFOP) /* does not check if halfop is enabled, should typically not be used */
|
||||
#define is_chmode_a(x) ((x) && (x)->flags & CHFL_OWNER) /* does not check if owner is enabled, should typically not be used */
|
||||
#define is_chmode_a(x) ((x) && (x)->flags & CHFL_ADMIN) /* does not check if admin is enabled, should typically not be used */
|
||||
#define is_chanop(x) ((x) && (x)->flags & CHFL_CHANOP)
|
||||
#define is_voiced(x) ((x) && (x)->flags & CHFL_VOICE)
|
||||
#define can_send_banned(x) ((x) && (x)->flags & (CHFL_BANNED|CHFL_QUIETED))
|
||||
|
@ -238,7 +238,7 @@ extern int can_join(struct Client *source_p, struct Channel *chptr, char *key);
|
|||
extern struct membership *find_channel_membership(struct Channel *, struct Client *);
|
||||
extern const char *find_channel_status(struct membership *msptr, int combine);
|
||||
extern int is_halfop(struct membership *msptr);
|
||||
extern int is_owner(struct membership *msptr);
|
||||
extern int is_admin(struct membership *msptr);
|
||||
extern int is_any_op(struct membership *msptr);
|
||||
extern int is_chanop_voiced(struct membership *msptr);
|
||||
extern int can_kick_deop(struct membership *source, struct membership *target);
|
||||
|
|
|
@ -69,7 +69,7 @@ extern void chm_limit(struct Client *source_p, struct Channel *chptr,
|
|||
extern void chm_regonly(struct Client *source_p, struct Channel *chptr,
|
||||
int alevel, int parc, int *parn,
|
||||
const char **parv, int *errors, int dir, char c, long mode_type);
|
||||
extern void chm_owner(struct Client *source_p, struct Channel *chptr,
|
||||
extern void chm_admin(struct Client *source_p, struct Channel *chptr,
|
||||
int alevel, int parc, int *parn,
|
||||
const char **parv, int *errors, int dir, char c, long mode_type);
|
||||
extern void chm_op(struct Client *source_p, struct Channel *chptr,
|
||||
|
|
|
@ -226,7 +226,7 @@ struct config_channel_entry
|
|||
char * autochanmodes;
|
||||
char * exemptchanops;
|
||||
int use_halfop;
|
||||
int use_owner;
|
||||
int use_admin;
|
||||
int use_except;
|
||||
int use_invex;
|
||||
int use_knock;
|
||||
|
|
|
@ -505,7 +505,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
{
|
||||
if(*s == '!')
|
||||
{
|
||||
fl |= CHFL_OWNER;
|
||||
fl |= CHFL_ADMIN;
|
||||
s++;
|
||||
}
|
||||
else if(*s == '@')
|
||||
|
@ -543,7 +543,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
|
||||
if(keep_new_modes)
|
||||
{
|
||||
if(fl & CHFL_OWNER)
|
||||
if(fl & CHFL_ADMIN)
|
||||
{
|
||||
*ptr_uid++ = '!';
|
||||
len_nick++;
|
||||
|
@ -589,7 +589,7 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
/* If anyone can think of a way to do this that doesn't make babies cry
|
||||
* I would love to hear it - Taros */
|
||||
|
||||
if(fl & CHFL_OWNER)
|
||||
if(fl & CHFL_ADMIN)
|
||||
{
|
||||
*mbuf++ = 'a';
|
||||
para[pargs++] = target_p->name;
|
||||
|
@ -985,9 +985,9 @@ remove_our_modes(struct Channel *chptr, struct Client *source_p)
|
|||
/* If anyone can think of a way to do this that doesn't make babies cry
|
||||
* I would love to hear it - Taros */
|
||||
|
||||
if(is_owner(msptr))
|
||||
if(is_admin(msptr))
|
||||
{
|
||||
msptr->flags &= ~CHFL_OWNER;
|
||||
msptr->flags &= ~CHFL_ADMIN;
|
||||
lpara[count++] = msptr->client_p->name;
|
||||
*mbuf++ = 'a';
|
||||
|
||||
|
|
|
@ -597,10 +597,10 @@ static struct InfoStruct info_table[] = {
|
|||
"Enable chanmode +h (halfop)",
|
||||
},
|
||||
{
|
||||
"use_owner",
|
||||
"use_admin",
|
||||
OUTPUT_BOOLEAN_YN,
|
||||
&ConfigChannel.use_owner,
|
||||
"Enable chanmode +a (owner)",
|
||||
&ConfigChannel.use_admin,
|
||||
"Enable chanmode +a (admin)",
|
||||
},
|
||||
{
|
||||
"use_except",
|
||||
|
|
|
@ -186,7 +186,7 @@ find_channel_status(struct membership *msptr, int combine)
|
|||
|
||||
p = buffer;
|
||||
|
||||
if(is_owner(msptr))
|
||||
if(is_admin(msptr))
|
||||
{
|
||||
if(!combine)
|
||||
return "!";
|
||||
|
@ -233,18 +233,18 @@ is_halfop(struct membership *msptr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* is_owner()
|
||||
/* is_admin()
|
||||
*
|
||||
* input - membership to check for owner
|
||||
* output - 1 if the user is an owner, 0 if the user is not or owner
|
||||
* input - membership to check for admin
|
||||
* output - 1 if the user is an admin, 0 if the user is not or admin
|
||||
* is disabled.
|
||||
* side effects -
|
||||
*
|
||||
*/
|
||||
int
|
||||
is_owner(struct membership *msptr)
|
||||
is_admin(struct membership *msptr)
|
||||
{
|
||||
if(!ConfigChannel.use_owner)
|
||||
if(!ConfigChannel.use_admin)
|
||||
return 0;
|
||||
if(is_chmode_a(msptr))
|
||||
return 1;
|
||||
|
@ -255,13 +255,13 @@ is_owner(struct membership *msptr)
|
|||
/* is_any_op()
|
||||
*
|
||||
* input - membership to check for ops
|
||||
* output - 1 if the user is op, halfop, or owner, 0 elsewise
|
||||
* output - 1 if the user is op, halfop, or admin, 0 elsewise
|
||||
* side effects -
|
||||
*/
|
||||
int
|
||||
is_any_op(struct membership *msptr)
|
||||
{
|
||||
if(is_chanop(msptr) || is_halfop(msptr) || is_owner(msptr))
|
||||
if(is_chanop(msptr) || is_halfop(msptr) || is_admin(msptr))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
@ -270,13 +270,13 @@ is_any_op(struct membership *msptr)
|
|||
/* is_chanop_voiced()
|
||||
*
|
||||
* input - memebership to check for status
|
||||
* output - 1 if the user is op, halfop, owner, or voice, 0 elsewise
|
||||
* output - 1 if the user is op, halfop, admin, or voice, 0 elsewise
|
||||
* side effects -
|
||||
*/
|
||||
int
|
||||
is_chanop_voiced(struct membership *msptr)
|
||||
{
|
||||
if(is_chanop(msptr) || is_voiced(msptr) || is_halfop(msptr) || is_owner(msptr))
|
||||
if(is_chanop(msptr) || is_voiced(msptr) || is_halfop(msptr) || is_admin(msptr))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
@ -291,11 +291,11 @@ is_chanop_voiced(struct membership *msptr)
|
|||
int
|
||||
can_kick_deop(struct membership *source, struct membership *target)
|
||||
{
|
||||
if(is_chanop(source) && !is_owner(target))
|
||||
if(is_chanop(source) && !is_admin(target))
|
||||
return 1;
|
||||
else if(is_halfop(source) && !is_any_op(target))
|
||||
return 1;
|
||||
else if(is_owner(source))
|
||||
else if(is_admin(source))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
|
50
src/chmode.c
50
src/chmode.c
|
@ -91,7 +91,7 @@ construct_noparam_modes(void)
|
|||
!(chmode_table[i].set_func == chm_throttle) &&
|
||||
!(chmode_table[i].set_func == chm_key) &&
|
||||
!(chmode_table[i].set_func == chm_limit) &&
|
||||
!(chmode_table[i].set_func == chm_owner) &&
|
||||
!(chmode_table[i].set_func == chm_admin) &&
|
||||
!(chmode_table[i].set_func == chm_op) &&
|
||||
!(chmode_table[i].set_func == chm_halfop) &&
|
||||
!(chmode_table[i].set_func == chm_voice))
|
||||
|
@ -179,8 +179,8 @@ find_cflag_slot(void)
|
|||
static int
|
||||
get_channel_access(struct Client *source_p, struct membership *msptr)
|
||||
{
|
||||
if(!MyClient(source_p) || is_owner(msptr))
|
||||
return CHFL_OWNER;
|
||||
if(!MyClient(source_p) || is_admin(msptr))
|
||||
return CHFL_ADMIN;
|
||||
else if(is_chanop(msptr))
|
||||
return CHFL_CHANOP;
|
||||
else if(is_halfop(msptr))
|
||||
|
@ -505,7 +505,7 @@ chm_simple(struct Client *source_p, struct Channel *chptr,
|
|||
struct Metadata *md;
|
||||
struct DictionaryIter iter;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if (IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -794,7 +794,7 @@ chm_ban(struct Client *source_p, struct Channel *chptr,
|
|||
*errors |= errorval;
|
||||
|
||||
/* non-ops cant see +eI lists.. */
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP && mode_type != CHFL_BAN &&
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP && mode_type != CHFL_BAN &&
|
||||
mode_type != CHFL_QUIET)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
|
@ -831,7 +831,7 @@ chm_ban(struct Client *source_p, struct Channel *chptr,
|
|||
return;
|
||||
}
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -919,16 +919,16 @@ chm_ban(struct Client *source_p, struct Channel *chptr,
|
|||
}
|
||||
|
||||
void
|
||||
chm_owner(struct Client *source_p, struct Channel *chptr,
|
||||
chm_admin(struct Client *source_p, struct Channel *chptr,
|
||||
int alevel, int parc, int *parn,
|
||||
const char **parv, int *errors, int dir, char c, long mode_type)
|
||||
{
|
||||
struct membership *mstptr;
|
||||
const char *ownernick;
|
||||
const char *adminnick;
|
||||
struct Client *targ_p;
|
||||
int override = 0;
|
||||
|
||||
if(!ConfigChannel.use_owner)
|
||||
if(!ConfigChannel.use_admin)
|
||||
{
|
||||
if(*errors & SM_ERR_UNKNOWN)
|
||||
return;
|
||||
|
@ -937,7 +937,7 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
return;
|
||||
}
|
||||
|
||||
if(alevel != CHFL_OWNER)
|
||||
if(alevel != CHFL_ADMIN)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -954,17 +954,17 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
if((dir == MODE_QUERY) || (parc <= *parn))
|
||||
return;
|
||||
|
||||
ownernick = parv[(*parn)];
|
||||
adminnick = parv[(*parn)];
|
||||
(*parn)++;
|
||||
|
||||
/* empty nick */
|
||||
if(EmptyString(ownernick))
|
||||
if(EmptyString(adminnick))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), "*");
|
||||
return;
|
||||
}
|
||||
|
||||
if((targ_p = find_chasing(source_p, ownernick, NULL)) == NULL)
|
||||
if((targ_p = find_chasing(source_p, adminnick, NULL)) == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -975,7 +975,7 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
{
|
||||
if(!(*errors & SM_ERR_NOTONCHANNEL) && MyClient(source_p))
|
||||
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
|
||||
form_str(ERR_USERNOTINCHANNEL), ownernick, chptr->chname);
|
||||
form_str(ERR_USERNOTINCHANNEL), adminnick, chptr->chname);
|
||||
*errors |= SM_ERR_NOTONCHANNEL;
|
||||
return;
|
||||
}
|
||||
|
@ -1005,7 +1005,7 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
mode_changes[mode_count].override = override;
|
||||
mode_changes[mode_count++].client = targ_p;
|
||||
|
||||
mstptr->flags |= CHFL_OWNER;
|
||||
mstptr->flags |= CHFL_ADMIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1026,7 +1026,7 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
mode_changes[mode_count].override = override;
|
||||
mode_changes[mode_count++].client = targ_p;
|
||||
|
||||
mstptr->flags &= ~CHFL_OWNER;
|
||||
mstptr->flags &= ~CHFL_ADMIN;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1040,7 +1040,7 @@ chm_op(struct Client *source_p, struct Channel *chptr,
|
|||
struct Client *targ_p;
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1153,7 +1153,7 @@ chm_halfop(struct Client *source_p, struct Channel *chptr,
|
|||
return;
|
||||
}
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1257,7 +1257,7 @@ chm_voice(struct Client *source_p, struct Channel *chptr,
|
|||
struct Client *targ_p;
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1344,7 +1344,7 @@ chm_limit(struct Client *source_p, struct Channel *chptr,
|
|||
int limit;
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1411,7 +1411,7 @@ chm_throttle(struct Client *source_p, struct Channel *chptr,
|
|||
int joins = 0, timeslice = 0;
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1503,7 +1503,7 @@ chm_forward(struct Client *source_p, struct Channel *chptr,
|
|||
}
|
||||
|
||||
#ifndef FORWARD_OPERONLY
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1608,7 +1608,7 @@ chm_key(struct Client *source_p, struct Channel *chptr,
|
|||
char *key;
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1694,7 +1694,7 @@ chm_regonly(struct Client *source_p, struct Channel *chptr,
|
|||
{
|
||||
int override = 0;
|
||||
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_OWNER && alevel != CHFL_HALFOP)
|
||||
if(alevel != CHFL_CHANOP && alevel != CHFL_ADMIN && alevel != CHFL_HALFOP)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
|
@ -1834,7 +1834,7 @@ struct ChannelMode chmode_table[256] =
|
|||
{chm_nosuch, 0 },
|
||||
{chm_nosuch, 0 },
|
||||
{chm_nosuch, 0 },
|
||||
{chm_owner, 0 }, /* a */
|
||||
{chm_admin, 0 }, /* a */
|
||||
{chm_ban, CHFL_BAN }, /* b */
|
||||
{chm_simple, MODE_NOCOLOR }, /* c */
|
||||
{chm_nosuch, 0 }, /* d */
|
||||
|
|
|
@ -2271,7 +2271,7 @@ static struct ConfEntry conf_channel_table[] =
|
|||
{ "cycle_host_change", CF_YESNO, NULL, 0, &ConfigChannel.cycle_host_change },
|
||||
{ "host_in_topic", CF_YESNO, NULL, 0, &ConfigChannel.host_in_topic },
|
||||
{ "use_halfop", CF_YESNO, NULL, 0, &ConfigChannel.use_halfop },
|
||||
{ "use_owner", CF_YESNO, NULL, 0, &ConfigChannel.use_owner },
|
||||
{ "use_admin", CF_YESNO, NULL, 0, &ConfigChannel.use_admin },
|
||||
{ "use_except", CF_YESNO, NULL, 0, &ConfigChannel.use_except },
|
||||
{ "use_invex", CF_YESNO, NULL, 0, &ConfigChannel.use_invex },
|
||||
{ "use_knock", CF_YESNO, NULL, 0, &ConfigChannel.use_knock },
|
||||
|
|
|
@ -751,7 +751,7 @@ set_default_conf(void)
|
|||
ConfigChannel.autochanmodes = rb_strdup("nt");
|
||||
ConfigChannel.exemptchanops = rb_strdup("");
|
||||
ConfigChannel.use_halfop = YES;
|
||||
ConfigChannel.use_owner = YES;
|
||||
ConfigChannel.use_admin = YES;
|
||||
ConfigChannel.use_except = YES;
|
||||
ConfigChannel.use_invex = YES;
|
||||
ConfigChannel.use_knock = YES;
|
||||
|
|
|
@ -556,7 +556,7 @@ burst_TS6(struct Client *client_p)
|
|||
msptr = uptr->data;
|
||||
|
||||
tlen = strlen(use_id(msptr->client_p)) + 1;
|
||||
if(is_owner(msptr))
|
||||
if(is_admin(msptr))
|
||||
tlen++;
|
||||
if(is_chanop(msptr))
|
||||
tlen++;
|
||||
|
|
|
@ -1523,7 +1523,7 @@ change_nick_user_host(struct Client *target_p, const char *nick, const char *use
|
|||
chptr = mscptr->chptr;
|
||||
mptr = mode;
|
||||
|
||||
if(is_owner(mscptr))
|
||||
if(is_admin(mscptr))
|
||||
{
|
||||
*mptr++ = 'a';
|
||||
strcat(modeval, nick);
|
||||
|
|
|
@ -267,9 +267,9 @@ isupport_prefix(const void *ptr)
|
|||
static char result[11];
|
||||
|
||||
rb_snprintf(result, sizeof result, "(%so%sv)%s@%s+",
|
||||
ConfigChannel.use_owner ? "a" : "",
|
||||
ConfigChannel.use_admin ? "a" : "",
|
||||
ConfigChannel.use_halfop ? "h" : "",
|
||||
ConfigChannel.use_owner ? "!" : "",
|
||||
ConfigChannel.use_admin ? "!" : "",
|
||||
ConfigChannel.use_halfop ? "%" : "");
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue