/** * Command constructor. * * @param RealTimeClient $client * The Slack API client. * * @param GameManager $gameManager * The game manager. * * @param \Slackwolf\Message\Message $message * The message object. * * @param array|NULL $args */ public function __construct(RealTimeClient $client, GameManager $gameManager, Message $message, array $args = null) { $this->client = $client; $this->gameManager = $gameManager; $this->message = $message; $this->userId = $message->getUser(); $this->channel = $message->getChannel(); $this->args = $args; $this->game = $this->gameManager->getGame($this->channel); echo get_called_class() . " " . $this->userId . " " . $this->channel . "\r\n"; }
public function run() { /* * Create the event loop */ $eventLoop = Factory::create(); /* * Create our Slack client */ $client = new SlackRTMClient($eventLoop); $client->setToken(getenv('BOT_TOKEN')); /* * Setup command bindings */ $commandBindings = ['help' => HelpCommand::class, 'setoption' => SetOptionCommand::class, 'new' => NewCommand::class, 'join' => JoinCommand::class, 'leave' => LeaveCommand::class, 'start' => StartCommand::class, 'end' => EndCommand::class, 'see' => SeeCommand::class, 'vote' => VoteCommand::class, 'kill' => KillCommand::class, 'guard' => GuardCommand::class]; /* * Create the game manager */ $gameManager = new GameManager($client, $commandBindings); /* * Route incoming Slack messages */ $client->on('message', function ($data) use($client, $gameManager) { $message = new Message($data); if ($message->getSubType() == 'channel_join') { $client->refreshChannel($message->getChannel()); } else { if ($message->getSubType() == 'channel_leave') { $client->refreshChannel($message->getChannel()); } else { $gameManager->input($message); } } }); /* * Connect to Slack */ echo "Connecting...\r\n"; $client->connect()->then(function () { echo "Connected.\n"; }, function (ConnectionException $e) { echo $e->getMessage(); exit; }); /* * Start the event loop */ $eventLoop->run(); }
public function run() { /* * Create the event loop */ $eventLoop = Factory::create(); /* * @var \Slackwolf\SlackRTMClient */ $client = new SlackRTMClient($eventLoop); $client->setToken($this->token); /* * Create the game manager */ $gameManager = new GameManager($client); /* * Route incoming Slack messages */ $client->on('message', function ($data) use($client, $gameManager) { $message = new Message($data); if ($message->getSubType() == 'channel_join') { $client->refreshChannel($message->getChannel()); } else { if ($message->getSubType() == 'channel_leave') { $client->refreshChannel($message->getChannel()); } else { $gameManager->input($message); } } }); /* * Connect to Slack */ echo "Connecting...\r\n"; $client->connect()->then(function () { echo "Connected.\n"; }, function (ConnectionException $e) { echo $e->getMessage(); exit; }); /* * Start the event loop */ $eventLoop->run(); }
public function run() { /* * Create the event loop */ $eventLoop = Factory::create(); /* * Create our Slack client */ $client = new RealTimeClient($eventLoop); $client->setToken(getenv('BOT_TOKEN')); /* * Setup command bindings */ $commandBindings = ['help' => HelpCommand::class, 'start' => StartCommand::class, 'end' => EndCommand::class, 'see' => SeeCommand::class, 'vote' => VoteCommand::class, 'kill' => KillCommand::class, 'guard' => GuardCommand::class]; /* * Create the game manager */ $gameManager = new GameManager($client, $commandBindings); /* * Route incoming Slack messages */ $client->on('message', function ($data) use($client, $gameManager) { $gameManager->input(new Message($data)); }); /* * Connect to Slack */ echo "Connecting...\r\n"; $client->connect()->then(function () { echo "Connected.\n"; }, function (ConnectionException $e) { echo $e->getMessage(); exit; }); /* * Start the event loop */ $eventLoop->run(); }