id)->where('created_at', '>=', Carbon::now()->subSeconds(2))->first(); if ($checkSendRate) { return 'Wait 2 Seconds Between Posts Please'; } if (Auth::user()->can_chat == 0) { return 'Your Chat Banned'; } $v = Validator::make(Request::all(), [ 'message' => 'required|min:1|regex:/^[(a-zA-Z\-)]+$/u' ]); if ($v->fails()) { Toastr::error('There was a error with your input!', 'Error!', ['options']); } if (Request::ajax()) { preg_match_all('/(@\w+)/', Request::get('message'), $mentions); $mentionIDs = []; foreach ($mentions[0] as $mention) { $findUser = User::where('username', 'LIKE', '%' . str_replace('@', '', $mention) . '%')->first(); if (!empty($findUser->id)) { $mentionIDs[] = $findUser['id']; } } $mentions = implode(',', $mentionIDs); if (count($mentions) > 0) { $insertMessage = Shoutbox::create(['user' => Auth::user()->id, 'message' => Request::get('message'), 'mentions' => $mentions]); } else { $insertMessage = Shoutbox::create(['user' => Auth::user()->id, 'message' => Request::get('message')]); } if (Auth::user()->image != null) { $flag = true; $avatar = ''; } else { $flag = true; $avatar = ''; } if (Auth::user()->isOnline()) { $flag = true; $online = ''; } else { $flag = true; $online = ''; } $appurl = env('APP_URL', 'http://unit3d.site'); $data = '
  • ' . ($flag ? $avatar : "") . '

     username . '.' . Auth::user()->id . '\'>' . Auth::user()->username . ' ' . ($flag ? $online : "") . '  ' . Carbon::now()->diffForHumans() . '

    ' . e(Request::get('message')) . '

  • '; Cache::forget('shoutbox_messages'); return Response::json(['success' => true, 'data' => $data]); } } /** * Fetch Shout * * */ public function fetch($after = null) { if (Request::ajax()) { $getData = Cache::remember('shoutbox_messages', 1440, function () { return Shoutbox::orderBy('created_at', 'desc')->take(50)->get(); }); $getData = $getData->reverse(); $next_batch = null; if ($getData->count() !== 0) { $next_batch = $getData->last()->id; } if ($after !== null) { $getData = $getData->filter(function ($value, $key) use ($after) { return $value->id > $after; }); } $data = []; $flag = false; foreach ($getData as $messages) { $class = ''; if (in_array(Auth::user()->id, explode(',', $messages->mentions))) { $class = 'mentioned'; } if ($messages->poster->image != null) { $flag = true; $avatar = ''; } else { $flag = true; $avatar = ''; } if (Auth::user()->group->is_modo || $messages->poster->id == Auth::user()->id) { $flag = true; $appurl = env('APP_URL', 'http://unit3d.site'); $delete = 'id . '\'>'; } else { $flag = true; $delete = ''; } if ($messages->poster->isOnline()) { $flag = true; $online = ''; } else { $flag = true; $online = ''; } $appurl = env('APP_URL', 'http://unit3d.site'); $data[] = '
  • ' . ($flag ? $avatar : "") . '

     poster->username) . '.' . e($messages->poster->id) . '\'>' . e($messages->poster->username) . ' ' . ($flag ? $online : "") . '  ' . ($messages->created_at->diffForHumans()) . '

    ' . \LaravelEmojiOne::toImage(Shoutbox::getMessageHtml($messages->message)) . ' ' . ($flag ? $delete : "") . '

  • '; } return Response::json(['success' => true, 'data' => $data, 'next_batch' => $next_batch]); } } /** * Delete Shout * * @param $id */ public function deleteShout($id) { $shout = Shoutbox::find($id); if (Auth::user()->group->is_modo || Auth::user()->id == $shout->poster->id) { Shoutbox::where('id', '=', $id)->delete(); Cache::forget('shoutbox_messages'); return redirect()->back()->with(Toastr::success('Shout Has Been Deleted.', 'Yay!', ['options'])); } else { return redirect()->back()->with(Toastr::error('This is not your shout to delete.', 'Bro!', ['options'])); } } }