1. GSManager
    1. Funktionen
    2. Unterstützte Spiele
    3. Neuigkeiten
    4. Statistiken
    5. Serverliste
  2. Lexikon
  3. Filebase
  4. Entwicklung
  5. Forum
    1. Dashboard
    2. Unerledigte Themen
  6. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Dateien
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. GSManager
  2. Forum
  3. Erweiterungen
  4. Anfragen

How to make text in lowercase?

  • greu
  • 16. Juli 2018 um 09:49
Das Projekt GSManager (vormals ManuAdminMod) wurde am 01.01.2020 eingestellt - diese Internetpräsenz bleibt verfügbar, die Software wird aber nicht länger gepflegt. Vielen Dank für eure Unterstützung in den mehr als zehn vergangenen Jahren!
  • greu
    Anfänger
    Punkte
    15
    Beiträge
    2
    • 16. Juli 2018 um 09:49
    • #1



    How to make text in lowercase?

    $message = $mod->strtolower($message);

    here is the complete code

    Spoiler anzeigen

    <?php

    /*

    PLUGIN: Badwords

    ================

    Kicks player when they use bad words defined in config/plugins/badwords.lst more

    that X-Times

    Добавления от jTommy:

    1. В причине бана/кика указывается плохое слово (удобно при просмотре логов, особенно при использовании плагина logkickbans) .

    2. Теперь плагин не ищет плохие слова внутри слов. Например, выражение "4 рубля" теперь не будет считаться плохим.

    CONFIG:

    -------

    [badwords]

    enabled = 1 ;Enable plugin

    warnstokick = 3 ;Uses of badwords until kick

    mode = "kick" ;kick/ban/tempban

    kickreason = "Use of bad words (<WORD>)" ;Reason of a kick

    NAMESPACE: badwords

    Functions:

    badwords_main

    badwords_read

    badwords_playerInit

    Vars:

    $badwords_list

    */

    $mod->setDefaultCV("badwords", "enabled", 0);

    $mod->setDefaultCV("badwords", "warnstokick", 3);

    $mod->setDefaultCV("badwords", "mode", "tempban");

    $mod->setDefaultCV("badwords", "kickreason", "Use of bad words (<WORD>)");

    $mod->registerEvent("playerSay", "badwords_main");

    $mod->registerEvent("playerJoined", "badwords_playerInit");

    $mod->registerEvent("parseConfig", "badwords_read");

    badwords_read();

    //Init Players because playerJoined isn't called at startup

    array_map("badwords_playerInit", array_keys($players));

    function badwords_main($args) {

    list($guid, $message, $executed) = $args;

    global $players;

    global $mod;

    global $badwords_list;

    $delimiters = array('!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~');

    if (!$mod->getCV("badwords", "enabled")) return;

    if ($executed) return;

    if (!$badwords_list) return;

    if ($players[$guid]->isProtected()) {

    return;

    }

    // Убираем информацию о цвете текста

    $message = $mod->removecolor($message);

    // Убираем из строки все знаки препинания

    foreach($delimiters as $symb) {

    $message = str_replace($symb, '', $message);

    }

    //Слова преобразуем в нижний регистр

    $message = $mod->strtolower($message);

    // В целях отладки: Показываем игроку его же сообщение (уже после обработки)

    $players[$guid]->say($message);

    // Разбиваем строку на слова

    $mess_exp = explode(' ', $message);

    $bad = false;

    foreach($mess_exp as $word) {

    foreach($badwords_list["normal"] as $value) {

    if (!strcasecmp($word, $value)) {

    $bad = true;

    $badword = $value;

    break;

    }

    }

    }

    // foreach ($badwords_list["normal"] as $value) {

    // if (stripos($message, $value) !== false) {

    // $bad = true;

    // $badword = $value;

    // break;

    // }

    // }

    /*

    if (!$bad) {

    foreach ($badwords_list["regexp"] as $value) {

    if (preg_match("ґ".str_replace("ґ", "\\xB4", $value)."ґi", $message, $subpatterns)) {

    $bad = true;

    $badword = $subpatterns[0];

    break;

    }

    }

    }

    */

    if ($bad) {

    $players[$guid]->badwords_used ++;

    $GLOBALS['logging']->write(MOD_NOTICE, "Badwords: Player '".$players[$guid]->getName()."' used the bad word '$badword', PID: ".$players[$guid]->getPID().", GUID: $guid");

    if ($players[$guid]->badwords_used >= $mod->getCV("badwords", "warnstokick")) {

    switch ($mod->getCV("badwords", "mode")) {

    case "tempban":

    //$players[$guid]->tempBan($mod->getCV("badwords", "kickreason"));

    $players[$guid]->tempBan(str_replace("<WORD>", $badword, $mod->getCV("badwords", "kickreason")));

    break;

    case "kick":

    //$players[$guid]->kick($mod->getCV("badwords", "kickreason"));

    $players[$guid]->kick(str_replace("<WORD>", $badword, $mod->getCV("badwords", "kickreason")));

    break;

    case "ban":

    //$players[$guid]->ban($mod->getCV("badwords", "kickreason"));

    $players[$guid]->ban(str_replace("<WORD>", $badword, $mod->getCV("badwords", "kickreason")));

    break;

    }

    }

    else {

    $players[$guid]->say($mod->getLngString("usedBadWord", array("<WORD>"), array($badword)));

    }

    }

    }

    function badwords_read() {

    if (!$GLOBALS['mod']->getCV("badwords", "enabled")) {

    return;

    }

    $configdir = $GLOBALS['mod']->getConfigDir();

    global $badwords_list;

    $list = file($configdir . "/plugins/badwords.lst");

    if ($list === false) {

    $GLOBALS['logging']->write(MOD_WARNING, "Badwords: File $configdir/plugins/badwords.lst could not be opened, badwords will be disabled");

    $badwords_list = false;

    return;

    }

    $normal = array();

    $regexp = array();

    foreach ($list as $value) {

    $value = trim($value);

    if (stripos($value, "regexp:") === 0) {

    $regexp[] = substr($value, 7);

    }

    else {

    $normal[] = $value;

    }

    }

    $badwords_list = array("normal" => $normal, "regexp" => $regexp);

    }

    function badwords_playerInit($guid) {

    $GLOBALS['players'][$guid]->badwords_used = 0;

    }


  • Belstgut
    Entwickler
    Reaktionen
    53
    Punkte
    4.643
    Trophäen
    4
    Beiträge
    900
    Einträge
    2
    • 16. Juli 2018 um 17:55
    • #2

    $message = strtolower($message);

  • greu
    Anfänger
    Punkte
    15
    Beiträge
    2
    • 16. Juli 2018 um 19:24
    • #3
    Zitat von Belstgut

    $message = strtolower($message);



    it works fine, but only for the Latin alphabet, tell me how to do it for the Cyrillic?

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist.
  1. Mitarbeiter
  2. Datenschutzerklärung
  3. Nutzungsbedingungen
  4. Impressum
  5. Kontakt
Community-Software: WoltLab Suite™