Escape markdown in console
This commit is contained in:
parent
e3d5b17fab
commit
731d8251ff
|
@ -27,6 +27,7 @@ public class ConsoleConfig {
|
|||
+ "- ansi: A colored ansi code block\n"
|
||||
+ "- log: A \"accesslog\" code block\n"
|
||||
+ "- diff: A \"diff\" code block highlighting warnings and errors with different colors\n"
|
||||
+ "- markdown: Plain text with bold, italics, strikethrough and underlining\n"
|
||||
+ "- plain: Plain text code block\n"
|
||||
+ "- plain_content: Plain text")
|
||||
public OutputMode outputMode = OutputMode.ANSI;
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.discordsrv.api.discord.entity.guild.DiscordGuildMember;
|
|||
import com.discordsrv.api.discord.entity.message.ReceivedDiscordMessage;
|
||||
import com.discordsrv.api.discord.entity.message.SendableDiscordMessage;
|
||||
import com.discordsrv.api.discord.events.message.DiscordMessageReceiveEvent;
|
||||
import com.discordsrv.api.discord.util.DiscordFormattingUtil;
|
||||
import com.discordsrv.api.event.bus.Subscribe;
|
||||
import com.discordsrv.api.placeholder.provider.SinglePlaceholder;
|
||||
import com.discordsrv.common.DiscordSRV;
|
||||
|
@ -163,12 +164,15 @@ public class SingleConsoleHandler {
|
|||
queue.offer(entry);
|
||||
}
|
||||
|
||||
@SuppressWarnings("SynchronizeOnNonFinalField")
|
||||
public void shutdown() {
|
||||
shutdown = true;
|
||||
discordSRV.eventBus().unsubscribe(this);
|
||||
queueProcessingFuture.cancel(false);
|
||||
try {
|
||||
queueProcessingFuture.wait(TimeUnit.SECONDS.toMillis(3));
|
||||
synchronized (queueProcessingFuture) {
|
||||
queueProcessingFuture.wait(TimeUnit.SECONDS.toMillis(3));
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
|
@ -320,8 +324,18 @@ public class SingleConsoleHandler {
|
|||
int blockLength = outputMode.blockLength();
|
||||
int maximumPart = MESSAGE_MAX_LENGTH - blockLength - "\n".length();
|
||||
|
||||
// Escape content
|
||||
String plainMessage = entry.message();
|
||||
if (outputMode != ConsoleConfig.OutputMode.MARKDOWN) {
|
||||
if (outputMode == ConsoleConfig.OutputMode.PLAIN_CONTENT) {
|
||||
plainMessage = DiscordFormattingUtil.escapeContent(plainMessage);
|
||||
} else {
|
||||
plainMessage = plainMessage.replace("``", "`\u200B`"); // zero-width-space
|
||||
}
|
||||
}
|
||||
|
||||
String parsedMessage;
|
||||
ConsoleMessage consoleMessage = new ConsoleMessage(discordSRV, entry.message());
|
||||
ConsoleMessage consoleMessage = new ConsoleMessage(discordSRV, plainMessage);
|
||||
switch (outputMode) {
|
||||
case ANSI:
|
||||
parsedMessage = consoleMessage.asAnsi();
|
||||
|
|
Loading…
Reference in New Issue