Skip to content
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

Add support for guild scheduled events v2 #2047

Merged
merged 156 commits into from
Oct 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
70ebc43
Fix missing cache cleanup for news channels
Mitmocc Feb 19, 2022
83a08ef
Merge branch 'master' of https://github.com/DV8FromTheWorld/JDA
Mitmocc Feb 25, 2022
cbb0e5a
Implementing Guild Scheduled Events
Mitmocc Feb 25, 2022
a5d27ce
Merge branch 'master' of https://github.com/DV8FromTheWorld/JDA
Mitmocc Feb 25, 2022
149680a
Update EntityBuilder.java
Mitmocc Feb 25, 2022
2372abc
Update GuildUpdateHandler.java
Mitmocc Feb 25, 2022
8e1354a
event listeners for guild scheduled events
Mitmocc Feb 25, 2022
f07fc0b
event listeners for guild scheduled events
Mitmocc Feb 25, 2022
902e500
Update WebSocketClient.java
Mitmocc Feb 25, 2022
5a1939f
Update WebSocketClient.java
Mitmocc Feb 25, 2022
f9bc9ac
Add Intent for Guild Scheduled Events
Mitmocc Feb 25, 2022
6066409
Added guild scheduled event image update event
Mitmocc Feb 25, 2022
2aae8ff
Event handlers and intent for guild scheduled events
Mitmocc Feb 25, 2022
77c8016
small fix status instead of entity type in event handler
Mitmocc Feb 25, 2022
3c29770
bugfix null default value for channel_id
Mitmocc Feb 25, 2022
3580196
Update GuildScheduledEventUpdateHandler.java
Mitmocc Feb 25, 2022
9137f43
added some more guild scheduled event events to the listener adapter
Mitmocc Feb 25, 2022
0e74464
fixed naming of GUILD_SCHEDULED_EVENT_USER_X events
Mitmocc Feb 25, 2022
126c18b
fixed some bugs around user add and remove events
Mitmocc Feb 25, 2022
b739b3b
cache guild scheduled event on events if not cached
Mitmocc Feb 26, 2022
0e91d43
Update GuildScheduledEventUserAddHandler.java
Mitmocc Feb 26, 2022
6dbda7d
revert caching on user add and remove because its not sending the event
Mitmocc Feb 26, 2022
b3d56b4
revert prints used for testing
Mitmocc Feb 25, 2022
19a8f0d
Update GuildScheduledEvent.java
Mitmocc Feb 25, 2022
55c9fb0
Apply suggestions from code review
Mitmocc Feb 26, 2022
821cc98
Implement Get Guild Scheduled Event Users/Members
Mitmocc Feb 27, 2022
e5fc6c1
docs for the get users/members pagination action
Mitmocc Feb 27, 2022
05e0cbd
renamed getInterestedUser/Member methods and added check for start ti…
Mitmocc Feb 27, 2022
c4578c4
Apply suggestions from code review
Mitmocc Feb 27, 2022
aefbb9c
added "blank" case throwing exception to setName() docs
Mitmocc Feb 27, 2022
efe8b57
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Feb 27, 2022
e53d15f
changed getCreatorId() null value from -1 to 0 for consistency
Mitmocc Feb 27, 2022
979bc65
combined UserAddHandler and UserRemoveHandler to UserHandler with boo…
Mitmocc Feb 27, 2022
e499ff1
Update GuildScheduledEventUserHandler.java
Mitmocc Feb 27, 2022
c7edd6a
remove deleted guild scheduled events from cache as consequence of th…
Mitmocc Feb 28, 2022
11dd811
Apply suggestions from code review
Mitmocc Mar 2, 2022
7a049ed
removed redundant @NotNull
Mitmocc Mar 2, 2022
ea7d942
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Mar 2, 2022
55bc03c
Apply suggestions from code review
Mitmocc Mar 2, 2022
3d28bbc
removed some "retrieve" wording on the docs to not cause confusion
Mitmocc Mar 2, 2022
9d68501
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Mar 2, 2022
6e031a7
Update GuildScheduledEventUpdateLocationEvent.java
Mitmocc Mar 6, 2022
f368e5c
small bugfix in the Update events for Guild Scheduled events
Mitmocc Mar 6, 2022
633fe62
remove blank/empty checks from description setter
Mitmocc Mar 10, 2022
00050f8
Apply suggestions from code review
Mitmocc Apr 4, 2022
7903813
Apply suggestions from code review
Mitmocc Apr 4, 2022
fa68449
Update Guild.java
Mitmocc Apr 4, 2022
d7b0d4f
Apply suggestions from code review
Mitmocc Apr 4, 2022
ca0ad04
Update Guild.java
Mitmocc Apr 4, 2022
b3e1163
Apply suggestions from code review
Mitmocc Apr 4, 2022
07e7050
implement a general getChannel() method
Mitmocc Apr 4, 2022
80eabc0
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Apr 4, 2022
9917fc0
Merge branch 'master' into v5-guild_scheduled_events
Mitmocc Apr 4, 2022
f9ecedd
Update GuildDeleteHandler.java
Mitmocc Apr 4, 2022
563e117
minor doc fix and String.value of replace with Long.toUnsignedString
Mitmocc Apr 4, 2022
1765e95
Apply suggestions from code review
Mitmocc Apr 4, 2022
4c4a007
Update GuildScheduledEventUpdateLocationEvent.java
Mitmocc Apr 4, 2022
a8a5be7
Apply suggestions from code review
Mitmocc Apr 4, 2022
7fd9698
Update GenericGuildScheduledEventGatewayEvent.java
Mitmocc Apr 4, 2022
79cf740
Apply suggestions from code review
Mitmocc Apr 4, 2022
d24d6e7
Update JDA.java
Mitmocc Apr 4, 2022
e787dd1
annotation fixes
Mitmocc Apr 5, 2022
7c0efae
nullable fixes for descr, endtime, image
Mitmocc Apr 5, 2022
e5e25cb
converted parameter from OffsetDateTime to TemporalAccessor
Mitmocc Apr 5, 2022
7a5eddf
addding cacheflag for guild scheduled events
Mitmocc Apr 5, 2022
c119c9e
Update EntityBuilder.java
Mitmocc Apr 5, 2022
d752444
Update GuildScheduledEventCreateHandler.java
Mitmocc Apr 5, 2022
2fcde63
cacheflag for the remaining events
Mitmocc Apr 6, 2022
2e13d15
Merge branch 'master' into v5-guild_scheduled_events
Mitmocc Jul 3, 2022
0d05625
cleanup after upstream fetch
Mitmocc Jul 3, 2022
5f05a49
removed abstraction of Location
Mitmocc Jul 4, 2022
0d73522
added getOffSetDateTime() to DataArray
Mitmocc Jul 4, 2022
357380b
Update GuildImpl.java
Mitmocc Jul 4, 2022
ee9e26a
Update GuildImpl.java
Mitmocc Jul 4, 2022
5ffd236
made type into a field in the class
Mitmocc Jul 4, 2022
34e8118
indentation fix
Mitmocc Jul 4, 2022
a1ac34d
Update ChannelDeleteHandler.java
Mitmocc Jul 4, 2022
38cff80
changed type to Guild
Mitmocc Jul 4, 2022
507355a
removed the check for null
Mitmocc Jul 4, 2022
fcb38d8
Update GuildScheduledEventUserHandler.java
Mitmocc Jul 4, 2022
3c54055
both directions for pagination
Mitmocc Jul 4, 2022
612e239
removed getStageChannel() and getVoiceChannel()
Mitmocc Jul 4, 2022
da02298
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Jul 5, 2022
3c6a6ba
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Jul 7, 2022
f1efd19
Merge branch 'master' into v5-guild_scheduled_events
Mitmocc Jul 18, 2022
1f9e916
added getUser() and getMember() aswell as the retrieve functions for …
Mitmocc Jul 18, 2022
8b29591
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Jul 18, 2022
66bd10e
Update GuildScheduledEventImpl.java
Mitmocc Jul 18, 2022
3e5a6c2
Update GuildImpl.java
Mitmocc Jul 21, 2022
b17ea01
Update GuildImpl.java
Mitmocc Jul 21, 2022
5fee5b5
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Jul 24, 2022
2cee0c2
Merge branch 'master' into v5-guild_scheduled_events
Mitmocc Aug 3, 2022
eb26482
docs fix
Mitmocc Aug 3, 2022
17bd2bf
parameters into method
Mitmocc Aug 16, 2022
a04401e
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Aug 16, 2022
56c2f98
Update GuildScheduledEventActionImpl.java
Mitmocc Aug 16, 2022
4163d84
Revert "Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled…
Mitmocc Aug 16, 2022
abbcda0
reverting some latest master changes so I don't have to rewrite while…
Mitmocc Aug 16, 2022
6f94f14
add endtime check if not external location
Mitmocc Aug 16, 2022
1591617
docs + name length check
Mitmocc Aug 16, 2022
4b4695b
changed some checks and docs
Mitmocc Aug 16, 2022
82acae9
location length fix
Mitmocc Aug 16, 2022
be24430
Update GuildScheduledEventActionImpl.java
Mitmocc Aug 16, 2022
ff230ca
more docs
Mitmocc Aug 16, 2022
1598a98
Update src/main/java/net/dv8tion/jda/internal/requests/WebSocketClien…
Mitmocc Aug 16, 2022
360bdcb
Update GuildScheduledEventManagerImpl.java
Mitmocc Aug 16, 2022
6305860
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Aug 16, 2022
cee43d0
Update GuildScheduledEventManagerImpl.java
Mitmocc Aug 17, 2022
c68dcc9
RestAction to CacheRestAction
Mitmocc Aug 17, 2022
22789e0
Update src/main/java/net/dv8tion/jda/api/audit/ActionType.java
Mitmocc Aug 17, 2022
4e0b879
Update Guild.java
Mitmocc Aug 17, 2022
4ad530d
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Aug 17, 2022
b2159e8
Update Guild.java
Mitmocc Aug 17, 2022
35f232a
annotations added
Mitmocc Aug 17, 2022
d61002f
docs
Mitmocc Aug 19, 2022
1a49e2f
Update src/main/java/net/dv8tion/jda/api/managers/GuildScheduledEvent…
Mitmocc Aug 19, 2022
c346c84
Apply suggestions from code review
Mitmocc Aug 19, 2022
c3b4524
docs and small fixes
Mitmocc Aug 19, 2022
cb5807b
fix forEachAsync example
Mitmocc Aug 19, 2022
663b06c
Update DataArray.java
Mitmocc Aug 19, 2022
5917424
nonnull annotations fixed
Mitmocc Aug 19, 2022
470569c
Update src/main/java/net/dv8tion/jda/internal/entities/EntityBuilder.…
Mitmocc Aug 19, 2022
edeb288
Apply suggestions from code review
Mitmocc Aug 19, 2022
d8e8fb7
removed unnecessary null check
Mitmocc Aug 19, 2022
3f1b249
code suggestions
Mitmocc Aug 19, 2022
0b6ff39
entityType to enum by San32
Mitmocc Aug 21, 2022
ea51bb4
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Aug 27, 2022
f88d43e
reverting the revert monkaS
Mitmocc Aug 27, 2022
38cb312
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Sep 3, 2022
d3223b3
docs for method parameters
Mitmocc Sep 3, 2022
209687d
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Sep 3, 2022
4fcf8ce
Update Guild.java
Mitmocc Sep 3, 2022
7fe0a61
Update src/main/java/net/dv8tion/jda/api/entities/GuildScheduledEvent…
Mitmocc Sep 3, 2022
e521b8a
Update Guild.java
Mitmocc Sep 3, 2022
2773e87
Update src/main/java/net/dv8tion/jda/internal/requests/restaction/Gui…
Mitmocc Sep 3, 2022
00074fd
entityType to enum
Mitmocc Sep 3, 2022
27125ce
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Sep 3, 2022
6329d4a
Update GuildScheduledEvent.java
Mitmocc Sep 3, 2022
9d07583
remove redundant throw when end time provided for non-external event
Mitmocc Sep 3, 2022
f24b854
Apply suggestions from code review
Mitmocc Sep 3, 2022
45bb6c0
cacheflag fix
Mitmocc Sep 3, 2022
f76f71c
Merge branch 'v5-guild_scheduled_events' of https://github.com/Mitmoc…
Mitmocc Sep 3, 2022
ec961b7
adding setters and moving checks into setters
Mitmocc Sep 4, 2022
fe321f7
bugfix
Mitmocc Sep 6, 2022
e7308db
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Sep 13, 2022
05c477c
adapting channel package changes
Mitmocc Sep 13, 2022
896c0d1
Merge branch 'master' into v5-guild_scheduled_events
Mitmocc Sep 22, 2022
db9e68f
Merge remote-tracking branch 'origin/master' into pr2047-events
MinnDevelopment Oct 4, 2022
035e3aa
Cleanup some checks
MinnDevelopment Oct 4, 2022
0efd358
Remove retrieveInterestedUsers
MinnDevelopment Oct 12, 2022
f40d1e4
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Oct 12, 2022
ebde44f
added check for start/endtime to be < 5 years away
Mitmocc Oct 14, 2022
9047c9a
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Oct 19, 2022
3f32de9
Merge branch 'DV8FromTheWorld:master' into v5-guild_scheduled_events
Mitmocc Oct 22, 2022
a34c8bd
added GenericScheduledEventUserEvent, renamed everything for GuildSch…
Mitmocc Oct 22, 2022
707563b
Update src/main/java/net/dv8tion/jda/internal/handle/ChannelDeleteHan…
Mitmocc Oct 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions src/main/java/net/dv8tion/jda/api/JDA.java
Original file line number Diff line number Diff line change
Expand Up @@ -1234,6 +1234,87 @@ default List<Role> getRolesByName(@Nonnull String name, boolean ignoreCase)
{
return getRoleCache().getElementsByName(name, ignoreCase);
}
/**
* {@link SnowflakeCacheView} of
* all cached {@link ScheduledEvent ScheduledEvents} visible to this JDA session.
*
* @return {@link SnowflakeCacheView}
*/
@Nonnull
SnowflakeCacheView<ScheduledEvent> getScheduledEventCache();

