mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-18 19:55:33 +00:00
More comments.
This commit is contained in:
parent
aefcab9a49
commit
d2fa06cb64
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user