diff --git a/src/pocketmine/command/defaults/KillCommand.php b/src/pocketmine/command/defaults/KillCommand.php index 8842af1e5..c537aca15 100644 --- a/src/pocketmine/command/defaults/KillCommand.php +++ b/src/pocketmine/command/defaults/KillCommand.php @@ -62,15 +62,7 @@ class KillCommand extends VanillaCommand{ $player = $sender->getServer()->getPlayer($args[0]); if($player instanceof Player){ - $sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000)); - - if($ev->isCancelled()){ - return true; - } - - $player->setLastDamageCause($ev); - $player->setHealth(0); - + $player->attack(new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000)); Command::broadcastCommandMessage($sender, new TranslationContainer("commands.kill.successful", [$player->getName()])); }else{ $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound")); @@ -86,14 +78,7 @@ class KillCommand extends VanillaCommand{ return true; } - $sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000)); - - if($ev->isCancelled()){ - return true; - } - - $sender->setLastDamageCause($ev); - $sender->setHealth(0); + $sender->attack(new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000)); $sender->sendMessage(new TranslationContainer("commands.kill.successful", [$sender->getName()])); }else{ throw new InvalidCommandSyntaxException(); diff --git a/src/pocketmine/resourcepacks/ZippedResourcePack.php b/src/pocketmine/resourcepacks/ZippedResourcePack.php index 40ef7cc23..902b83b85 100644 --- a/src/pocketmine/resourcepacks/ZippedResourcePack.php +++ b/src/pocketmine/resourcepacks/ZippedResourcePack.php @@ -86,8 +86,11 @@ class ZippedResourcePack implements ResourcePack{ $archive->close(); $manifest = json_decode($manifestData); - if($manifest === null or !self::verifyManifest($manifest)){ - throw new ResourcePackException("manifest.json is invalid or incomplete"); + if($manifest === null){ + throw new ResourcePackException("Failed to parse manifest.json: " . json_last_error_msg()); + } + if(!self::verifyManifest($manifest)){ + throw new ResourcePackException("manifest.json is missing required fields"); } $this->manifest = $manifest;