More comments.

This commit is contained in:
Michael Yoo 2013-11-26 15:15:24 +10:30
parent aefcab9a49
commit d2fa06cb64
2 changed files with 47 additions and 47 deletions

View File

@ -49,19 +49,14 @@ class PermissionsAPI{
{
ServerAPI::request()->api->addHandler("player.connect", function ($player)//Use a better event than player.connect. Player.create maybe?
{
/** @var array $newPermission */
$newPermission = ServerAPI::request()->api->dhandle("permissions.request", array('player' => $player));
if($newPermission instanceof Permission){
$player->permission = $newPermission;//This is a class with functions in it. So now plugins can call $player->permissions->isGranted().
$player->permission = $newPermission;//This is a class with functions in it. So now plugins can call $player->permissions->isGranted(). Symfony2 Style!
}else{
//TODO: Give out default permission. Fall back to OP system maybe? Checking for a permissions receiver would be nice.
$player->permission = new DefaultPermission();
}
}, 1);//Experimental. Use Closure / Anonymous Functions to assign new functions from each API rather than hard-coding them to Player.php.
ServerAPI::request()->api->addHandler("player.connect", function ($player)
{
}, 1);
}
}
@ -78,36 +73,9 @@ interface Permission{
public function getPermissionLevel();
/**
* @param object $permission Permission to check the user for. Must be a an object implementing Permission class.
* @param Permission $permission Permission to check the user for. Must be a an object implementing Permission class.
*
* @return boolean Whether the person has permissions or not.
*/
public function isGranted($permission);
}
class DefaultPermission implements Permission{//TODO: Remove this in the future for a better system than a default permission.
/**
* @var integer
*/
private $permissionLevel = 0;//Highest permission possible.
/**
* @param Permission $permissionToCheckGranted
*
* @return boolean
*/
public function isGranted($permissionToCheckGranted){
if($this->getPermissionLevel() >= $permissionToCheckGranted->getPermissionLevel()){
return true;
}else{
return false;
}
}
/**
* @return integer
*/
public function getPermissionLevel(){
return $this->permissionLevel;
}
}

View File

@ -60,7 +60,7 @@ class Player{
public $blocked = true;
public $achievements = array();
public $chunksLoaded = array();
public $permission = false;
public $permissions = array();
private $chunksOrder = array();
private $lastMeasure = 0;
private $bandwidthRaw = 0;
@ -673,6 +673,10 @@ class Player{
}
}
/**
* @param string $message
* @param string $author
*/
public function sendChat($message, $author = ""){
$mes = explode("\n", $message);
foreach($mes as $m){
@ -753,6 +757,13 @@ class Player{
));
}
/**
* @param array $craft
* @param array $recipe
* @param $type
*
* @return array|bool
*/
public function craftItems(array $craft, array $recipe, $type){
$craftItem = array(0, true, 0);
unset($craft[-1]);
@ -847,6 +858,15 @@ class Player{
return $res;
}
/**
* @param Vector3 $pos
* @param float|boolean $yaw
* @param float|boolean $pitch
* @param float|boolean $terrain
* @param float|boolean $force
*
* @return boolean
*/
public function teleport(Vector3 $pos, $yaw = false, $pitch = false, $terrain = true, $force = true){
if($this->entity instanceof Entity and $this->level instanceof Level){
$this->entity->check = false;
@ -2123,6 +2143,9 @@ class Player{
}
}
/**
* @param Player|string|boolean|void $player
*/
public function sendArmor($player = false){
$data = array(
"player" => $this,
@ -2225,6 +2248,12 @@ class Player{
return array($count);
}
/**
* @param integer $id
* @param array $data
*
* @return array|bool
*/
public function dataPacket($id, $data = array()){
$data["id"] = $id;
if($id === false){
@ -2246,6 +2275,9 @@ class Player{
return array();
}
/**
* @return string
*/
function __toString(){
if($this->username != ""){
return $this->username;