// UnrealIRCd 4.0 Remote Include

include "help/help.conf";
include "modules.default.conf";
include "operclass.default.conf";
#include "badwords.conf";
#include "dccallow.conf";
// #include "spamfilter.conf";

log ircd.log {
	flags {
		errors;
		kills;
		tkl;
		server-connects;
		oper;
		sadmin-commands;
		chg-commands;
		oper-override;
		spamfilter;
	};
	maxsize 10M;
};

log users.log {
	flags {
		connects;
	};
	maxsize 10M;
};

class clients {
	pingfreq 90;
	maxclients 1000;
	sendq 200k;
	recvq 8000;
};

class opers {
	pingfreq 90;
	maxclients 50;
	sendq 1M;
	recvq 8000;
};

class servers {
	pingfreq 60;
	connfreq 15;
	maxclients 10;
	sendq 5M;
};

oper OBattler {
	mask {
		127.0.0.1;
		0::1;
		*@megutyan.ucolor.jp;
		136.243.62.27;
		2a01:4f8:212:1d1b::2;
		*.telemach.net;
	};
	password "$2y$09$7eddT9YP8n8Llz9WX5yTw.ZZal9IGKUhabjcAZEXJBIsYCyTcT2ri";
	class opers;
	operclass netadmin-with-override;
	swhois "a Network Administrator";
	snomask cDFfkejvGnNqsSo;
	vhost netadmin.doki-doki.moe;
};

oper IRCBot {
	mask {
		*;
	};
	password "$2y$09$aZmr07LVgPcxZmJM5LGcferRZycoowf1GshX6/OJiyTYd/lSV3aTC";
	class opers;
	operclass bot;
	swhois "an IRC BOT";
	modes B;
};

operclass bot {
	// Privilege-less oper class, intended solely to automatically give mode +B
	privileges {
	};
};

drpass {
	restart "wedontneednowaterletthemotherfuckerburn";
	die "burnmotherfuckerburn";
};

ban nick {
	mask "*Cadenzza*";
	reason "Abusive troll";
};

ban user {
	mask *root*@*;
	reason "Do NOT IRC as root";
};

except ban {
	mask 127.0.0.1;
};

except ban {
	mask 186.190.126.72;
};

except throttle {
	mask 127.0.0.1;
};

except throttle {
	mask 94.140.73.150;
};

except throttle {
	mask 186.190.126.72;
};

deny channel {
	channel "#*hover*";
	reason "No retards here!";
	redirect "#dokishi";
};

vhost {
	mask { *; };
	vhost JJ146209.ppp.dion.ne.jp;
	login OBattler;
	password "$2y$09$7eddT9YP8n8Llz9WX5yTw.ZZal9IGKUhabjcAZEXJBIsYCyTcT2ri" { bcrypt; };
};

badword channel {
	word *cunt*;
	replace [censored];
};

badword channel {
	word *pussy*;
	replace nice;
};

badword channel {
	word *shit*;
	replace [censored];
};

badword channel {
	word *fuck*;
	replace [censored];
};

badword channel {
	word *fug*;
	replace [censored];
};

badword channel {
	word *nigger*;
	replace African-American;
};

badword channel {
	word *chink*;
	replace Chinese;
};

badword channel {
	word *kimchee*;
	replace Korean;
};

badword channel {
	word *gringo*;
	replace American;
};

badword channel {
	word *pindos*;
	replace American;
};

badword channel {
	word *pidoras*;
	replace homosexual;
};

badword channel {
	word *fag*;
	replace homosexual;
};

badword channel {
	word *fgt*;
	replace homosexual;
};

badword channel {
	word *kaff?r*;
	replace African;
};

badword channel {
	word arse*;
	replace [censored];
};

alias nickserv {
	target nickserv;
	type services;
};

alias ns {
	target nickserv;
	type services;
};

alias q {
	target nickserv;
	type services;
};

alias chanserv {
	target chanserv;
	type services;
};

alias cs {
	target chanserv;
	type services;
};

alias r {
	target chanserv;
	type services;
};

alias botserv {
	target botserv;
	type services;
};

alias bs {
	target botserv;
	type services;
};

alias b {
	target botserv;
	type services;
};

alias statserv {
	target statserv;
	type services;
};

alias ss {
	target statserv;
	type services;
};

alias s {
	target statserv;
	type services;
};

alias denora {
	target denora;
	type services;
};

alias d {
	target denora;
	type services;
};

alias groupserv {
	target groupserv;
	type services;
};

alias gs {
	target groupserv;
	type services;
};

alias g {
	target groupserv;
	type services;
};

alias hostserv {
	target hostserv;
	type services;
};

alias hs {
	target hostserv;
	type services;
};

alias h {
	target hostserv;
	type services;
};

alias operserv {
	target operserv;
	type services;
};

alias os {
	target operserv;
	type services;
};

alias o {
	target operserv;
	type services;
};

alias cuteb0t {
	target cuteb0t;
	type normal;
};

alias cb {
	target cuteb0t;
	type normal;
};

alias c {
	target cuteb0t;
	type normal;
};

alias czechserv {
	target czechserv;
	type normal;
};

alias zs {
	target czechserv;
	type normal;
};

alias ab {
	target czechserv;
	type normal;
};

alias z {
	target czechserv;
	type normal;
};

official-channels {
	"#dokishi" { topic "Welcome to #Dokishi, the main lobby of Doki-Doki!"; };
	"#help" { topic "The official help channel, if nobody is present type /helpop helpme"; };
};

blacklist efnetrbl {
        dns {
                name rbl.efnetrbl.org;
                type record;
                reply { 1; 5; };
        };
        action kline;
        ban-time 1h;
        reason "Proxy/drone detected. Check http://rbl.efnetrbl.org/?i=%ip for details.";
};

webirc {
	mask 94.140.73.150;
	type webirc;
	password sakurapwns10;
};

set {
	maxchannelsperuser 999;
	kline-address oubattler@gmail.com;
	gline-address oubattler@gmail.com;
	modes-on-connect +ix;
	modes-on-join +tn;
	level-on-join owner;
	restrict-usermodes d;
	oper-auto-join "#opers, #services, #snotices";
	anti-spam-quit-message-time 30m;
	prefix-quit 0;
	allowed-nickchars { chinese; };
   	services-server services.doki-doki.moe;
	stats-server stats.doki-doki.moe;
	help-channel #help;
	options {
		hide-ulines;
		flat-map;
		allow-part-if-shunned;
		fail-oper-warn;
		allow-insane-bans;
	};
	network-name Doki-Doki;
	default-server lum.doki-doki.moe;
	oper-only-stats "*";
	cloak-keys {
		"TyOvJqupDIJmUrKzOpuZy5HJgp5uOSNEWPhmLDyfzGx8LedzafqjK";
		"qHRYEzuO27E3cg9pyljOYWhuyXGdwUHABa7aRSHXElQekbCJZ0lSv";
		"tk07J5f3D575qoZ01D8OHD13OOc397gNHqMB1NCueD6usH69ML2XS06g";
	};
	hiddenhost-prefix Doki;
	anti-flood {
		nick-flood 3:60;
		join-flood 3:60;
		away-flood 4:120;
	};
};

ulines {
	services.doki-doki.moe;
	stats.doki-doki.moe;
	czechserv.doki-doki.moe;
};

allow {
	ip *@*;
	class clients;
	maxperip 10;
};

