Better InteractPacket handling and added ACTION_MOUSEOVER constant

This commit is contained in:
Dylan K. Taylor 2016-10-27 13:15:53 +01:00
parent 9d16f145dd
commit 3d2f9f0e74
2 changed files with 105 additions and 110 deletions

View File

@ -2323,16 +2323,9 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
$target = $this->level->getEntity($packet->target);
$cancelled = false;
if($packet->action !== InteractPacket::ACTION_LEFT_CLICK){
// TODO handle
break;
}
if(
$target instanceof Player and
$this->server->getConfigBoolean("pvp", true) === false
){
switch($packet->action){
case InteractPacket::ACTION_LEFT_CLICK: //Attack
if($target instanceof Player and $this->server->getConfigBoolean("pvp", true) === false){
$cancelled = true;
}
@ -2441,6 +2434,10 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
$this->exhaust(0.3, PlayerExhaustEvent::CAUSE_ATTACK);
}
}
break;
default:
break; //TODO: handle other actions
}
break;
case ProtocolInfo::ANIMATE_PACKET:

View File

@ -30,11 +30,9 @@ class InteractPacket extends DataPacket{
const ACTION_RIGHT_CLICK = 1;
const ACTION_LEFT_CLICK = 2;
const ACTION_LEAVE_VEHICLE = 3;
/** @deprecated Do NOT use this. This constant is misleading and will be removed in the future */
const ACTION_JUMP = 3;
const ACTION_MOUSEOVER = 4;
public $action;
public $eid;
public $target;
public function decode(){