RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
GroupActivity.java
1package com.osroyale.content.activity;
2
3import com.osroyale.net.packet.out.SendMessage;
4import com.osroyale.game.world.entity.mob.Mob;
5
6import java.util.HashMap;
7import java.util.Map;
8import java.util.function.BiConsumer;
9
52
53public abstract class GroupActivity extends Activity {
54
56 protected final Map<Mob, Activity> activities;
57
59 private static int nextInstance;
60
66 protected GroupActivity(int cooldown, int capacity) {
67 super(cooldown, getNextInstance());
68 this.activities = new HashMap<>(capacity);
69 }
70
71 @Override
72 protected void start() {
73 activities.values().forEach(Activity::start);
74 }
75
76 @Override
77 public void finish() {
78 for (Map.Entry<Mob, Activity> entry : activities.entrySet()) {
79 entry.getValue().finish();
80 entry.getValue().cleanup();
81 }
82 }
83
84 @Override
85 public void cleanup() {
86 activities.forEach((mob, activity) -> activity.cleanup());
87 }
88
89 protected void removeAll() {
90 activities.forEach((mob, activity) -> remove(mob));
91 activities.clear();
92 }
93
99 public final boolean isActive() {
100 return !activities.isEmpty();
101 }
102
108 public int getActiveSize() {
109 return activities.size();
110 }
111
117 public void forEachActivity(BiConsumer<Mob, Activity> activity) {
118 activities.forEach(activity);
119 }
120
127 public final void addActivity(Mob mob, Activity activity) {
128 if (!activities.containsKey(mob)) {
129 activities.put(mob, activity);
130 add(mob);
131 }
132 }
133
139 public final void removeActivity(Mob mob) {
140 if (activities.containsKey(mob)) {
141 activities.get(mob).finish();
142 activities.get(mob).cleanup();
143 activities.remove(mob);
144 remove(mob);
145 }
146 }
147
153 public final void groupMessage(String message) {
154 activities.keySet().forEach(mob -> {
155 if (mob.isPlayer())
156 mob.getPlayer().send(new SendMessage(message));
157 });
158 }
159
160 public Activity getActivity(Mob mob) {
161 return activities.get(mob);
162 }
163
169 private static int getNextInstance() {
170 return nextInstance++;
171 }
172
173}
Activity(int cooldown, int instance)
Definition Activity.java:92
final void addActivity(Mob mob, Activity activity)
GroupActivity(int cooldown, int capacity)
void forEachActivity(BiConsumer< Mob, Activity > activity)