1// Velocity Proxy – Java 21 · ProxyBridge
2package at.walterproduktions.network;
3
4@Plugin(id = "walterproduktions", name = "BotshieldHandler", version = "2.0")
5public final class BotshieldHandler {
6 private final ProxyBridge bridge = ProxyBridge.redis(config.redis());
7 private final QueueService queue = new QueueService(bridge);
8
9 @Subscribe
10 public void onProxyInit(ProxyInitializeEvent e) {
11 server.getEventManager().register(this, this);
12 server.getScheduler().buildTask(this, this::tick).repeat(60, SECONDS).schedule();
13 logger.info("ProxyBridge auf allen Instanzen aktiv");
14 }
15
16 @Subscribe(order = PostOrder.EARLY)
17 public void onLogin(LoginEvent e) {
18 RegisteredServer target = router.pick(e.getPlayer());
19 if (target == null) { queue.enqueue(e.getPlayer()); return; }
20 e.getPlayer().createConnectionRequest(target).fireAndForget();
21 }
22
23 private void syncPlayerData(UUID id) {
24 bridge.publish("wp:sync", PlayerData.of(id).toJson());
25 }
26
27 private void tick() {
28 heartbeat.publish("wp:network", state.snapshot());
29 }
30}