#!/usr/bin/env python3 """ Ping command for the MeshCore Bot Handles the 'ping' keyword response """ from typing import Optional # noqa: F401 importable from this module on dev from ..models import MeshMessage from .base_command import BaseCommand class PingCommand(BaseCommand): """Handles the ping command. A simple diagnostic command that responds with 'Pong!' or a custom configured response to verify bot connectivity and responsiveness. """ # Plugin metadata name = "ping" honors_skip_channel_check = False enabled_attr = "ping_enabled" keywords_format_key = "ping" keywords = ['ping'] description = "Responds to 'ping' with 'Pong!'" category = "basic" # Documentation short_description = "Get a quick 'pong'response from the bot" usage = "ping" examples = ["ping"] def __init__(self, bot): """Initialize the ping command. Args: bot: The bot instance. """ super().__init__(bot) self.ping_enabled = self.get_config_value('Ping_Command', 'enabled', fallback=True, value_type='bool') def get_help_text(self, message: MeshMessage | None = None) -> str: """Get help text for the ping command. Returns: str: The help text for this command. """ return self.translate('commands.ping.description') async def execute(self, message: MeshMessage) -> bool: """Execute the ping command. Args: message: The message that triggered the command. Returns: bool: True if the response was sent successfully, False otherwise. """ return await self.handle_keyword_match(message)