/**
* An unmodifiable list of all {@link ScheduledEvent ScheduledEvents} of all connected
* {@link net.dv8tion.jda.api.entities.Guild Guilds}.
DV8FromTheWorld marked this conversation as resolved.
Show resolved Hide resolved
*
* <p>This copies the backing store into a list. This means every call
* creates a new list with O(n) complexity. It is recommended to store this into
* a local variable or use {@link #getScheduledEventCache()} and use its more efficient
* versions of handling these values.
*
* @return Possibly-empty immutable list of all known {@link ScheduledEvent ScheduledEvents}.
*/
@Nonnull
default List<ScheduledEvent> getScheduledEvents()
{
return getScheduledEventCache().asList();
}

/**
* This returns the {@link ScheduledEvent} which has the same id as the one provided.
* <br>If there is no known {@link ScheduledEvent} with an id that matches the provided
* one, then this returns {@code null}.
*
* @param id
* The id of the {@link ScheduledEvent}.
*
* @throws java.lang.NumberFormatException
* If the provided {@code id} cannot be parsed by {@link Long#parseLong(String)}
*
* @return Possibly-null {@link ScheduledEvent} with a matching id.
*/
@Nullable
default ScheduledEvent getScheduledEventById(@Nonnull String id)
{
return getScheduledEventCache().getElementById(id);
}

