Skip to content

Commit 9ba60fd

Browse files
committed
Escape Discord Markdown characters
Stuff like underscore in username occasionally trips up Discord's display, causing it to be italic or whatever even though it's not the same in-game.
1 parent 7242b56 commit 9ba60fd

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

‎build.gradle‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ dependencies {
3535
include 'com.squareup.okio:okio:1.17.2'
3636
include "com.neovisionaries:nv-websocket-client:2.14"
3737
include 'com.squareup.okhttp3:okhttp:4.12.0'
38-
include "net.sf.trove4j:trove4j:3.1.0"
38+
include "net.sf.trove4j:trove4j:3.0.3"
3939

4040
// Fabric API. This is technically optional, but you probably want it anyway.
4141
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

‎src/main/java/com/lx862/dclink/bridges/DiscordBridge.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import java.util.regex.Pattern;
3434

3535
public class DiscordBridge extends ListenerAdapter implements Bridge {
36-
private static final Pattern EMBED_PATTERN = Pattern.compile("(<<<.+>>>)");
3736
private static final Logger LOGGER = LogManager.getLogger("DCLinkDiscord");
3837
private final MinecraftSource source;
3938
private final DiscordConfig config;
@@ -79,6 +78,8 @@ public void login() {
7978
public void disconnect() {
8079
isReady = false;
8180
client.shutdown();
81+
client.getHttpClient().connectionPool().evictAll();
82+
client.getHttpClient().dispatcher().executorService().shutdown();
8283
}
8384

8485
public void updateStatus(String status) {

‎src/main/java/com/lx862/dclink/data/MinecraftPlaceholder.java‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,20 @@ private void setTeamPlaceholder(String objName, Team team) {
8787
addPlaceholder(objName, "displayName", team.getDisplayName().getString());
8888
}
8989
}
90+
91+
@Override
92+
public void addPlaceholder(String key, String value) {
93+
super.addPlaceholder(key, escapeDiscordChars(value));
94+
}
95+
96+
private static String escapeDiscordChars(String s) {
97+
return s == null ? s :
98+
s.replace("_", "\\_")
99+
.replace("#", "\\#")
100+
.replace("-", "\\-")
101+
.replace("*", "\\*")
102+
.replace("`", "\\`")
103+
.replace(">", "\\`")
104+
.replace("||", "\\||");
105+
}
90106
}

0 commit comments

Comments
 (0)