Code:
#include <amxmodx>
#include <amxmisc>
// max number of words in word list
#define MAX_WORDS 192
#define word "lol"
new g_swearsNames[MAX_WORDS][32]
new g_swearsNum
public plugin_init() {
register_plugin("Swear Filter","1.0a","SuicideDog")
register_clcmd("say","swearcheck")
register_clcmd("say_team","swearcheck")
readList()
}
readList() {
new szCustomDir[64]
new filename[64]
get_customdir( szCustomDir, 63 )
format(filename, 63, "%s/swear/swearwords.ini", szCustomDir )
if(!file_exists(filename) ) {
log_message("Swear Filter: file %s not found", filename)
return
}
new iLen
while( g_swearsNum < MAX_WORDS && read_file(filename, g_swearsNum ,g_swearsNames[g_swearsNum][1],30,iLen) ) {
if( g_swearsNames[g_swearsNum][0] == ';') continue
g_swearsNames[g_swearsNum][0] = iLen
++g_swearsNum
}
log_message("Swear Filter: loaded %d words",g_swearsNum )
}
public swearcheck(id) {
new szSaid[192]
read_args(szSaid,191)
new bool:found = false
new i = 0
while ( i < g_swearsNum ) {
if ( ( containi(szSaid,g_swearsNames[i][1])) != -1 ) {
replace(szSaid, 191, g_swearsNames[i][1], word)
found = true
continue
}
++i
}
if ( found ) {
new cmd[32]
read_argv(0,cmd,31)
engclient_cmd(id,cmd,szSaid)
}
return PLUGIN_CONTINUE
}