You could edit PMMP source to prevent the registration of the command, or you could override it. EDIT: Commands can be overridden look at @Muqsit reply.
I thought PMMP added a way? https://github.com/pmmp/PocketMine-MP/commit/060426ff12b12a7f491ea6ffbb98c305c9c996a8
Try this function I made(copied): PHP: public function unregister(string ...$commands){ $map = Server::getInstance()->getCommandMap(); foreach ($commands as $cmd) { $command = $map->getCommand($cmd); if ($command !== null) { $command->setLabel("old_".$cmd); $map->unregister($command); } }} Usage: PHP: $this->unregister("list", "op", "enchant");$plugin = $this->isMyPlugin();$map = $plugin->getServer()->getCommandMap();$map->registerCommands($plugin->getName(), [ new MyCustomListCommand("list", $plugin), new MyOpCommand("op", $plugin), new MyEnchantCommand("enchant", $plugin)]);class MyCustomListCommand extends PluginCommand{} Not sure, but you may need to unregister command aliases too: PHP: $this->unregister(...$plugin->getServer()->getCommandMap()->getCommand("list")->getAliases());