mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-18 19:55:33 +00:00
this makes no sense because it isn't type safe and isn't used anywhere. It's just extra maintenance cost for no good reason.
61 lines
1.4 KiB
PHP
61 lines
1.4 KiB
PHP
<?php
|
|
|
|
/*
|
|
*
|
|
* ____ _ _ __ __ _ __ __ ____
|
|
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
|
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
|
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
|
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* @author PocketMine Team
|
|
* @link http://www.pocketmine.net/
|
|
*
|
|
*
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace pocketmine\entity;
|
|
|
|
use function array_filter;
|
|
|
|
class AttributeMap{
|
|
/** @var Attribute[] */
|
|
private $attributes = [];
|
|
|
|
public function add(Attribute $attribute) : void{
|
|
$this->attributes[$attribute->getId()] = $attribute;
|
|
}
|
|
|
|
/**
|
|
* @param string $id
|
|
*
|
|
* @return Attribute|null
|
|
*/
|
|
public function get(string $id) : ?Attribute{
|
|
return $this->attributes[$id] ?? null;
|
|
}
|
|
|
|
/**
|
|
* @return Attribute[]
|
|
*/
|
|
public function getAll() : array{
|
|
return $this->attributes;
|
|
}
|
|
|
|
/**
|
|
* @return Attribute[]
|
|
*/
|
|
public function needSend() : array{
|
|
return array_filter($this->attributes, function(Attribute $attribute){
|
|
return $attribute->isSyncable() and $attribute->isDesynchronized();
|
|
});
|
|
}
|
|
}
|