Skip to content

Commit c87680d

Browse files
committed
Update to D4J 3.3.0
1 parent 86120c7 commit c87680d

File tree

11 files changed

+44
-50
lines changed

11 files changed

+44
-50
lines changed

build.gradle

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,9 @@
1-
buildscript {
2-
repositories {
3-
mavenCentral()
4-
mavenLocal()
5-
}
6-
dependencies {
7-
classpath 'org.ajoberstar:gradle-git:0.8.0'
8-
}
9-
}
10-
111
plugins {
122
id 'com.github.johnrengelman.shadow' version '4.0.4'
3+
id 'org.ajoberstar.grgit' version '5.0.0'
134
}
145

15-
apply plugin: 'maven'
6+
apply plugin: 'maven-publish'
167
apply plugin: 'java'
178
apply plugin: 'eclipse'
189
apply plugin: 'idea'
@@ -23,8 +14,7 @@ description = "Discord bot with MCP lookups and more"
2314
sourceCompatibility = 1.8
2415
targetCompatibility = 1.8
2516

26-
import org.ajoberstar.grgit.Grgit
27-
def repo = Grgit.open(project.file('.'))
17+
def repo = grgit.open(dir: project.projectDir)
2818

2919
if (System.getenv('BUILD_NUMBER') != null) {
3020
version += ".${System.getenv('BUILD_NUMBER')}"
@@ -71,7 +61,7 @@ repositories {
7161
}
7262

7363
dependencies {
74-
implementation 'com.discord4j:discord4j-core:3.1.1'
64+
implementation 'com.discord4j:discord4j-core:3.3.0-SNAPSHOT'
7565
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.0'
7666
implementation 'org.pircbotx:pircbotx:2.3-SNAPSHOT'
7767
implementation 'org.jsoup:jsoup:1.11.3'

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

src/main/java/com/tterrag/k9/K9.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
import discord4j.core.event.domain.lifecycle.ReadyEvent;
4242
import discord4j.core.event.domain.message.MessageCreateEvent;
4343
import discord4j.core.event.domain.message.ReactionAddEvent;
44-
import discord4j.core.object.presence.Activity;
45-
import discord4j.core.object.presence.Presence;
44+
import discord4j.core.object.presence.ClientActivity;
45+
import discord4j.core.object.presence.ClientPresence;
4646
import discord4j.core.shard.GatewayBootstrap;
4747
import discord4j.gateway.GatewayOptions;
4848
import discord4j.gateway.intent.Intent;
@@ -158,7 +158,7 @@ public Mono<Void> start() {
158158
.doOnNext(guilds -> guilds.forEach(g -> log.info("\t" + g.getName()))),
159159
c.getSelf() // Set initial presence
160160
.map(u ->"@" + u.getUsername() + " help")
161-
.flatMap(s -> c.updatePresence(Presence.online(Activity.playing(s))))
161+
.flatMap(s -> c.updatePresence(ClientPresence.online(ClientActivity.playing(s))))
162162
))
163163
.then())
164164

