RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
PlayerDataBus.java
1package com.osroyale.game.event.bus;
2
3import com.osroyale.game.event.Event;
4import com.osroyale.game.event.listener.PlayerEventListener;
5import com.osroyale.game.world.entity.mob.player.Player;
6
7import java.util.HashSet;
8import java.util.Set;
9
32
33public final class PlayerDataBus {
34
35 private static final PlayerDataBus INSTANCE = new PlayerDataBus();
36
37 private PlayerDataBus() {
38
39 }
40
41 public static PlayerDataBus getInstance() {
42 return INSTANCE;
43 }
44
45 private static final Set<PlayerEventListener> chain = new HashSet<>();
46
47 public void subscribe(PlayerEventListener listener) {
48 chain.add(listener);
49 }
50
51 public void unsubscribe(PlayerEventListener listener) {
52 chain.remove(listener);
53 }
54
55 public boolean publish(Player player, Event event) {
56 for (PlayerEventListener listener : chain) {
57 if (listener.accept(player, event)) {
58 return true;
59 }
60 }
61 return false;
62 }
63
64}