Skip to content

Commit

Permalink
Send a ping every minute to keep connection alive
Browse files Browse the repository at this point in the history
  • Loading branch information
Ale32bit committed Oct 26, 2024
1 parent db13869 commit f1e7546
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 9 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ yarn_mappings=1.20.1+build.10
loader_version=0.16.7

# Mod Properties
mod_version=1.7.4
mod_version=1.7.5
maven_group=cc.reconnected
archives_base_name=rcc-chatbox

# Dependencies
fabric_version=0.92.2+1.20.1

rccserver_version=1.14.3
rccserver_version=1.15.0
rccdiscord_version=1.7.8

permissions_api_version=0.2-SNAPSHOT
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/cc/reconnected/chatbox/Chatbox.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package cc.reconnected.chatbox;

import cc.reconnected.chatbox.command.ChatboxCommand;
import cc.reconnected.chatbox.packets.serverPackets.PingPacket;
import cc.reconnected.chatbox.state.StateSaverAndLoader;
import com.google.gson.Gson;
import cc.reconnected.chatbox.license.LicenseManager;
import cc.reconnected.chatbox.ws.WsServer;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.minecraft.util.WorldSavePath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -76,6 +78,13 @@ public void onInitialize() {
serverState = StateSaverAndLoader.getServerState(server);
});

var delay = 60 * 20;
ServerTickEvents.END_SERVER_TICK.register(server -> {
if(server.getTicks() % delay == 0) {
var pingPacket = new PingPacket();
wss.broadcastEvent(pingPacket, null);
}
});

ChatboxEvents.register();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package cc.reconnected.chatbox.packets.serverPackets;

public class PingPacket extends PacketBase {
public PingPacket() {
this.type = "ping";
}
}
13 changes: 7 additions & 6 deletions src/main/java/cc/reconnected/chatbox/ws/WsServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -236,21 +236,22 @@ public void onStart() {
public void broadcastEvent(Object packet, @Nullable Capability capability) {
var msg = Chatbox.GSON.toJson(packet);

List<WebSocket> recipients;
if (capability == null) {
recipients = clients.keySet().stream().toList();
broadcast(msg);
} else {
recipients = clients
var recipients = clients
.entrySet()
.stream()
.filter(e -> e.getValue().license.capabilities().contains(capability))
.map(Map.Entry::getKey)
.toList();
}

for (var conn : recipients) {
conn.send(msg);
for (var conn : recipients) {
conn.send(msg);
}
}


}

public void broadcastOwnerEvent(Object packet, @Nullable Capability capability, UUID ownerId) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"minecraft": "~1.20.1",
"java": ">=17",
"fabric-api": "*",
"rcc-server": ">=1.14.3",
"rcc-server": ">=1.15.0",
"rcc-discord": ">=1.7.8",
"luckperms": ">=5.4"
}
Expand Down

0 comments on commit f1e7546

Please sign in to comment.