public function postMailer(Request $request) { $this->validate($request, ['item_id' => 'required|numeric|min:1', 'quantity' => 'required|numeric|min:1', 'protection_type' => 'required|numeric|min:0', 'time_limit' => 'numeric', 'gold' => 'numeric', 'subject' => 'required', 'message' => 'required']); $api = new API(); $mail = array('title' => $request->subject, 'message' => $request->message, 'money' => $request->gold, 'item' => ['id' => $request->item_id, 'pos' => 0, 'count' => $request->quantity, 'max_count' => $request->quantity, 'data' => $request->octet ? $request->octet : NULL, 'proctype' => $request->protection_type ? $request->protection_type : 0, 'expire_date' => $request->time_limit ? time() + $request->time_limit : 0, 'guid1' => 0, 'guid2' => 0, 'mask' => $request->mask]); switch ($request->type) { //TODO Add a parameter to the success message that tells the user how many players the item was sent to or their names case 'list': $roles = explode(',', str_replace(' ', '', $request->roles)); foreach ($roles as $index => $id) { $api->sendMail($id, $mail['title'], $mail['message'], $mail['item'], $mail['money']); flash()->success(trans('management.complete.mailer.list')); } break; case 'all': $users = User::all(); foreach ($users as $user) { $roles = $api->getRoles($user->ID) ? $api->getRoles($user->ID)['roles'] : []; foreach ($roles as $role) { $api->sendMail($role['id'], $mail['title'], $mail['message'], $mail['item'], $mail['money']); } } flash()->success(trans('management.complete.mailer.all')); break; case 'online': foreach ($api->getOnlineList() as $index => $role) { $api->sendMail($role['roleid'], $mail['title'], $mail['message'], $mail['item'], $mail['money']); } flash()->success(trans('management.complete.mailer.online')); break; } return redirect()->back(); }
public function checkOnline($role) { $result = false; $api = new API(); $totalOnline = $api->getOnlineList(); foreach ($totalOnline as $online) { if ($online['roleid'] == $role) { $result = true; } } return $result; }