namespace App\Console\Commands;
+use App\Models\DiscordChannel;
+use App\Models\DiscordGuild;
+use App\Models\DiscordRole;
use Discord\Discord;
+use Discord\Parts\Channel\Channel;
+use Discord\Parts\Channel\Message;
+use Discord\Parts\Guild\Guild;
+use Discord\Parts\Guild\Role;
+use Discord\WebSockets\Event;
use Illuminate\Console\Command;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
'logger' => $logger,
'token' => config('discord.token'),
]);
- $discord->on('ready', function (Discord $discord) {
+ $discord->on(Event::GUILD_CREATE, function (Guild $guild, Discord $discord) {
+ try {
+ DiscordGuild::onUpstreamCreate($guild);
+ } catch (\Exception $e) {
+ $this->error('guild create: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::GUILD_UPDATE, function (Guild $guild, Discord $discord, ?Guild $old) {
+ try {
+ DiscordGuild::onUpstreamUpdate($guild);
+ } catch (\Exception $e) {
+ $this->error('guild update: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::CHANNEL_CREATE, function (Channel $channel, Discord $discord) {
+ try {
+ DiscordGuild::onUpstreamCreate($channel);
+ } catch (\Exception $e) {
+ $this->error('channel create: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::CHANNEL_UPDATE, function (Channel $channel, Discord $discord, ?Channel $old) {
+ try {
+ DiscordGuild::onUpstreamUpdate($channel);
+ } catch (\Exception $e) {
+ $this->error('channel update: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::CHANNEL_DELETE, function ($channel, Discord $discord) {
+ try {
+ DiscordGuild::onUpstreamDelete($channel);
+ } catch (\Exception $e) {
+ $this->error('channel delete: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::GUILD_ROLE_CREATE, function (Role $role, Discord $discord) {
+ try {
+ DiscordRole::onUpstreamCreate($role);
+ } catch (\Exception $e) {
+ $this->error('guild role create: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::GUILD_ROLE_UPDATE, function (Role $role, Discord $discord, ?Role $old) {
+ try {
+ DiscordRole::onUpstreamUpdate($role);
+ } catch (\Exception $e) {
+ $this->error('guild role update: '.$e->getMessage());
+ }
+ });
+ $discord->on(Event::GUILD_ROLE_DELETE, function ($role, Discord $discord) {
+ try {
+ DiscordRole::onUpstreamDelete($role);
+ } catch (\Exception $e) {
+ $this->error('guild role delete: '.$e->getMessage());
+ }
});
$discord->getLoop()->addSignal(SIGINT, function() use ($discord) {
$discord->close();