/**
* This returns the {@link ScheduledEvent} which has the same id as the one provided.
* <br>If there is no known {@link ScheduledEvent} with an id that matches the provided
* one, then this returns {@code null}.
*
* @param id
* The id of the {@link ScheduledEvent}.
*
* @return Possibly-null {@link ScheduledEvent} with a matching id.
*/
@Nullable
default ScheduledEvent getScheduledEventById(long id)
{
return getScheduledEventCache().getElementById(id);
}

/**
* An unmodifiable list of all {@link ScheduledEvent ScheduledEvents} that have the same name as the one provided.
* <br>If there are no {@link ScheduledEvent ScheduledEvents} with the provided name, then this returns an empty list.
*
* @param name
* The name of the requested {@link ScheduledEvent}.
* @param ignoreCase
* Whether to ignore case or not when comparing the provided name to each {@link ScheduledEvent#getName()}.
*
* @throws IllegalArgumentException
* If the provided name is null.
*
* @return Possibly-empty immutable list of all the {@link ScheduledEvent ScheduledEvents} that all have the
* same name as the provided name.
*/
@Nonnull
default List<ScheduledEvent> getScheduledEventsByName(@Nonnull String name, boolean ignoreCase)
{
return getScheduledEventCache().getElementsByName(name, ignoreCase);
}

