Minor cleanup to attack handler

This commit is contained in:
Dylan K. Taylor 2017-10-09 11:02:00 +01:00
parent cd44551d64
commit bdfd9c95dd

View File

@ -2389,18 +2389,20 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
case InventoryTransactionPacket::USE_ITEM_ON_ENTITY_ACTION_INTERACT: case InventoryTransactionPacket::USE_ITEM_ON_ENTITY_ACTION_INTERACT:
break; //TODO break; //TODO
case InventoryTransactionPacket::USE_ITEM_ON_ENTITY_ACTION_ATTACK: case InventoryTransactionPacket::USE_ITEM_ON_ENTITY_ACTION_ATTACK:
$cancelled = false; if(!$target->isAlive()){
if($target instanceof Player and $this->server->getConfigBoolean("pvp", true) === false){ return true;
$cancelled = true;
} }
if($target->isAlive()){
if($target instanceof DroppedItem or $target instanceof Arrow){ if($target instanceof DroppedItem or $target instanceof Arrow){
$this->kick("Attempting to attack an invalid entity"); $this->kick("Attempting to attack an invalid entity");
$this->server->getLogger()->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidEntity", [$this->getName()])); $this->server->getLogger()->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidEntity", [$this->getName()]));
return false; return false;
} }
$cancelled = false;
if($target instanceof Player and $this->server->getConfigBoolean("pvp", true) === false){
$cancelled = true;
}
$heldItem = $this->inventory->getItemInHand(); $heldItem = $this->inventory->getItemInHand();
$damage = [ $damage = [
@ -2445,7 +2447,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
$this->exhaust(0.3, PlayerExhaustEvent::CAUSE_ATTACK); $this->exhaust(0.3, PlayerExhaustEvent::CAUSE_ATTACK);
} }
}
return true; return true;
default: default:
break; //unknown break; //unknown