-
Notifications
You must be signed in to change notification settings - Fork 14
DiscordInviteCreateScriptEvent #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 5 commits
c9d57e8
59ac4b2
12c58c6
b64107d
f6c86b8
5343955
c7a0bcd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| package com.denizenscript.ddiscordbot.events; | ||
|
|
||
| import com.denizenscript.ddiscordbot.DiscordScriptEvent; | ||
| import com.denizenscript.ddiscordbot.objects.DiscordChannelTag; | ||
| import com.denizenscript.ddiscordbot.objects.DiscordGroupTag; | ||
| import com.denizenscript.ddiscordbot.objects.DiscordUserTag; | ||
| import com.denizenscript.denizencore.objects.ObjectTag; | ||
| import com.denizenscript.denizencore.objects.core.ElementTag; | ||
| import net.dv8tion.jda.api.events.guild.invite.GuildInviteCreateEvent; | ||
|
|
||
| public class DiscordInviteCreateScriptEvent extends DiscordScriptEvent { | ||
|
|
||
| // <--[event] | ||
| // @Events | ||
| // discord invitation created | ||
| // | ||
| // @Switch for:<bot> to only process the event for a specified Discord bot. | ||
| // @Switch channel:<channel_id> to only process the event for a specified Discord channel. | ||
| // @Switch group:<group_id> to only process the event for a specified Discord group. | ||
| // | ||
| // @Triggers when a Discord user creates an invitation. | ||
| // | ||
| // @Plugin dDiscordBot | ||
| // | ||
| // @Group Discord | ||
| // | ||
| // @Context | ||
| // <context.bot> returns the relevant DiscordBotTag. | ||
| // <context.group> returns the DiscordGroupTag. | ||
| // <context.channel> returns the DiscordChannelTag. | ||
|
||
| // <context.user> returns the DiscordUserTag of the invitation creator. | ||
| // <context.code> returns the invitation code (after the latest "/" in the URL). | ||
|
||
| // <context.url> returns the invitation URL. | ||
| // --> | ||
|
|
||
| public static DiscordInviteCreateScriptEvent instance; | ||
|
|
||
| public DiscordInviteCreateScriptEvent() { | ||
| instance = this; | ||
| registerCouldMatcher("discord invitation created"); | ||
| registerSwitches("channel", "group"); | ||
| } | ||
|
|
||
| public GuildInviteCreateEvent getEvent() { | ||
| return (GuildInviteCreateEvent) event; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(ScriptPath path) { | ||
| if (!tryChannel(path, getEvent().getChannel())) { | ||
| return false; | ||
| } | ||
| if (!tryGuild(path, getEvent().getGuild())) { | ||
| return false; | ||
| } | ||
| return super.matches(path); | ||
| } | ||
|
|
||
| @Override | ||
| public ObjectTag getContext(String name) { | ||
| return switch (name) { | ||
| case "channel" -> new DiscordChannelTag(botID, getEvent().getChannel()); | ||
| case "group" -> new DiscordGroupTag(botID, getEvent().getGuild()); | ||
| case "user" -> new DiscordUserTag(botID, getEvent().getInvite().getInviter()); | ||
| case "code" -> new ElementTag(getEvent().getInvite().getCode(), true); | ||
| case "url" -> new ElementTag(getEvent().getInvite().getUrl(), true); | ||
| default -> super.getContext(name); | ||
| }; | ||
| } | ||
| } | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.