targetUser = User::getInfo($this->targetLogin); if (empty($this->targetUser)) { $this->status = 'Персонаж не найден!'; return; } $this->chat = new Chat(); $this->msg = new ChatMessage(); $this->msg->setType(6); $this->msg->setTypeTime(1); $this->msg->setRoom($moderatorsRoom); $this->time = new DateTime(); $this->moderation = new Moderation($this->targetUser['id']); } public function silence(int $minutes): void { if ($minutes < 1) { $this->status = self::ERROR_WRONG_DURATION; return; } $this->time->modify("+ $minutes minute"); $this->moderation->silence($this->time, $this->reason); $this->status = "Персонажу $this->targetLogin запрещено общаться в чате до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}."; $this->msg->setText("[img[items/silence.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function unsilence(): void { if ($this->targetUser['molch1'] < $this->time->getTimestamp()) { $this->status = 'Персонаж не молчит!'; return; } $this->moderation->unsilence(); $this->status = "С персонажа $this->targetLogin снят запрет на общение в чате."; $this->msg->setText("[img[items/pal_button3.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function prison(int $days): void { if ($days < 1) { $this->status = self::ERROR_WRONG_DURATION; return; } $this->time->modify("+ $days day"); $this->moderation->prison($this->time, $this->reason); Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Удаляем заявки в пещеры. $this->status = "Персонаж $this->targetLogin был отправлен в тюрьму до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}."; $this->msg->setText("[img[items/jail.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function unprison(): void { $this->moderation->unprison(); $this->status = "Персонаж $this->targetLogin был выпущен из тюрьмы."; $this->msg->setText("[img[items/jail_off.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function depersonalize(int $days): void { if ($days < 1) { $this->status = self::ERROR_WRONG_DURATION; return; } if ($this->targetUser['info_delete'] === 1 || $this->targetUser['info_delete'] >= $this->time->getTimestamp()) { $this->status = 'Персонаж уже под подозрением.'; return; } $this->time->modify("+ $days day"); $this->moderation->depersonalize($this->time, $this->reason); $this->status = "Персонаж $this->targetLogin под подозрением до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}"; $this->msg->setText("[img[items/cui.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function undepersonalize(): void { if ($this->targetUser['info_delete'] <= $this->time->getTimestamp()) { $this->status = 'Персонаж не под подозрением.'; return; } $this->moderation->undepersonalize(); $this->status = "Персонаж $this->targetLogin больше не под подозрением"; $this->msg->setText("[img[items/uncui.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function ban(): void { $this->moderation->ban($this->reason); Db::sql('delete from chat where login = ?', [$this->targetLogin]); Db::sql('insert into ban_email (email, uid, nick_name) values (?,?,?)', [$this->targetUser['mail'], $this->targetUser['id'], $this->targetLogin]); Db::sql('delete from zayvki where creator = ?', [$this->targetUser['id']]); // Удаляем заявки на бой. Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Удаляем заявки в пещеры. if (!empty($this->targetUser['battle'])) { Db::sql( 'update users left join stats on users.id = stats.id set battle = default, regHP = unix_timestamp(), team = 0, battle_yron = 0, battle_exp = 0 where users.id = ?', [$this->targetUser['id']] ); } $this->status = "Персонаж $this->targetLogin заблокирован"; $this->msg->setText("[img[items/pal_button6.gif]] $this->status"); $this->chat->sendMsg($this->msg); } public function unban(): void { if (empty($this->targetUser['banned'])) { $this->status = 'Персонаж не в блоке.'; return; } $this->moderation->unban(); Db::sql('delete from ban_email where email = ?', [$this->targetUser['mail']]); $this->status = "Персонаж $this->targetLogin разблокирован"; $this->msg->setText("[img[items/pal_button7.gif]] $this->status"); $this->chat->sendMsg($this->msg); } }