forked from iopietro/Travianz-Legacy
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Step for creating multihunter account
- added functions for creating user data
- Loading branch information
Showing
26 changed files
with
541 additions
and
3,627 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\ABData; | ||
|
||
use App; | ||
|
||
class ABDataModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'abdata'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\FData; | ||
|
||
use App; | ||
|
||
class FDataModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'fdata'; | ||
|
||
|
||
/** | ||
* @param int $type | ||
* @param int $vid | ||
*/ | ||
public function addResourceFields($type, $vid) | ||
{ | ||
$query = FALSE; | ||
switch ($type) { | ||
case 1: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 4, 4, 1, 4, 4, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 2: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 3, 4, 1, 3, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 3: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 1, 4, 1, 3, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 4: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 1, 4, 1, 2, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 5: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 1, 4, 1, 3, 1, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 6: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 4, 4, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 1, 15)"; | ||
break; | ||
case 7: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 1, 4, 4, 1, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 8: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 3, 4, 4, 1, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 9: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 3, 4, 4, 1, 1, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 10: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 3, 4, 1, 2, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
case 11: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 3, 1, 1, 3, 1, 4, 4, 3, 3, 2, 2, 3, 1, 4, 4, 2, 4, 4, 1, 15)"; | ||
break; | ||
case 12: | ||
$query = "INSERT INTO " . $this->table . " (vref, f1t, f2t, f3t, f4t, f5t, f6t, f7t, f8t, f9t, f10t, f11t, f12t, f13t, f14t, f15t, f16t, f17t, f18t, f26, f26t) values($vid, 1, 4, 1, 1, 2, 2, 3, 4, 4, 3, 3, 4, 4, 1, 4, 2, 1, 2, 1, 15)"; | ||
break; | ||
} | ||
|
||
if ($query) { | ||
$this->database->query($query); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\TData; | ||
|
||
use App; | ||
|
||
class TDataModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'tdata'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\Units; | ||
|
||
use App; | ||
|
||
class UnitsModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'units'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\User; | ||
|
||
use App; | ||
use Nette; | ||
|
||
class RegisterService | ||
{ | ||
/** | ||
* @var UserModel | ||
*/ | ||
private $userModel; | ||
/** | ||
* @var App\FrontModule\Model\WData\WDataModel | ||
*/ | ||
private $WDataModel; | ||
/** | ||
* @var App\FrontModule\Model\FData\FDataModel | ||
*/ | ||
private $FDataModel; | ||
/** | ||
* @var App\FrontModule\Model\Units\UnitsModel | ||
*/ | ||
private $unitsModel; | ||
/** | ||
* @var App\FrontModule\Model\TData\TDataModel | ||
*/ | ||
private $TDataModel; | ||
/** | ||
* @var App\FrontModule\Model\ABData\ABDataModel | ||
*/ | ||
private $ABDataModel; | ||
/** | ||
* @var App\FrontModule\Model\VData\VDataModel | ||
*/ | ||
private $VDataModel; | ||
/** | ||
* @var App\FrontModule\Model\VData\VillageService | ||
*/ | ||
private $villageService; | ||
|
||
|
||
public function __construct( | ||
UserModel $userModel, | ||
App\FrontModule\Model\WData\WDataModel $WDataModel, | ||
App\FrontModule\Model\FData\FDataModel $FDataModel, | ||
App\FrontModule\Model\Units\UnitsModel $unitsModel, | ||
App\FrontModule\Model\TData\TDataModel $TDataModel, | ||
App\FrontModule\Model\ABData\ABDataModel $ABDataModel, | ||
App\FrontModule\Model\VData\VDataModel $VDataModel, | ||
App\FrontModule\Model\VData\VillageService $villageService | ||
) { | ||
$this->userModel = $userModel; | ||
$this->WDataModel = $WDataModel; | ||
$this->FDataModel = $FDataModel; | ||
$this->unitsModel = $unitsModel; | ||
$this->TDataModel = $TDataModel; | ||
$this->ABDataModel = $ABDataModel; | ||
$this->VDataModel = $VDataModel; | ||
$this->villageService = $villageService; | ||
} | ||
|
||
|
||
public function createMultihunter($data) | ||
{ | ||
/** @var \stdClass $multihunter */ | ||
$this->userModel->update(UserModel::MULTIHUNTER_ID, [ | ||
'password' => Nette\Security\Passwords::hash($data->password), | ||
]); | ||
$multihunter = $this->userModel->get(UserModel::MULTIHUNTER_ID); | ||
|
||
/** @var \stdClass $field */ | ||
$field = $this->WDataModel->getByCoordinates(0, 0); | ||
if ($field->occupied != 0 || $field->oasistype != 0) { | ||
$this->WDataModel->setFieldTaken($field->id); | ||
$villageName = $this->villageService->getNewVillageName($multihunter); | ||
$vid = $this->VDataModel->addVillageForUser($multihunter, $field, $villageName); | ||
$this->FDataModel->addResourceFields($field->fieldtype, $vid); | ||
$this->unitsModel->add([ | ||
'vref' => $vid, | ||
]); | ||
$this->TDataModel->add([ | ||
'vref' => $vid, | ||
]); | ||
$this->ABDataModel->add([ | ||
'vref' => $vid, | ||
]); | ||
} | ||
} | ||
|
||
|
||
/** | ||
* Save registration form. | ||
* | ||
* @param \stdClass $data | ||
* @return \stdClass | ||
*/ | ||
public function registerUser($data) | ||
{ | ||
$userId = $this->userModel->add([ | ||
'email' => $data->email, | ||
'username' => $data->username, | ||
'password' => Nette\Security\Passwords::hash($data->password), | ||
]); | ||
|
||
return $this->userModel->get($userId); | ||
} | ||
|
||
|
||
/** | ||
* Handle all related to create new user. | ||
*/ | ||
public function createUser() | ||
{ | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\User; | ||
|
||
use App; | ||
|
||
class UserModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'users'; | ||
|
||
const MULTIHUNTER_ID = 5; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\VData; | ||
|
||
use App; | ||
use Dibi; | ||
|
||
class VDataModel extends App\Model\BaseModel | ||
{ | ||
protected $table = 'vdata'; | ||
|
||
/** @var int */ | ||
private $storageCapacity; | ||
/** @var int */ | ||
private $storageMultiplier; | ||
|
||
|
||
public function __construct( | ||
$storageCapacity, | ||
$storageMultiplier, | ||
Dibi\Connection $database | ||
) { | ||
$this->storageCapacity = $storageCapacity; | ||
$this->storageMultiplier = $storageMultiplier; | ||
parent::__construct($database); | ||
} | ||
|
||
|
||
public function getByWId() | ||
{ | ||
|
||
} | ||
|
||
|
||
/** | ||
* @param int $user | ||
* @return \Dibi\Row|FALSE | ||
*/ | ||
public function getByUser($user) | ||
{ | ||
return $this->database->select('*')->from($this->table) | ||
->where('owner = %i', $user) | ||
->fetch(); | ||
} | ||
|
||
|
||
/** | ||
* @param int $user | ||
* @return int|FALSE | ||
*/ | ||
public function countByUser($user) | ||
{ | ||
return $this->database->select('count(wref)')->from($this->table) | ||
->where('owner = %i', $user) | ||
->fetchSingle(); | ||
} | ||
|
||
|
||
/** | ||
* @param \stdClass $user | ||
* @param \stdClass $field | ||
* @return bool | ||
*/ | ||
public function addVillageForUser($user, $field, $villageName) | ||
{ | ||
$this->database->insert($this->table, [ | ||
'wref' => $field->id, | ||
'owner' => $user->id, | ||
'name' => $villageName, | ||
'capital' => $this->countByUser($user->id) ? TRUE : FALSE, | ||
'pop' => 2, | ||
'cp' => 1, | ||
'wood' => 750, | ||
'clay' => 750, | ||
'iron' => 750, | ||
'crop' => 750, | ||
'maxstore' => $this->storageCapacity * $this->storageMultiplier, | ||
'maxcrop' => $this->storageCapacity * $this->storageMultiplier, | ||
])->execute(); | ||
|
||
return $field->id; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<?php | ||
|
||
namespace App\FrontModule\Model\VData; | ||
|
||
use App; | ||
|
||
class VillageService | ||
{ | ||
/** | ||
* @var VDataModel | ||
*/ | ||
private $VDataModel; | ||
|
||
|
||
public function __construct( | ||
VDataModel $VDataModel | ||
) { | ||
$this->VDataModel = $VDataModel; | ||
} | ||
|
||
|
||
/** | ||
* @param \stdClass $user | ||
* @return string | ||
*/ | ||
public function getNewVillageName($user) | ||
{ | ||
$total = $this->VDataModel->countByUser($user->id); | ||
if ($total >= 1) { | ||
$villageName = $user->username . "'s village " . ($total + 1); | ||
} else { | ||
$villageName = $user->username . "'s village"; | ||
} | ||
|
||
return $villageName; | ||
} | ||
} |
Oops, something went wrong.