1// Paper 1.18 – Java 17 · ProxyBridge
2package at.walterproduktions.network;
3
4public final class HubengineHandler extends JavaPlugin implements Listener {
5 private final ProxyBridge bridge = ProxyBridge.redis(config.redis());
6 private final QueueService queue = new QueueService(bridge);
7
8 @Override
9 public void onEnable() {
10 saveDefaultConfig();
11 getServer().getPluginManager().registerEvents(this, this);
12 getServer().getAsyncScheduler().runAtFixedRate(this, t -> tick(), 1, 20, SECONDS);
13 getLogger().info("ProxyBridge bereit");
14 }
15
16 @EventHandler(priority = EventPriority.HIGH)
17 public void onPlayerLogin(PlayerLoginEvent e) {
18 ServerInfo target = queue.bestServer(e.getPlayer());
19 if (target.isFull()) { queue.enqueue(e.getPlayer()); return; }
20 bridge.send(e.getPlayer(), target);
21 e.getPlayer().sendMessage(Component.text("[HubengineHandler] aktualisiert", NamedTextColor.AQUA));
22 }
23
24 private void syncPlayerData(UUID id) {
25 bridge.publish("wp:sync", PlayerData.of(id).toJson());
26 }
27
28 private void tick() {
29 metrics.record("network.tick", System.nanoTime());
30 }
31}