char *desc;
char *password;
struct channel *parent;
- bool_t temporary, noenter;
+ bool_t temporary, noenter, silent;
struct dlist node;
struct dlist subs;
struct dlist clients;
channel_t *ch = (channel_t *)client->channel;
struct dlist *itr;
- if (!client->authenticated || client->mute || client->self_mute)
+ if (!client->authenticated || client->mute || client->self_mute || ch->silent)
goto out;
packetsize = 20 + 8 + 4 + len;
chdesc->noenter = false;
else
chdesc->noenter = config_setting_get_bool(setting);
+
+ ret = snprintf(configstr, maxconfig, "channels.[%d].silent", index);
+ setting = config_lookup(&configuration, configstr);
+ if (ret >= maxconfig || ret < 0 || setting == NULL) /* Optional */
+ chdesc->silent = false;
+ else
+ chdesc->silent = config_setting_get_bool(setting);
return 0;
}
BANFILE,
SYNC_BANFILE,
OPUS_THRESHOLD,
+ SILENT_CHANNEL,
} param_t;
typedef struct {
const char *name;
const char *description;
const char *password;
- bool_t noenter;
+ bool_t noenter, silent;
} conf_channel_t;
typedef struct {
description = "Lobby channel";
},
{
+ name = "Silent";
+ parent = "Root";
+ description = "Silent channel";
+ silent = true; # Default is false
+ },
+ {
name = "Red team";
parent = "Lobby";
description = "The Red team channel";