Skip to content

Commit 539ffa0

Browse files
Don't use a shutdown hook for server stopped message. too unreliable
1 parent b66b86f commit 539ffa0

File tree

5 files changed

+45
-3
lines changed

5 files changed

+45
-3
lines changed

src/main/java/de/olivermakesco/bta_utils/BtaUtilsMod.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,5 @@ public void onInitialize() {
1111
DiscordClient.init();
1212
DiscordChatRelay.sendMessageAsBot("**Server Started**");
1313
}).start();
14-
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
15-
DiscordChatRelay.sendMessageAsBot("**Server Stopped**");
16-
}));
1714
}
1815
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package de.olivermakesco.bta_utils.mixin.server;
2+
3+
import de.olivermakesco.bta_utils.server.DiscordChatRelay;
4+
import net.minecraft.core.entity.Entity;
5+
import net.minecraft.server.entity.player.EntityPlayerMP;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.Shadow;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
import org.spongepowered.asm.mixin.injection.Inject;
10+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
11+
12+
@Mixin(value = EntityPlayerMP.class, remap = false)
13+
public abstract class Mixin_EntityPlayerMP {
14+
@Shadow protected abstract String deathMessage(Entity entity);
15+
16+
@Inject(
17+
method = "onDeath",
18+
at = @At("RETURN")
19+
)
20+
void sendDeathMessage(Entity entity, CallbackInfo ci) {
21+
String message = deathMessage(entity).replaceAll("§.", "");
22+
DiscordChatRelay.sendMessageAsBot("**" + message + "**");
23+
}
24+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package de.olivermakesco.bta_utils.mixin.server;
2+
3+
import de.olivermakesco.bta_utils.server.DiscordChatRelay;
4+
import net.minecraft.server.MinecraftServer;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
@Mixin(value = MinecraftServer.class, remap = false)
11+
public class Mixin_MinecraftServer {
12+
@Inject(
13+
method = "initiateShutdown",
14+
at = @At("RETURN")
15+
)
16+
void sendStopMessage(CallbackInfo ci) {
17+
DiscordChatRelay.sendMessageAsBot("**Server stopped.**");
18+
}
19+
}

src/main/java/de/olivermakesco/bta_utils/server/DiscordChatRelay.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class DiscordChatRelay {
1111
public static void sendToMinecraft(String author, String message) {
1212
MinecraftServer server = MinecraftServer.getInstance();
1313
message = "[" + TextFormatting.PURPLE + "DISCORD" + TextFormatting.RESET + "] <" + author + "> " + message;
14+
System.out.println(message);
1415
String[] lines = message.split("\n");
1516
for (String chatMessage : lines) {
1617
server.configManager.sendEncryptedChatToAllPlayers(

src/main/resources/bta_utils.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"compatibilityLevel": "JAVA_8",
66
"mixins": [
77
"core.Mixin_BlockFarmland",
8+
"server.Mixin_EntityPlayerMP",
89
"server.Mixin_NetLoginHandler",
910
"server.Mixin_NetServerHandler"
1011
],

0 commit comments

Comments
 (0)