[EssentialsXDiscord Addon] Discord<->MC Account Linker
A separate plugin/addon on top of EssentialsXDiscord to add linking functionality between discord and minecraft.
Tracking Ideas from https://github.com/orgs/EssentialsX/projects/1#card-57639460
One Idea:
- Make Users replying to other users in Discord show as a
/msgoutput if both (or maybe just the recipient?) have their account linked.
Example: Me replying to you would result in Andre_601 -> me: Hello! be posted in the MC chat while you're online.
Issues I see here now is, how or if there should be an indicator in the message syntax to show that the message was from Discord. Also how would the replies be handled from a MC to Discord like way?
To adress my previous comment do I have an idea for a possible MC -> Discord msg option. Just have a discord: prefix for the player names when using /msg to indicate Discord users.
Maybe to not fill the suggestion list with hundreds of names, only suggest names you received a message from recently?
Like here would be the full Idea again with the new suggestion added:
- I use
/msgon Discord to send a message to you in Minecraft - You receive the Essentials Message:
Andre_601#0601 -> Me: Hey there - You now type
/msgand getdiscord:Andre_601#0601suggested as a selectable player- The
/rcommand would act as a shortcut here. Maybe even with an option to make the bot actually reply to the original command? Would be difficult if the response message is ephemeral tho.
- The
- You send me a message back:
JRoy -> Me: Hi
I hope this idea still makes sense to you
Is that notif spam (*cough* @JRoy posting trollface *cough*) really necessary? I don't mind Notifications that much, but I DO mind having 15(!!!) E-Mails from GitHub within 5-10 minutes.
I know I know, you do reviews and stuff, but did you consider people watching this PR for possible progress and don't want to have spam?
I'm sure this has been discussed... but since I've apparently been living under a rock, why is EssentialsDiscordLink a completely separate plugin from EssentialsDiscord? It seems to me like it would make much more sense to merge the two together.
I'm sure this has been discussed... but since I've apparently been living under a rock, why is EssentialsDiscordLink a completely separate plugin from EssentialsDiscord? It seems to me like it would make much more sense to merge the two together.
I agree, but on the other hand would I assume that it could be considered bloat having this feature implemented in the base Module. Some people may only want to have basic chat and some command stuff that doesn't require things like account linking and perm check.
Yeah but EssentialsDiscord has already become more than just a simple chat bridge. Arguably if this is going to be its own module, the stuff for console relay, etc, should have as well. I don't really see the distinction here. Making people download yet another addon (for what is already an addon) makes little sense to me, and seems like something people are just gonna complain about.
In terms of bloat, there's barely anything really added to the configuration by this. There's like 3 configuration options, which could just be its own little section in the main addon. Everything could be disabled by default, as with the console relay.
In terms of bloat, there's barely anything really added to the configuration by this. There's like 3 configuration options, which could just be its own little section in the main addon. Everything could be disabled by default, as with the console relay.
Role sync is going to be a part of this as well, which I feel is fairly big. I'd like to keep these code bases separate to make it easier to maintain and to force myself to keep the addon API quality high.
The EssentialsX Discord Link module is now feature complete and ready for review!
cc @mdcfe
If a member who's linked leaves the Discord server, an Unknown Member error appears upon role sync.
[12:49:04 ERROR]: [net.essentialsx.dep.net.dv8tion.jda.api.requests.RestAction] RestAction queue returned failure: [ErrorResponseException] 10007: Unknown Member
net.essentialsx.dep.net.dv8tion.jda.api.exceptions.ContextException: null
at net.essentialsx.dep.net.dv8tion.jda.api.exceptions.ContextException.here(ContextException.java:54) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.dep.net.dv8tion.jda.api.requests.Request.<init>(Request.java:71) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.dep.net.dv8tion.jda.internal.requests.RestActionImpl.queue(RestActionImpl.java:197) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.dep.net.dv8tion.jda.internal.requests.DeferredRestAction.queue(DeferredRestAction.java:134) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.dep.net.dv8tion.jda.api.requests.RestAction.queue(RestAction.java:573) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.discord.JDADiscordService.getMemberById(JDADiscordService.java:476) ~[EssentialsXDiscord-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.discordlink.rolesync.RoleSyncManager.sync(RoleSyncManager.java:63) ~[EssentialsXDiscordLink-2.20.0-dev+10-7d61305.jar:?]
at net.essentialsx.discordlink.rolesync.RoleSyncManager.lambda$new$0(RoleSyncManager.java:45) ~[EssentialsXDiscordLink-2.20.0-dev+10-7d61305.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[purpur-1.19.2.jar:git-Purpur-1848]
at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[purpur-1.19.2.jar:git-Purpur-1848]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[purpur-1.19.2.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
If a member who's linked leaves the Discord server, an Unknown Member error appears upon role sync.
Thanks for the catch, fixed in the latest build!
[15:11:52 WARN]: [net.essentialsx.discordlink.EssentialsDiscordLink] Versiyon uyuşmazlığı! Lütfen tüm Essentials jarlarını aynı sürüme güncelleyin.
[15:11:52 ERROR]: Error occurred while enabling EssentialsDiscordLink v2.20.0-dev+35-0936fe8 (Is it up to date?)
java.lang.NoSuchMethodError: 'java.util.Map com.earth2me.essentials.config.EssentialsConfiguration.getStringMap(java.lang.String)'
at net.essentialsx.discordlink.DiscordLinkSettings._getRoleSyncGroups(DiscordLinkSettings.java:60) ~[EssentialsXDiscordLink-2.20.0-dev+35-0936fe8.jar:?]
at net.essentialsx.discordlink.DiscordLinkSettings.reloadConfig(DiscordLinkSettings.java:91) ~[EssentialsXDiscordLink-2.20.0-dev+35-0936fe8.jar:?]
at net.essentialsx.discordlink.DiscordLinkSettings.
Pufferfish 1.19.3 Not working