示例#1
0
 public function postNewMCServer()
 {
     Input::merge(array_map('trim', Input::all()));
     $input = Input::all();
     $rules = array('serverName' => 'required|max:100', 'serverDesc' => 'required|max:255', 'serverIp' => 'max:35', 'serverPort' => 'max:6', 'serverAliase' => 'max:100', 'serverVersion' => 'required', 'banner' => 'image|image_size:=468,=60', 'g-recaptcha-response' => 'required|recaptcha');
     $v = Validator::make($input, $rules);
     if ($v->passes()) {
         if (count(DB::table('mcservers')->where('mcs_ip', '=', $input['serverIp'])->where('mcs_port', '=', $input['serverPort'])->first())) {
             return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("O IP deste servidor já está registado, entra em contacto com a staff se achas que isto é um erro");
         }
         if (mcservers::getVersion($input['serverVersion']) == false) {
             return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("Ocorreu um erro com a validação da versão");
         }
         if (isset($input['serverV'])) {
             $input['serverV'] = 1;
             if ($input['serverVPort'] == null) {
                 return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("Para ativar o Votifier tens de preencher a porta");
             }
             if ($input['serverVPKey'] == null) {
                 return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("Para ativar o Votifier tens de preencher a Public Key");
             }
         } else {
             $input['serverV'] = 0;
         }
         if (Input::hasFile('banner')) {
             $image = Input::file('banner');
             if ($image->getClientOriginalExtension() != "jpg" && $image->getClientOriginalExtension() != "png" && $image->getClientOriginalExtension() != "gif") {
                 return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("As extenções permitidas para os banners são .jpg, .png e .gif");
             }
         }
         if (!mcservers::isOnline($input['serverIp'], $input['serverPort'])) {
             return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors("O servidor precisa de estar online para poder ser registado");
         }
         DB::table('mcservers')->insert(array('mcs_uid' => Auth::user()->id, 'mcs_name' => $input['serverName'], 'mcs_desc' => $input['serverDesc'], 'mcs_website' => $input['serverSite'], 'mcs_msg' => $input['serverMsg'], 'mcs_ip' => $input['serverIp'], 'mcs_port' => $input['serverPort'], 'mcs_aliase' => $input['serverAliase'], 'mcs_version' => $input['serverVersion'], 'mcs_votifier' => $input['serverV'], 'mcs_vport' => $input['serverVPort'], 'mcs_votifierkey' => $input['serverVPKey']));
         $id = DB::table('mcservers')->where('mcs_ip', '=', $input['serverIp'])->where('mcs_port', '=', $input['serverPort'])->first();
         utilities::log("New Minecraft Server " . $id->mcs_id);
         if (Input::hasFile('banner')) {
             $filename = $id->mcs_id . '.' . $image->getClientOriginalExtension();
             $publicpath = public_path() . '/resources/images/minecraft/banners/' . $filename;
             if ($image->getClientOriginalExtension() == "jpg") {
                 $newImage = imagecreatefromjpeg(Input::file('banner'));
                 imagejpeg($newImage, public_path() . "/resources/images/minecraft/banners/" . $id->mcs_id . ".jpg", 100);
             } elseif ($image->getClientOriginalExtension() == "png") {
                 $newImage = imagecreatefrompng(Input::file('banner'));
                 imagejpeg($newImage, public_path() . "/resources/images/minecraft/banners/" . $id->mcs_id . ".png", 100);
             } elseif ($image->getClientOriginalExtension() == "gif") {
                 $newImage = imagecreatefromgif(Input::file('banner'));
                 imagejpeg($newImage, public_path() . "/resources/images/minecraft/banners/" . $id->mcs_id . ".gif", 100);
             }
         }
         return Redirect::to(URL::to("/panel/servers"))->With('success', 'Servidor Adicionado.');
     } else {
         return Redirect::to(URL::to("/panel/minecraft/new"))->withInput()->WithErrors($v);
     }
 }