public function disablePlugin(Plugin $plugin)
{
if ($plugin->isEnabled()) {
try {
$plugin->getPluginLoader()->disablePlugin($plugin);
} catch (\Throwable $e) {
$this->server->getLogger()->logException($e);
}
$this->server->getScheduler()->cancelTasks($plugin);
HandlerList::unregisterAll($plugin);
foreach ($plugin->getDescription()->getPermissions() as $perm) {
$this->removePermission($perm);
}
}
}