1 parent
7d8bf9789f
commit
333f1bca4f
3 files changed
+41
No files matched your search
@@ -93,6 +93,7 @@ public class MQTTClient {
|
|||||||
client.subscribe("loon/player/+/position/request");
|
client.subscribe("loon/player/+/position/request");
|
||||||
client.subscribe("loon/world/chunks/+/+/request");
|
client.subscribe("loon/world/chunks/+/+/request");
|
||||||
client.subscribe("loon/server/info/request");
|
client.subscribe("loon/server/info/request");
|
||||||
|
client.subscribe("loon/playerlist/sync/request");
|
||||||
|
|
||||||
if (reconnect)
|
if (reconnect)
|
||||||
Loon.LOGGER.info("MQTT reconnected");
|
Loon.LOGGER.info("MQTT reconnected");
|
||||||
@@ -175,6 +176,10 @@ public class MQTTClient {
|
|||||||
if (topic.equals("loon/server/info/request")) {
|
if (topic.equals("loon/server/info/request")) {
|
||||||
RequestManager.addRequest(new ServerInfoRequest());
|
RequestManager.addRequest(new ServerInfoRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (topic.equals("loon/playerlist/sync/request")) {
|
||||||
|
RequestManager.addRequest(new PlayerListSyncRequest());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package ciomek.loon.mqtt.payload.player.list;
|
||||||
|
|
||||||
|
import ciomek.loon.mqtt.payload.Payload;
|
||||||
|
import ciomek.loon.mqtt.payload.data.PlayerIdentity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public record PlayerListSyncPayload(
|
||||||
|
List<PlayerIdentity> players
|
||||||
|
) implements Payload {
|
||||||
|
@Override
|
||||||
|
public List<String> topics() {
|
||||||
|
return List.of("loon/playerlist/sync");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package ciomek.loon.mqtt.request;
|
||||||
|
|
||||||
|
import ciomek.loon.mqtt.payload.data.PlayerIdentity;
|
||||||
|
import ciomek.loon.mqtt.payload.player.list.PlayerListSyncPayload;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public record PlayerListSyncRequest() implements IRequest {
|
||||||
|
@Override
|
||||||
|
public void handle(MinecraftServer server) {
|
||||||
|
List<PlayerIdentity> players = server.playerList.playerEntities.stream()
|
||||||
|
.map(player -> new PlayerIdentity(player.uuid, player.username))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
PlayerListSyncPayload payload = new PlayerListSyncPayload(players);
|
||||||
|
|
||||||
|
payload.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user