]> git.localhorst.tv Git - alttp.git/blobdiff - app/Console/Commands/DiscordBotCommand.php
sync discord guilds
[alttp.git] / app / Console / Commands / DiscordBotCommand.php
index 7d51cb9df4868ec0bc76fcfc22c13d28a66606a0..a049eba3bacd4327ee46df2beb5f53b173e1f912 100644 (file)
@@ -2,7 +2,11 @@
 
 namespace App\Console\Commands;
 
+use App\Models\DiscordGuild;
 use Discord\Discord;
+use Discord\Parts\Channel\Message;
+use Discord\Parts\Guild\Guild;
+use Discord\WebSockets\Event;
 use Illuminate\Console\Command;
 use Monolog\Handler\StreamHandler;
 use Monolog\Logger;
@@ -37,7 +41,30 @@ class DiscordBotCommand extends Command
                        'logger' => $logger,
                        'token' => config('discord.token'),
                ]);
+               $discord->on(Event::GUILD_CREATE, function (Guild $guild, Discord $discord) {
+                       DiscordGuild::sync($guild);
+               });
+               $discord->on(Event::GUILD_UPDATE, function (Guild $guild, Discord $discord, Guild $old) {
+                       DiscordGuild::sync($guild);
+               });
                $discord->on('ready', function (Discord $discord) {
+                       $discord->on(Event::MESSAGE_CREATE, function (Message $message, Discord $discord) {
+                               if (!empty($message->guild_id)) return;
+                               if (!empty($message->webhook_id)) return;
+                               if (!empty($message->application_id)) return;
+                               if (is_null($message->author)) return;
+                               if ($message->author->bot) return;
+                               $discord->getLoop()->addTimer(0.6, function() use ($message) {
+                                       $message->react('😄');
+                               });
+                               if (!is_null($message->channel)) {
+                                       $discord->getLoop()->addTimer(2.0, function() use ($message) {
+                                               $message->channel->sendMessage('bugger off');
+                                       });
+                               } else {
+                                       $message->delayedReply('bugger off', 2000);
+                               }
+                       });
                });
                $discord->getLoop()->addSignal(SIGINT, function() use ($discord) {
                        $discord->close();