/**
  * @param Request $request
  */
 protected function renderHelp(Request $request)
 {
     $modules = $this->getModuleCommands();
     $request->reply($request->renderTemplate('@Core/help/main.twig'))->then(function () use($modules, $request) {
         return $this->renderNextHelp($request, $modules);
     });
 }
 /**
  * @param Request $request
  */
 protected function renderStats(Request $request)
 {
     $users = $this->getUsers();
     $data = ['servers' => count($request->getDiscord()->client->guilds), 'channels' => $this->getChannelCount(), 'users' => $users->count(), 'online' => count($users->filter(function (Member $user) {
         return $user->status !== 'offline';
     })), 'channel' => $request->isPrivateMessage() ? [] : ['channels' => count($request->getServer()->channels), 'users' => count($request->getServer()->members), 'online' => count($request->getServer()->getMembersAttribute()->filter(function (Member $user) {
         return $user->status !== 'offline';
     }))]];
     $request->reply($request->renderTemplate('@Core/stats.twig', $data));
 }
 /**
  * @param Request $request
  */
 protected function renderIgnoreList(Request $request)
 {
     $ignores = $this->getManager()->getRepository('App:Ignored')->findBy(['ignored' => true]);
     foreach ($ignores as &$ignored) {
         if ($ignored instanceof IgnoredChannel) {
             $ignored->name = $this->getChannelName($ignored->getIdentifier());
         }
         if ($ignored instanceof IgnoredServer) {
             $ignored->name = $this->getServerName($ignored->getIdentifier());
         }
         if ($ignored instanceof IgnoredUser) {
             $ignored->name = $this->getUserName($ignored->getIdentifier());
         }
     }
     $request->reply($request->renderTemplate('@Core/ignore/list.twig', ['ignores' => $ignores]));
 }
 /**
  * @param Request $request
  */
 protected function renderModuleList(Request $request)
 {
     $request->reply($request->renderTemplate('@Core/module/list.twig', ['server' => $request->getServerManager()->getDatabaseServer()]));
 }