mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-19 15:35:52 +00:00
Use permissions for more stuff
This commit is contained in:
parent
df069b0418
commit
74ee38ab99
@ -31,6 +31,7 @@ use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\EntityIds;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataCollection;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataProperties;
|
||||
use pocketmine\permission\DefaultPermissionNames;
|
||||
use pocketmine\player\Player;
|
||||
use function max;
|
||||
use function sqrt;
|
||||
@ -192,7 +193,7 @@ class ExperienceOrb extends Entity{
|
||||
if($currentTarget === null){
|
||||
$newTarget = $this->getWorld()->getNearestEntity($this->location, self::MAX_TARGET_DISTANCE, Human::class);
|
||||
|
||||
if($newTarget instanceof Human && !($newTarget instanceof Player && $newTarget->isSpectator()) && $newTarget->getXpManager()->canAttractXpOrbs()){
|
||||
if($newTarget instanceof Human && !($newTarget instanceof Player && !$newTarget->hasPermission(DefaultPermissionNames::GAME_ITEM_PICKUP)) && $newTarget->getXpManager()->canAttractXpOrbs()){
|
||||
$currentTarget = $newTarget;
|
||||
}
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ class Arrow extends Projectile{
|
||||
if(($player->hasFiniteResources() && $playerInventory === null) || !$player->hasPermission(DefaultPermissionNames::GAME_ITEM_PICKUP)){
|
||||
$ev->cancel();
|
||||
}
|
||||
if($this->pickupMode === self::PICKUP_NONE || ($this->pickupMode === self::PICKUP_CREATIVE && !$player->isCreative())){
|
||||
if($this->pickupMode === self::PICKUP_NONE || ($this->pickupMode === self::PICKUP_CREATIVE && $player->hasFiniteResources())){
|
||||
$ev->cancel();
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ use pocketmine\entity\projectile\Projectile;
|
||||
use pocketmine\event\entity\EntityShootBowEvent;
|
||||
use pocketmine\event\entity\ProjectileLaunchEvent;
|
||||
use pocketmine\item\enchantment\VanillaEnchantments;
|
||||
use pocketmine\permission\DefaultPermissionNames;
|
||||
use pocketmine\player\Player;
|
||||
use pocketmine\world\sound\BowShootSound;
|
||||
use function intdiv;
|
||||
@ -85,7 +86,7 @@ class Bow extends Tool implements Releasable{
|
||||
}
|
||||
$ev = new EntityShootBowEvent($player, $this, $entity, $baseForce * 3);
|
||||
|
||||
if($baseForce < 0.1 || $diff < 5 || $player->isSpectator()){
|
||||
if($baseForce < 0.1 || $diff < 5 || !$player->hasPermission(DefaultPermissionNames::GAME_ITEM_USE)){
|
||||
$ev->cancel();
|
||||
}
|
||||
|
||||
|
@ -1458,7 +1458,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
||||
$this->fireTicks = 1;
|
||||
}
|
||||
|
||||
if(!$this->isSpectator() && $this->isAlive()){
|
||||
if($this->isAlive()){
|
||||
Timings::$playerCheckNearEntities->startTiming();
|
||||
$this->checkNearEntities();
|
||||
Timings::$playerCheckNearEntities->stopTiming();
|
||||
@ -1595,7 +1595,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
||||
foreach($this->inventory->addItem(...$extraReturnedItems) as $drop){
|
||||
//TODO: we can't generate a transaction for this since the items aren't coming from an inventory :(
|
||||
$ev = new PlayerDropItemEvent($this, $drop);
|
||||
if($this->isSpectator()){
|
||||
if(!$this->hasPermission(DefaultPermissionNames::GAME_ITEM_DROP)){
|
||||
$ev->cancel();
|
||||
}
|
||||
$ev->call();
|
||||
|
Loading…
x
Reference in New Issue
Block a user