src/main/java/com/tterrag/k9/commands/CommandClojure.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public CommandClojure() {
148148
.bind("discriminator", Member::getDiscriminator)
149149
.bind("bot", Member::isBot)
150150
.bind("avatar", Member::getAvatarUrl)
151-
.bind("joined", Member::getJoinTime)
151+
.bindOptional("joined", Member::getJoinTime, Instant.class)
152152
.bindRecursive("presence", m -> m.getPresence().block(), new TypeBinding<Presence>("Presence")
153153
.bind("status", p -> p.getStatus().toString())
154154
.bindRecursiveOptional("activity", p -> p.getActivity(), new TypeBinding<Activity>("Activity")
@@ -278,8 +278,8 @@ public String toString() {
278278
.bindOptional("color", e -> e.getColor().map(c -> new int[] {c.getRed(), c.getGreen(), c.getBlue()}), int[].class)
279279
.bindRecursiveOptional("footer", Embed::getFooter, new TypeBinding<Footer>("Footer")
280280
.bind("text", Footer::getText)
281-
.bind("icon", Footer::getIconUrl)
282-
.bind("icon_proxy_url", Footer::getProxyIconUrl))
281+
.bindOptional("icon", Footer::getIconUrl, String.class)
282+
.bindOptional("icon_proxy_url", Footer::getProxyIconUrl, String.class))
283283
.bindRecursiveOptional("image", Embed::getImage, new TypeBinding<Image>("Image")
284284
.bind("url", Image::getUrl)
285285
.bind("proxy_url", Image::getProxyUrl)
@@ -295,13 +295,13 @@ public String toString() {
295295
.bind("height", Video::getHeight)
296296
.bind("width", Video::getWidth))
297297
.bindRecursiveOptional("provider", Embed::getProvider, new TypeBinding<Provider>("Provider")
298-
.bind("name", Provider::getName)
298+
.bindOptional("name", Provider::getName, String.class)
299299
.bindOptional("url", Provider::getUrl, String.class))
300300
.bindRecursiveOptional("author", Embed::getAuthor, new TypeBinding<Author>("Author")
301-
.bind("name", Author::getName)
302-
.bind("url", Author::getUrl)
303-
.bind("icon_url", Author::getIconUrl)
304-
.bind("icon_proxy_url", Author::getProxyIconUrl))
301+
.bindOptional("name", Author::getName, String.class)
302+
.bindOptional("url", Author::getUrl, String.class)
303+
.bindOptional("icon_url", Author::getIconUrl, String.class)
304+
.bindOptional("icon_proxy_url", Author::getProxyIconUrl, String.class))
305305
.bindRecursiveMany("fields", Embed::getFields, new TypeBinding<Field>("Field")
306306
.bind("name", Field::getName)
307307
.bind("value", Field::getValue)

src/main/java/com/tterrag/k9/commands/CommandKickClear.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public Mono<?> process(CommandContext ctx) {
6565

6666
try {
6767
if (confirmed) {
68-
for (User user : ctx.getMessage().getUserMentions().collectList().block()) {
68+
for (User user : ctx.getMessage().getUserMentions()) {
6969
channel.getGuild().block().kick(user.getId());
7070
Flux<Snowflake> toDelete = ((TextChannel)channel).getMessagesAfter(Snowflake.of(Instant.now().minus(Duration.ofDays(1))))
7171
.filter(m -> m.getAuthor().get().getId().equals(user.getId()))

src/main/java/com/tterrag/k9/commands/CommandQuote.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import discord4j.core.object.entity.User;
3838
import discord4j.core.object.entity.channel.TextChannel;
3939
import discord4j.core.object.reaction.ReactionEmoji;
40-
import discord4j.core.spec.EmbedCreateSpec;
40+
import discord4j.core.spec.legacy.LegacyEmbedCreateSpec;
4141
import discord4j.rest.util.Permission;
4242
import lombok.EqualsAndHashCode;
4343
import lombok.Getter;
@@ -53,7 +53,7 @@ public class CommandQuote extends CommandPersisted<ConcurrentHashMap<Integer, Qu
5353

5454
private interface BattleMessageSupplier {
5555

56-
Consumer<EmbedCreateSpec> getMessage(long duration, long remaining);
56+
Consumer<LegacyEmbedCreateSpec> getMessage(long duration, long remaining);
5757

5858
}
5959

@@ -169,7 +169,7 @@ public void run() {
169169
while ((sysTime = System.currentTimeMillis()) <= endTime - 100 /* add some epsilon so we don't post 0s edits */) {
170170
long remaining = endTime - sysTime;
171171
if (!first) {
172-
Consumer<EmbedCreateSpec> e = msgSupplier.getMessage(time, remaining);
172+
Consumer<LegacyEmbedCreateSpec> e = msgSupplier.getMessage(time, remaining);
173173
msg.edit(spec -> spec.setEmbed(e)).subscribe();
174174
}
175175
first = false;
@@ -246,14 +246,14 @@ private String formatDuration(long ms) {
246246
return DurationFormatUtils.formatDuration(ms, fmt);
247247
}
248248

249-
private Consumer<EmbedCreateSpec> appendRemainingTime(EmbedCreator.Builder builder, long duration, long remaining) {
249+
private Consumer<LegacyEmbedCreateSpec> appendRemainingTime(EmbedCreator.Builder builder, long duration, long remaining) {
250250
return builder.footerText(
251251
"This battle will last " + DurationFormatUtils.formatDurationWords(duration, true, true) + " | " +
252252
"Remaining: " + formatDuration(remaining)
253253
).build();
254254
}
255255

256-
private Consumer<EmbedCreateSpec> getBattleMessage(int q1, int q2, Quote quote1, Quote quote2, long duration, long remaining) {
256+
private Consumer<LegacyEmbedCreateSpec> getBattleMessage(int q1, int q2, Quote quote1, Quote quote2, long duration, long remaining) {
257257
EmbedCreator.Builder builder = EmbedCreator.builder()
258258
.title("QUOTE BATTLE")
259259
.description("Vote for the quote you want to win!")
@@ -262,7 +262,7 @@ private Consumer<EmbedCreateSpec> getBattleMessage(int q1, int q2, Quote quote1,
262262
return appendRemainingTime(builder, duration, remaining);
263263
}
264264

265-
private Consumer<EmbedCreateSpec> getRunoffMessage(int q, Quote quote, long duration, long remaining) {
265+
private Consumer<LegacyEmbedCreateSpec> getRunoffMessage(int q, Quote quote, long duration, long remaining) {
266266
EmbedCreator.Builder builder = EmbedCreator.builder()
267267
.title("Kill or Spare?")
268268
.description("Quote #" + q + " has lost the battle. Should it be spared a grisly death?\n"
@@ -539,9 +539,10 @@ public Mono<?> process(CommandContext ctx) {
539539
} catch (NumberFormatException e) {
540540
if (!ctx.getMessage().getUserMentionIds().isEmpty()) {
541541
creator = ctx.getMessage().getUserMentions()
542+
.stream()
542543
.filter(u -> creatorName.contains("" + u.getId().asLong()))
543-
.next()
544-
.block();
544+
.findFirst()
545+
.orElse(null);
545546
}
546547
}
547548
if (creator != null) {

src/main/java/com/tterrag/k9/commands/CommandSlap.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.tterrag.k9.util.Requirements.RequiredType;
2020

2121
import discord4j.rest.util.Permission;
22+
import reactor.core.publisher.Flux;
2223
import reactor.core.publisher.Mono;
2324

2425
@Command
@@ -90,7 +91,7 @@ public Mono<?> process(CommandContext ctx) {
9091
String target = ctx.getArg(ARG_TARGET).trim();
9192

9293
return Mono.zip(ctx.getClient().getSelf().flatMap(ctx::getDisplayName),
93-
ctx.getMessage().getUserMentions().any(u -> u.getId().equals(ctx.getClient().getSelfId())),
94+
Flux.fromIterable(ctx.getMessage().getUserMentions()).any(u -> u.getId().equals(ctx.getClient().getSelfId())),
9495
ctx.getDisplayName())
9596
.flatMap(t -> {
9697
boolean nou = target.equalsIgnoreCase(t.getT1()) || t.getT2();

src/main/java/com/tterrag/k9/commands/api/CommandContext.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import discord4j.core.object.entity.channel.GuildChannel;
3030
import discord4j.core.object.entity.channel.MessageChannel;
3131
import discord4j.core.spec.EmbedCreateSpec;
32+
import discord4j.core.spec.legacy.LegacyEmbedCreateSpec;
3233
import discord4j.rest.util.AllowedMentions;
3334
import discord4j.common.util.Snowflake;
3435
import lombok.AccessLevel;
@@ -152,11 +153,11 @@ public Disposable replyFinal(String message) {
152153
return reply(message).subscribe();
153154
}
154155

155-
public Mono<Message> reply(Consumer<? super EmbedCreateSpec> message) {
156-
return getMessage().getChannel().flatMap(c -> c.createMessage(m -> m.setEmbed(message)));
156+
public Mono<Message> reply(Consumer<? super LegacyEmbedCreateSpec> message) {
157+
return getMessage().getChannel().flatMap(c -> c.createMessage(m -> m.addEmbed(message)));
157158
}
158159

159-
public Mono<Message> progress(Consumer<? super EmbedCreateSpec> message) {
160+
public Mono<Message> progress(Consumer<? super LegacyEmbedCreateSpec> message) {
160161
return reply(message).transform(this::andThenType);
161162
}
162163

@@ -173,7 +174,7 @@ public <T> Mono<T> andThenType(Mono<T> after) {
173174
}
174175

175176
@Deprecated
176-
public Disposable replyFinal(Consumer<? super EmbedCreateSpec> message) {
177+
public Disposable replyFinal(Consumer<? super LegacyEmbedCreateSpec> message) {
177178
return reply(message).subscribe();
178179
}
179180

src/main/java/com/tterrag/k9/listeners/CommandListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import com.tterrag.k9.commands.api.CommandRegistrar;
1515
import com.tterrag.k9.commands.api.ICommand;
1616

17-
import discord4j.core.event.domain.message.MessageCreateEvent;
1817
import discord4j.common.util.Snowflake;
18+
import discord4j.core.event.domain.message.MessageCreateEvent;
1919
import lombok.RequiredArgsConstructor;
2020
import lombok.extern.slf4j.Slf4j;
2121
import reactor.core.publisher.Mono;
@@ -47,7 +47,7 @@ public Mono<MessageCreateEvent> onMessage(MessageCreateEvent event) {
4747
private Mono<Void> tryInvoke(MessageCreateEvent evt) {
4848
// Hardcoded check for "@K9 help" for a global help command
4949
Mono<String> specialHelpCheck = Mono.just(evt.getMessage())
50-
.filterWhen(msg -> msg.getUserMentions().next().map(u -> evt.getClient().getSelfId().equals(u.getId())))
50+
.filter(msg -> !msg.getUserMentions().isEmpty() && msg.getUserMentions().get(0).getId().equals(evt.getClient().getSelfId()))
5151
.map(msg -> msg.getContent().replaceAll("<@!?" + evt.getClient().getSelfId().asLong() + ">", "").trim())
5252
.filter(content -> content.toLowerCase(Locale.ROOT).matches("^help.*"))
5353
.flatMap(content -> commands.invokeCommand(evt, "help", content.substring(4).trim()).thenReturn(""));

src/main/java/com/tterrag/k9/logging/PrettifyMessageCreate.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import discord4j.core.DiscordClient;
1818
import discord4j.core.object.entity.channel.Channel;
1919
import discord4j.core.object.entity.channel.PrivateChannel;
20+
import discord4j.discordjson.Id;
2021
import discord4j.discordjson.json.ChannelData;
2122
import discord4j.discordjson.json.GuildFields;
2223
import discord4j.discordjson.json.MessageData;
@@ -31,8 +32,8 @@
3132
public class PrettifyMessageCreate extends TurboFilter {
3233

3334
public static DiscordClient client;
34-
private static Cache<String, String> channelNames = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.HOURS).build();
35-
private static Map<String, String> guildNames = new HashMap<>();
35+
private static Cache<Id, String> channelNames = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.HOURS).build();
36+
private static Map<Id, String> guildNames = new HashMap<>();
3637

3738
@Override
3839
public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) {
@@ -52,12 +53,12 @@ public FilterReply decide(Marker marker, Logger logger, Level level, String form
5253
.switchIfEmpty(chan.ofType(PrivateChannel.class).map(c -> "[DM]"))
5354
.doOnNext(n -> channelNames.put(msg.channelId(), n));
5455
} else {
55-
channelName = Mono.just(msg.channelId());
56+
channelName = Mono.just(msg.channelId().asString());
5657
}
5758
} else {
5859
channelName = Mono.just(channel);
5960
}
60-
String guildId = msg.guildId().get();
61+
Id guildId = msg.guildId().get();
6162
Mono<String> guildName;
6263
if (guildId != null) {
6364
String name = guildNames.get(guildId);
@@ -67,7 +68,7 @@ public FilterReply decide(Marker marker, Logger logger, Level level, String form
6768
.map(GuildFields::name)
6869
.doOnNext(n -> guildNames.put(guildId, n));
6970
} else {
70-
guildName = Mono.just(guildId);
71+
guildName = Mono.just(guildId.asString());
7172
}
7273
} else {
7374
guildName = Mono.just(name);

0 commit comments

Comments
 (0)