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 = ''; } $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() { if (Request::ajax()) { $getData = Cache::remember('shoutbox_messages', 1440, function () { return Shoutbox::orderBy('created_at', 'desc')->take(50)->get(); }); $getData = $getData->reverse(); $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) { $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 = ''; } $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]); } } /** * Delete Shout * * @param $id */ public function deleteShout($id) { if (Auth::user()->group->is_modo) { $shout = Shoutbox::find($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'])); } } }