From 3c3ddc457821100bd9d84270794cccfa0018d480 Mon Sep 17 00:00:00 2001 From: Gabriel Pedro Date: Sat, 30 Jul 2022 16:53:19 -0400 Subject: [PATCH] feat: custom words blocked (#190) * Update config.php * Update validator.php * Update config.php --- config.php | 10 +++++++++- system/libs/validator.php | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/config.php b/config.php index 93228eca..49e8f128 100644 --- a/config.php +++ b/config.php @@ -314,5 +314,13 @@ $config = array( 'date_timezone' => 'Europe/Berlin', // more info at http://php.net/manual/en/timezones.php 'footer_show_load_time' => true, // display load time of the page in the footer - 'npc' => array() + 'npc' => array(), + + // character name blocked + 'character_name_blocked' => array( + 'prefix' => array(), + 'names' => array(), + 'words' => array(), + ), + ); diff --git a/system/libs/validator.php b/system/libs/validator.php index 91f71c24..eb958583 100644 --- a/system/libs/validator.php +++ b/system/libs/validator.php @@ -246,8 +246,12 @@ class Validator global $db, $config; $name_lower = strtolower($name); + $custom_first_words_blocked = []; + if (isset($config['character_name_blocked']['prefix']) && $config['character_name_blocked']['prefix']) { + $custom_first_words_blocked = $config['character_name_blocked']['prefix']; + } - $first_words_blocked = array('admin ', 'administrator ', 'gm ', 'cm ', 'god ','tutor ', "'", '-'); + $first_words_blocked = array_merge($custom_first_words_blocked, array('admin ', 'administrator ', 'gm ', 'cm ', 'god ','tutor ', "'", '-')); foreach($first_words_blocked as $word) { if($word == substr($name_lower, 0, strlen($word))) { @@ -282,7 +286,11 @@ class Validator return false; } - $names_blocked = array('admin', 'administrator', 'gm', 'cm', 'god', 'tutor'); + $custom_names_blocked = []; + if (isset($config['character_name_blocked']['names']) && $config['character_name_blocked']['names']) { + $custom_names_blocked = $config['character_name_blocked']['names']; + } + $names_blocked = array_merge($custom_names_blocked, array('admin', 'administrator', 'gm', 'cm', 'god', 'tutor')); foreach($names_blocked as $word) { if($word == $name_lower) { @@ -291,7 +299,11 @@ class Validator } } - $words_blocked = array('admin', 'administrator', 'gamemaster', 'game master', 'game-master', "game'master", '--', "''","' ", " '", '- ', ' -', "-'", "'-", 'fuck', 'sux', 'suck', 'noob', 'tutor'); + $custom_words_blocked = []; + if (isset($config['character_name_blocked']['words']) && $config['character_name_blocked']['words']) { + $custom_words_blocked = $config['character_name_blocked']['words']; + } + $words_blocked = array_merge($custom_words_blocked, array('admin', 'administrator', 'gamemaster', 'game master', 'game-master', "game'master", '--', "''","' ", " '", '- ', ' -', "-'", "'-", 'fuck', 'sux', 'suck', 'noob', 'tutor')); foreach($words_blocked as $word) { if(!(strpos($name_lower, $word) === false)) {