|
1 | 1 | package xyz.htmlcsjs.coffeeFloppa.handlers; |
2 | 2 |
|
| 3 | +import com.fasterxml.jackson.annotation.JsonProperty; |
3 | 4 | import discord4j.common.util.Snowflake; |
4 | 5 | import discord4j.core.event.domain.message.MessageCreateEvent; |
5 | 6 | import discord4j.core.event.domain.message.MessageDeleteEvent; |
6 | 7 | import discord4j.core.event.domain.message.MessageUpdateEvent; |
| 8 | +import discord4j.core.event.domain.thread.ThreadChannelCreateEvent; |
7 | 9 | import discord4j.core.object.entity.Message; |
8 | 10 | import discord4j.core.object.entity.User; |
9 | | -import discord4j.core.object.entity.channel.Channel; |
10 | | -import discord4j.core.object.entity.channel.GuildChannel; |
11 | | -import discord4j.core.object.entity.channel.MessageChannel; |
12 | | -import discord4j.core.object.entity.channel.PrivateChannel; |
| 11 | +import discord4j.core.object.entity.channel.*; |
13 | 12 | import discord4j.core.object.reaction.ReactionEmoji; |
14 | 13 | import discord4j.core.spec.MessageCreateFields; |
15 | 14 | import discord4j.core.spec.MessageCreateMono; |
16 | 15 | import discord4j.discordjson.json.EmojiData; |
| 16 | +import discord4j.rest.route.Routes; |
17 | 17 | import discord4j.rest.util.AllowedMentions; |
18 | 18 | import org.jetbrains.annotations.NotNull; |
19 | 19 | import reactor.core.publisher.Mono; |
@@ -141,6 +141,21 @@ private static Mono<Object> executeMessage(Message message, String msgContent) { |
141 | 141 | return amongVal; |
142 | 142 | } |
143 | 143 |
|
| 144 | + public static Mono<Object> threadCreate(ThreadChannelCreateEvent event) { |
| 145 | + ThreadChannel thread = event.getChannel(); |
| 146 | + Snowflake parentId = thread.getParentId().orElse(null); |
| 147 | + if (parentId != null && parentId.equals(Snowflake.of(FloppaTomlConfig.autoTagChannel))) { |
| 148 | + // i love APIs |
| 149 | + CoffeeFloppa.client.getChannelService(); |
| 150 | + return Routes.CHANNEL_MODIFY_PARTIAL.newRequest(thread.getId().asLong()) |
| 151 | + .body(new AddTagEditRequest(FloppaTomlConfig.autoTagId)) |
| 152 | + .optionalHeader("X-Audit-Log-Reason", "Floppa Automated") |
| 153 | + .exchange(CoffeeFloppa.client.getRestResources().getRouter()) |
| 154 | + .bodyToMono(Object.class); |
| 155 | + } |
| 156 | + return Mono.empty(); |
| 157 | + } |
| 158 | + |
144 | 159 | public static boolean sendMessage(Message ref, final String msg, boolean withReference) { |
145 | 160 | try { |
146 | 161 | Mono<Message> messageMono = Mono.empty(); |
@@ -257,4 +272,13 @@ public static void clearSearchCommands() { |
257 | 272 | public static String getCurrentMessageURL() { |
258 | 273 | return currentMessageURL; |
259 | 274 | } |
| 275 | + |
| 276 | + private static class AddTagEditRequest { |
| 277 | + @JsonProperty("applied_tags") |
| 278 | + private final List<Long> appliedTags; |
| 279 | + |
| 280 | + protected AddTagEditRequest(Long... tags) { |
| 281 | + this.appliedTags = List.of(tags); |
| 282 | + } |
| 283 | + } |
260 | 284 | } |
0 commit comments