- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathResultRenderer.java
49 lines (39 loc) · 1.84 KB
/
ResultRenderer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
packageorg.togetherjava.jshellbot.render;
importstaticorg.togetherjava.jshellbot.render.Colors.ERROR_COLOR;
importstaticorg.togetherjava.jshellbot.render.Colors.SUCCESS_COLOR;
importstaticorg.togetherjava.jshellbot.render.Colors.WARNING_COLOR;
importjava.awt.Color;
importnet.dv8tion.jda.api.EmbedBuilder;
importnet.dv8tion.jda.api.entities.MessageEmbed;
importnet.dv8tion.jda.api.entities.User;
importorg.togetherjava.jshellbot.backend.dto.JShellResult;
importorg.togetherjava.jshellbot.backend.dto.SnippetStatus;
importorg.togetherjava.jshellbot.util.Strings;
publicclassResultRenderer {
publicEmbedBuilderrenderToEmbed(Useroriginator, booleanpartOfSession, JShellResultresult, EmbedBuilderbuilder) {
System.out.println(result);
builder.setAuthor(originator.getEffectiveName() + "'s result");
builder.setColor(color(result.status()));
if (result.result() != null && !result.result().isBlank()) {
builder.addField("Result", result.result(), true);
}
if (result.status() == SnippetStatus.ABORTED) {
builder.setTitle("Request timed out");
}
Stringdescription = result.exception() == null ? result.errors().isEmpty() ? result.stdout() : String.join(", ", result.errors()) : result.exception().exceptionClass() + ":" + result.exception().exceptionMessage();
builder.setDescription(Strings.limitSize(description, MessageEmbed.DESCRIPTION_MAX_LENGTH));
if (partOfSession) {
builder.setFooter("Snippet " + result.id() + " of current session");
} else {
builder.setFooter("This result is not part of a session");
}
returnbuilder;
}
privateColorcolor(SnippetStatusstatus) {
returnswitch (status) {
caseVALID -> SUCCESS_COLOR;
caseRECOVERABLE_DEFINED, RECOVERABLE_NOT_DEFINED -> WARNING_COLOR;
caseREJECTED, ABORTED -> ERROR_COLOR;
};
}
}