Describe the bug
net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE
When permissions to send to a channel are revoked, the code throws an exception and causes the server close
Reproduction steps
Get bot working normally.
Assign a new role to the bot in the discord
Modify the channel's permission so that the role cannot send messages.
(essentially revoke "Send message" permission once bot is running)
Expected behaviour
The code catches the exception, prints a helpful log message and doesn't crash the whole server
Crash report
```
[08:34:47] [Server thread/ERROR]: Encountered an unexpected exception
net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE
at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:329) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:320) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at net.dv8tion.jda.internal.entities.TextChannelImpl.sendMessage(TextChannelImpl.java:347) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:334) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:298) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.serverStarting(DiscordBot.java:98) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.FDLink1_16.lambda$onInitializeServer$2(FDLink1_16.java:72) ~[d0e10cff-e164-4624-a410-79a8d3ecf12a.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$0(ServerLifecycleEvents.java:37) ~[8343a554-35dc-4d1a-a713-fa56d70f0e04.jar:?]
at net.minecraft.server.MinecraftServer.handler$zzc000$beforeSetupServer(MinecraftServer.java:1804) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:665) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:274) ~[intermediary-server.jar:?]
at java.lang.Thread.run(Thread.java:831) [?:?]
[08:34:47] [Server thread/ERROR]: This crash report has been saved to: /home/minecraft-202106/./crash-reports/crash-2021-06-23_08.34.47-server.txt
[08:34:47] [Server thread/INFO]: BlueMap unloaded!
[08:34:47] [Server thread/ERROR]: Exception stopping the server
net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE
at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:329) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:320) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at net.dv8tion.jda.internal.entities.TextChannelImpl.sendMessage(TextChannelImpl.java:347) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:334) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:298) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.discordstuff.DiscordBot.serverStopping(DiscordBot.java:116) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?]
at fr.arthurbambou.fdlink.FDLink1_16.lambda$onInitializeServer$4(FDLink1_16.java:74) ~[d0e10cff-e164-4624-a410-79a8d3ecf12a.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$4(ServerLifecycleEvents.java:62) ~[8343a554-35dc-4d1a-a713-fa56d70f0e04.jar:?]
at net.minecraft.server.MinecraftServer.handler$zzc000$beforeShutdownServer(MinecraftServer.java:1814) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_3782(MinecraftServer.java) ~[intermediary-server.jar:?]
at net.minecraft.class_3176.method_3782(class_3176.java:584) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:729) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:274) ~[intermediary-server.jar:?]
at java.lang.Thread.run(Thread.java:831) [?:?]
```
Additional context
Minecraft version: 1.17
Fabric-Discord Link version: 0.9.4
:exclamation: A list of all mods you were using: Behavior not affected by other mods/etc
fdlink.json
Please attach your configuration file (fdlink.json) here (edit the token out)
Describe the bug net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE
When permissions to send to a channel are revoked, the code throws an exception and causes the server close
Reproduction steps Get bot working normally. Assign a new role to the bot in the discord Modify the channel's permission so that the role cannot send messages. (essentially revoke "Send message" permission once bot is running)
Expected behaviour The code catches the exception, prints a helpful log message and doesn't crash the whole server
Crash report
``` [08:34:47] [Server thread/ERROR]: Encountered an unexpected exception net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:329) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:320) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at net.dv8tion.jda.internal.entities.TextChannelImpl.sendMessage(TextChannelImpl.java:347) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:334) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:298) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.serverStarting(DiscordBot.java:98) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.FDLink1_16.lambda$onInitializeServer$2(FDLink1_16.java:72) ~[d0e10cff-e164-4624-a410-79a8d3ecf12a.jar:?] at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$0(ServerLifecycleEvents.java:37) ~[8343a554-35dc-4d1a-a713-fa56d70f0e04.jar:?] at net.minecraft.server.MinecraftServer.handler$zzc000$beforeSetupServer(MinecraftServer.java:1804) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:665) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:274) ~[intermediary-server.jar:?] at java.lang.Thread.run(Thread.java:831) [?:?] [08:34:47] [Server thread/ERROR]: This crash report has been saved to: /home/minecraft-202106/./crash-reports/crash-2021-06-23_08.34.47-server.txt [08:34:47] [Server thread/INFO]: BlueMap unloaded! [08:34:47] [Server thread/ERROR]: Exception stopping the server net.dv8tion.jda.api.exceptions.InsufficientPermissionException: Cannot perform action due to a lack of Permission. Missing permission: MESSAGE_WRITE at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:329) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at net.dv8tion.jda.internal.entities.AbstractChannelImpl.checkPermission(AbstractChannelImpl.java:320) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at net.dv8tion.jda.internal.entities.TextChannelImpl.sendMessage(TextChannelImpl.java:347) ~[afa75ae8-7810-4d6f-9b0f-737026d94b7a.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:334) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.sendToChatChannels(DiscordBot.java:298) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.discordstuff.DiscordBot.serverStopping(DiscordBot.java:116) ~[b6acd86d-36ed-4150-b093-124fa9fc729d.jar:?] at fr.arthurbambou.fdlink.FDLink1_16.lambda$onInitializeServer$4(FDLink1_16.java:74) ~[d0e10cff-e164-4624-a410-79a8d3ecf12a.jar:?] at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$4(ServerLifecycleEvents.java:62) ~[8343a554-35dc-4d1a-a713-fa56d70f0e04.jar:?] at net.minecraft.server.MinecraftServer.handler$zzc000$beforeShutdownServer(MinecraftServer.java:1814) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_3782(MinecraftServer.java) ~[intermediary-server.jar:?] at net.minecraft.class_3176.method_3782(class_3176.java:584) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:729) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:274) ~[intermediary-server.jar:?] at java.lang.Thread.run(Thread.java:831) [?:?] ```Additional context
fdlink.json Please attach your configuration file (
fdlink.json
) here (edit the token out)