147 lines
16 KiB
PHP
147 lines
16 KiB
PHP
<?php
|
||
|
||
/** Types
|
||
* 1. all
|
||
* 2. to
|
||
* 5. system to?
|
||
* 6. system to
|
||
* 11. ???
|
||
*/
|
||
|
||
use Core\Db;
|
||
|
||
class Chat
|
||
{
|
||
private $smilesWorld = ['laugh' => [0 => 'смеется', 1 => 'посмеялся над [*%l*]'], 'fingal' => [0 => 'трет фингал', 1 => 'щупает фингал у [*%l*]'], 'eek' => [0 => 'ошарашен', 1 => 'ошарашен действиями [*%l*]'], 'smoke' => [0 => 'закуривает', 1 => 'предлагает [*%l*] пойти покурить'], 'hi' => [0 => 'приветствует всех вокруг', 1 => 'приветствует [*%l*]'], 'bye' => [0 => 'прощается со всеми и уходит', 1 => 'прощается с [*%l*]'], 'king' => [0 => 'коронует себя :-)', 1 => 'объявляет [*%l*] своим королем!'], 'king2' => [0 => 'коронует себя :-)', 1 => 'объявляет [*%l*] своей королевой!'], 'boks2' => [0 => 'вызывает всех на поединок', 1 => 'предлагает [*%l*] дружеский матч'], 'boks' => [0 => 'обещает побить любого, кто примет вызов!', 1 => 'намекает [*%l*] на поединок'], 'gent' => [0 => 'предлагает считать себя благородным сэром', 1 => 'считает [*%l*] джельтельменом'], 'lady' => [0 => 'предлагает считать себя благородной леди', 1 => 'считает, что [*%l*] настоящая Леди'], 'tongue' => [0 => 'показывает окружающим язык', 1 => 'показывает язык [*%l*]'], 'smil' => [0 => 'болтает без умолку', 1 => 'считает, что [*%l*] говорит откровенную ерунду!'], 'ponder' => [0 => 'кое-что усиленно обдумывает', 1 => 'обещает обмозговать предложение [*%l*]'], 'bow' => [0 => 'сохраняя достоинство, кивает окружающим', 1 => 'сохраняя достоинство кивает [*%l*]'], 'angel' => [0 => 'считает себя Ангелом', 1 => 'считает [*%l*] своим Ангелом'], 'angel2' => [0 => 'грезит об Ангелах', 1 => 'думает что [*%l*] Ангел'], 'hello' => [0 => 'желает здравствовать окружающим', 1 => 'желает здравствовать [*%l*]'], 'dont' => [0 => 'рекомендует окружающим не делать этого', 1 => 'рекомендует [*%l*] не делать этого'], 'idea' => [0 => 'озарен свежей идеей!', 1 => 'предлагает [*%l*] обсудить пару идей'], 'mol' => [0 => 'преклоняется перед окружающими', 1 => 'преклоняется перед [*%l*]'], 'super' => [0 => 'считает, что мир хорош, все дамы - Леди, а Солнце - шар дающий свет!', 1 => 'фанатеет от [*%l*]'], 'beer' => [0 => 'вспоминает про припрятаный в заначке эликсир...', 1 => 'готов поделиться с [*%l*] припрятанным эликсиром!'], 'drink' => [0 => 'считает, что пора пить различные эликсиры', 1 => 'предлагает [*%l*] пойти пропустить по стаканчику эликсира'], 'baby' => [0 => 'изображает малыша', 1 => ' считает, что [*%l*] еще мал и неопытен для обоснованной критики'], 'tongue2' => [0 => ' показывает всяким врединам язык', 1 => 'показывает [*%l*] язык, проявляя недовольство'], 'sword' => [0 => 'готов сразиться в честном поединке', 1 => 'вызывает [*%l*] на честный поединок!'], 'agree' => [0 => 'пожимает руку собеседникам', 1 => 'пожимает руку [*%l*]'], 'loveya' => [0 => 'преисполнен чувства любви', 1 => 'преисполнен чувства любви к [*%l*]'], 'kiss' => [0 => 'целует всех', 1 => 'целует [*%l*]'], 'kiss2' => [0 => 'хочет нежно поцеловать кого-то...', 1 => 'нежно целует [*%l*]'], 'kiss3' => [0 => 'кое-кого целует...', 1 => 'нежно целует [*%l*]'], 'kiss4' => [0 => 'кое-кого целует...', 1 => 'хочет уединиться с [*%l*] и целоваться...'], 'rose' => [0 => 'хочет кому-то подарить розу, но стесняется...', 1 => 'дарит [*%l*] ароматную розу...'], 'love' => [0 => 'думает только о любви...', 1 => 'думает, что [loginfrom] + [*%l*]= любовь!'], 'love2' => [0 => 'мечтает о свадьбе...', 1 => 'мечтает о свадьбе с [*%l*]'], 'confused' => [0 => 'в недоумении...', 1 => 'недоумевает от [*%l*]'], 'yes' => [0 => 'кивает в знак согласия', 1 => 'кивает [*%l*] в знак согласия'], 'no' => [0 => 'мотает головой в знак протеста', 1 => 'мотает головой [*%l*] в знак протеста'], 'shuffle' => [0 => 'в смущении от таких обстоятельств', 1 => 'в смущении от [*%l*]'], 'nono' => [0 => 'выражает категорическое несогласие!', 1 => 'выражает категорическое несогласение с [*%l*]'], 'maniac' => [0 => 'знает точно наперед - сегодня кто-нибудь умрет...', 1 => 'считает, что [*%l*] пора бы уже стать жертвой маньяка...'], 'privet' => [0 => 'почтительно приветствует окружающих', 1 => 'почтительно приветствует [*%l*]'], 'ok' => [0 => 'считает, что это замечательная идея', 1 => 'считает, что [*%l*] движется в правильном направлении'], 'ninja' => [0 => 'угрожает окружающим тайным мастерством!', 1 => 'угрожает [*%l*] мастерством древних'], 'pif' => [0 => 'ищет подходящую мишень', 1 => 'думает, что сложно промахнуться по [*%l*]'], 'smash' => [0 => 'собирается крушить и ломать', 1 => 'хочет сломать пару-тройку костей у [*%l*]'], 'alien' => [0 => 'считает, что мир захватили мутанты!', 1 => ' считает, что [*%l*] еще тот мутант!'], 'pirate' => [0 => 'подумывает, кого бы ограбить!...', 1 => 'считает, что лучшей жертвы чем [*%l*], не найти!'], 'gun' => [0 => 'хочет повысить кое-кому уровень железа в организме... :gun:', 1 => 'считает, что у [*%l*] маловато железа в организме! :gun:'], 'trup' => [0 => 'падает замертво', 1 => 'считает, что [*%l*], живет слишком долго, и пора бы это исправить!'], 'mdr' => [0 => 'считает, что у него есть отличный способ решения разногласий... :mdr:', 1 => 'предлагает [*%l*] культурно отдохнуть :mdr:'], 'sneeze' => [0 => 'громко чихает', 1 => 'чихает на [*%l*], обрызгивая его слюнями с ног до головы!'], 'mad' => [0 => 'просто в бешенстве!!!', 1 => 'в бешенстве от [*%l*]!!!'], 'friday' => [0 => 'культурно отдыхает...', 1 => 'предлагает [*%l*] культурно отдохнуть'], 'cry' => [0 => 'безудержно рыдает', 1 => 'рыдает на плече у [*%l*]'], 'grust' => [0 => 'грустит...', 1 => 'грустит о [*%l*]'], 'rupor' => [0 => 'пытается докричаться до окружающих', 1 => 'пытается докричаться до [*%l*]'], 'fie' => [0 => 'умоляет: НЕТ, только не ЭТО!!!', 1 => 'умоляет [*%l*] о пощаде!'], 'nnn' => [0 => 'ничего не видит, не слышит, и никому не скажет...', 1 => 'ничего не видел, не слышал и не помнит о [*%l*]'], 'row' => [0 => 'находится в бешенстве и ищет с кем бы пообщаться...', 1 => 'собирается выяснить отношения с [*%l*]'], 'red' => [0 => 'смущаясь краснеет...', 1 => 'краснеет от [*%l*]'], 'lick' => [0 => 'облизнулся, в предвкушении', 1 => 'облизывается при виде [*%l*]'], 'help' => [0 => 'нуждается в срочной помощи!', 1 => 'просит помощи у [*%l*]'], 'wink' => [0 => 'подмигивает окружающим', 1 => 'подмигивает [*%l*]'], 'jeer' => [0 => 'посмеивается над ситуацией...', 1 => 'посмеивается над [*%l*]'], 'tease' => [0 => 'дразнится', 1 => 'дразнит [*%l*]'], 'nunu' => [0 => 'недоволен окружающими...', 1 => 'недоволен [*%l*]'], 'inv' => [0 => 'хочет найти свои зубы...', 1 => 'жалуется [*%l*] на трудности жизни инвалида...'], 'duel' => [0 => 'собирается проткнуть кое-кого...', 1 => 'вызывает [*%l*] на дуэль!'], 'susel' => [0 => 'Напевая: "эээххх ухнеееемм, да ещеее ууухнеем.." высматривает в толпе подходящий пондер...', 1 => 'предлагает [*%l*] отхватить прямо по пондеру!'], 'nun' => [0 => 'угрожает окружающим палочками для риса', 1 => 'показывает [*%l*] как надо пользоваться палочками для риса'], 'kruger' => [0 => 'ненавязчиво объясняет окружающим кого тут надо бояться :kruger:', 1 => 'демонстрирует [*%l*] нестриженные когти'], 'flowers' => [0 => 'учится выхватывать букет Ромашек-21 из-за спины одним движением', 1 => 'целует [*%l*] и дарит букет ромашек'], 'horse' => [0 => 'патрулирует границы Бойцовского Клуба', 1 => 'предлагает [*%l*] порубать всех врагов в капусту! :horse:'], 'hug' => [0 => 'готов обнять всех в комнате!', 1 => 'крепко обнимает [*%l*]'], 'str' => [0 => 'в ужасе покрывается ледяным потом!', 1 => 'в ужасе прячется от [*%l*]'], 'alch' => [0 => 'напоминает окружающим о вечных ценностях :alch:', 1 => 'предлагает [*%l*] приобщиться к вечным ценностям :alch:'], 'pal' => [0 => ' напоминает, что из под робы выпирает крест, а не что-то там! :-)', 1 => 'требует от [*%l*] предъявить документы в развернутом виде!'], 'mag' => [0 => 'читает заклинания. Вслух. По слогам.', 1 => 'произносит страшное колдунство на [*%l*]'], 'sniper' => [0 => 'изображает из себя Вильгельма Теля', 1 => 'предлагает [*%l*] поиграть в Вильгельма Теля'], 'fuck' => [0 => 'повторяет позы камасутры', 1 => 'предлагает [*%l*] повторить позы камасутры вместе'], 'rotate' => [0 => 'катается от смеха по полу', 1 => 'катается по полу от смеха над [*%l*]']];
|
||
|
||
public function expworld($txt, $vl)
|
||
{
|
||
$words = explode(' ', $txt);
|
||
$j = 0;
|
||
$i = -1;
|
||
while ($i < count($words)) {
|
||
$i++;
|
||
if (isset($words[$i]) && strlen($words[$i]) > $vl) {
|
||
$words[$i] = substr($words[$i], 0, $vl) . ' ' . substr($words[$i], $vl);
|
||
$i = 0;
|
||
$j++;
|
||
$txt = implode(' ', $words);
|
||
$words = explode(' ', $txt);
|
||
}
|
||
}
|
||
return implode(' ', $words);
|
||
}
|
||
|
||
public function str_count($str, $col)
|
||
{
|
||
if (strlen($str) > $col) {
|
||
$str = substr($str, 0, $col);
|
||
}
|
||
return ($str);
|
||
}
|
||
|
||
public function smileText($text, $tol, $room, $city)
|
||
{
|
||
$retxt = '';
|
||
$j = 0;
|
||
$txt = str_replace('/', '⁄', $text) . ' ';
|
||
|
||
if (preg_match("/⁄(.*?) /", $txt, $retxt) && isset($this->smilesWorld[$retxt[1]])) {
|
||
if ($tol == '') {
|
||
$tol = str_replace('⁄' . $retxt[1] . ' ', '', $txt);
|
||
$tol = trim($tol, ' ');
|
||
}
|
||
if ($tol == '') {
|
||
$txt = $this->smilesWorld[$retxt[1]][0];
|
||
} else {
|
||
$mbl = mysql_fetch_array(mysql_query('SELECT `online`,`id`,`login`,`room`,`city` FROM `users` WHERE `room`="' . $room . '" AND `online` > ' . (time() - 520) . ' AND `city` = "' . $city . '" AND `login`="' . mysql_real_escape_string($tol) . '" LIMIT 1'));
|
||
if (isset($mbl['id'])) {
|
||
$txt = '' . $this->smilesWorld[$retxt[1]][1] . '';
|
||
$txt = str_replace('[*%l*]', '[login:' . $tol . ']', $txt);
|
||
} else {
|
||
$txt = 'USER IS FALSE';
|
||
}
|
||
}
|
||
$j = 1;
|
||
}
|
||
|
||
if ($j == 1) {
|
||
$text = $txt;
|
||
} else {
|
||
$text = false;
|
||
}
|
||
|
||
return $text;
|
||
}
|
||
|
||
public function sendsys($text, $to = '', $color = '#933')
|
||
{
|
||
if (!$text) {
|
||
return;
|
||
}
|
||
|
||
Db::sql('insert into chat (new, text, time, type, color, `to`) values (1,?,unix_timestamp(),6,?,?)', [
|
||
trim($text), $color, $to
|
||
]);
|
||
}
|
||
|
||
public function debug($text, $isLegacyErrorMessage = false)
|
||
{
|
||
if ($isLegacyErrorMessage) {
|
||
$text = 'core' . date('#d.m.Y %H:i:s:') . "<b>$text</b>";
|
||
}
|
||
Db::sql('insert into chat (new, text, time, type, color, `to`, login) values (1,?,unix_timestamp(),3,?,?,?)', [
|
||
trim($text), 'crimson', 'Merlin', 'debugger'
|
||
]);
|
||
}
|
||
|
||
public function sendMsg(ChatMessage $chatMessage): void
|
||
{
|
||
$q = 'insert into chat(
|
||
new,
|
||
sound,
|
||
color,
|
||
city,
|
||
room,
|
||
login,
|
||
`to`,
|
||
text,
|
||
time,
|
||
type,
|
||
toChat,
|
||
spam,
|
||
invis,
|
||
da,
|
||
`delete`,
|
||
global,
|
||
molch,
|
||
typeTime,
|
||
dn,
|
||
frv
|
||
) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
|
||
$args = [
|
||
$chatMessage->getNew(),
|
||
$chatMessage->getSound(),
|
||
$chatMessage->getColor(),
|
||
$chatMessage->getCity(),
|
||
$chatMessage->getRoom(),
|
||
$chatMessage->getLogin(),
|
||
$chatMessage->getTo(),
|
||
$chatMessage->getText(),
|
||
$chatMessage->getTime(),
|
||
$chatMessage->getType(),
|
||
$chatMessage->getToChat(),
|
||
$chatMessage->getSpam(),
|
||
$chatMessage->getInvis(),
|
||
$chatMessage->getDa(),
|
||
$chatMessage->getDelete(),
|
||
$chatMessage->getGlobal(),
|
||
$chatMessage->getMolch(),
|
||
$chatMessage->getTypeTime(),
|
||
$chatMessage->getDn(),
|
||
$chatMessage->getFireworks(),
|
||
];
|
||
Db::sql($q, $args);
|
||
}
|
||
}
|