Skip to content

Instantly share code, notes, and snippets.

@MinecrafterJPN
Created August 4, 2014 03:14
Show Gist options
  • Save MinecrafterJPN/bf8c0fb0821da1da50b8 to your computer and use it in GitHub Desktop.
Save MinecrafterJPN/bf8c0fb0821da1da50b8 to your computer and use it in GitHub Desktop.
For Gonbe
<?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