Overview

Namespaces

  • aliuly
    • common
      • selectors
    • loader
  • xPaw

Classes

  • aliuly\common\ArmorItems
  • aliuly\common\BasicCli
  • aliuly\common\BasicHelp
  • aliuly\common\BasicPlugin
  • aliuly\common\ChatSession
  • aliuly\common\Cmd
  • aliuly\common\CmdSelector
  • aliuly\common\ExpandVars
  • aliuly\common\FastTransfer
  • aliuly\common\FileUtils
  • aliuly\common\FreezeSession
  • aliuly\common\GetMotd
  • aliuly\common\GetMotdAsyncTask
  • aliuly\common\InvisibleSession
  • aliuly\common\InvUtils
  • aliuly\common\ItemName
  • aliuly\common\mc
  • aliuly\common\mc2
  • aliuly\common\MoneyAPI
  • aliuly\common\MPMU
  • aliuly\common\Npc
  • aliuly\common\PermUtils
  • aliuly\common\PluginAsyncTask
  • aliuly\common\PluginCallbackTask
  • aliuly\common\PMScript
  • aliuly\common\QueryAsyncTask
  • aliuly\common\Rcon
  • aliuly\common\RconTask
  • aliuly\common\selectors\All
  • aliuly\common\selectors\AllEntity
  • aliuly\common\selectors\BaseSelector
  • aliuly\common\selectors\Random
  • aliuly\common\Session
  • aliuly\common\ShieldSession
  • aliuly\common\ShoppingCart
  • aliuly\common\SignUtils
  • aliuly\common\SkinUtils
  • aliuly\common\SpySession
  • aliuly\common\SubCommandMap
  • aliuly\common\TPUtils
  • aliuly\loader\Main
  • xPaw\MinecraftQuery

Exceptions

  • xPaw\MinecraftQueryException
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace aliuly\common;
 4: use aliuly\common\Session;
 5: use aliuly\common\MPMU;
 6: 
 7: use pocketmine\event\entity\EntityDamageEvent;
 8: use pocketmine\event\entity\EntityDamageByEntityEvent;
 9: use pocketmine\plugin\PluginBase;
10: 
11: /**
12:  * Shielded Player sessions
13:  *
14:  * NOTE, if GrabBag is available, it will use the GrabBag shield
15:  * implementation.  This gives you a command line interface and also
16:  * reduces the number of listeners in use.
17:  */
18: class ShieldSession extends Session {
19:   protected $api;
20:   /**
21:    * @param PluginBase $owner - plugin that owns this session
22:    * @param bool $hard - hard freeze option
23:    */
24:   public function __construct(PluginBase $owner, $hard = true) {
25:     $bag = $owner->getServer()->getPluginManager()->getPlugin("GrabBag");
26:     if ($bag && $bag->isEnabled() && MPMU::apiCheck($bag->getDescription()->getVersion(),"2.3") && $bag->api->getFeature("shield")) {
27:       $this->api = $bag->api;
28:       return;
29:     }
30:     parent::__construct($owner);
31:     $this->api = null;
32:   }
33:   /**
34:    * Return player's shield status
35:    * @param Player $target
36:    * @return bool
37:    */
38:   public function isShielded(Player $target) {
39:     if ($this->api !== null) return $this->api->isShielded($target);
40:     return $this->getState("shield",$target,false);
41:   }
42:   /**
43:    * Turn on/off shields
44:    * @param Player $target
45:    * @param bool $mode - true is shielded, false is not
46:    */
47:   public function setShield(Player $target,$mode) {
48:     if ($this->api !== null) {
49:       $this->api->setShield($target,$mode);
50:       return;
51:     }
52:     if ($mode) {
53:       $this->setState("shield",$target,true);
54:     } else {
55:       $this->unsetState("shield",$target);
56:     }
57:   }
58: 
59:   public function onDamage(EntityDamageEvent $ev) {
60:     if ($ev->isCancelled()) return;
61:     if(!($ev instanceof EntityDamageByEntityEvent)) return;
62:     if (!($ev->getEntity() instanceof Player)) return;
63:     if (!$this->getState("shield",$ev->getEntity(),false)) return;
64:     $ev->setCancelled();
65:   }
66: }
67: 
API documentation generated by ApiGen