@Nullable
@Override
Expand Down
1 change: 1 addition & 0 deletions src/main/java/net/dv8tion/jda/api/Permission.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public enum Permission
MANAGE_PERMISSIONS( 28, false, true, "Manage Permissions"),
MANAGE_WEBHOOKS( 29, true, true, "Manage Webhooks"),
MANAGE_EMOJIS_AND_STICKERS(30, true, false, "Manage Emojis and Stickers"),
MANAGE_EVENTS( 33, true, true, "Manage Events"),

// Membership Permissions
CREATE_INSTANT_INVITE(0, true, true, "Create Instant Invite"),
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/net/dv8tion/jda/api/audit/ActionType.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package net.dv8tion.jda.api.audit;

import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.ScheduledEvent;
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.emoji.RichCustomEmoji;

Expand Down Expand Up @@ -494,6 +495,21 @@ public enum ActionType
*/
STAGE_INSTANCE_DELETE(85, TargetType.STAGE_INSTANCE),

/**
* A user created a {@link ScheduledEvent ScheduledEvent}
*/
SCHEDULED_EVENT_CREATE(100, TargetType.SCHEDULED_EVENT),

/**
* A user updated a {@link ScheduledEvent ScheduledEvent}
*/
SCHEDULED_EVENT_UPDATE(101, TargetType.SCHEDULED_EVENT),

/**
* A user deleted/cancelled a {@link ScheduledEvent ScheduledEvent}
*/
SCHEDULED_EVENT_DELETE(102, TargetType.SCHEDULED_EVENT),

/**
* An Administrator created a {@link net.dv8tion.jda.api.entities.sticker.GuildSticker GuildSticker}.
*
Expand Down
1 change: 1 addition & 0 deletions src/main/java/net/dv8tion/jda/api/audit/TargetType.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,6 @@ public enum TargetType
STAGE_INSTANCE,
STICKER,
THREAD,
SCHEDULED_EVENT,
UNKNOWN
}
Loading