Created
August 4, 2014 03:14
-
-
Save MinecrafterJPN/bf8c0fb0821da1da50b8 to your computer and use it in GitHub Desktop.
For Gonbe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace MinecrafterJPN; | |
use pocketmine\event\entity\EntityDamageByEntityEvent; | |
use pocketmine\event\Listener; | |
use pocketmine\event\player\PlayerDeathEvent; | |
use pocketmine\Player; | |
use pocketmine\plugin\PluginBase; | |
use pocketmine\command\Command; | |
use pocketmine\command\CommandSender; | |
class AssistPlugin extends PluginBase implements Listener | |
{ | |
private $damageSources; | |
public function onLoad() | |
{ | |
} | |
public function onEnable() | |
{ | |
$this->damageSources = []; | |
$this->getServer()->getPluginManager()->registerEvents($this, $this); | |
} | |
public function onDisable() | |
{ | |
} | |
public function onCommand(CommandSender $sender, Command $command, $label, array $args) | |
{ | |
return false; | |
} | |
public function onEntityDamageByEntity(EntityDamageByEntityEvent $event) | |
{ | |
$player = $event->getEntity(); | |
$damager = $event->getDamager(); | |
$damage = $event->getDamage(); | |
if ($player instanceof Player and $damager instanceof Player) { | |
if (isset($this->damageSources[$player->getName()][$damager->getName()])) { | |
$this->damageSources[$player->getName()][$damager->getName()] += $damage; | |
} else { | |
$this->damageSources[$player->getName()][$damager->getName()] = $damage; | |
} | |
} | |
} | |
public function onPlayerDeath(PlayerDeathEvent $event) | |
{ | |
$player = $event->getEntity(); | |
$cause = $player->getLastDamageCause(); | |
if ($cause instanceof EntityDamageByEntityEvent) { | |
$killer = $cause->getDamager(); | |
if ($killer instanceof Player) { | |
$damageSources = $this->damageSources[$player->getName()]; | |
$topDamager = ""; | |
$topDamage = 0; | |
foreach ($damageSources as $damager => $damage) { | |
if ($damage > $topDamage) { | |
$topDamager = $damager; | |
$topDamage = $damage; | |
} | |
} | |
//経験値を $topDamager に付与する処理 | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment