RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
PluginContext.java
1package com.osroyale.game.plugin;
2
3import com.osroyale.Config;
4import com.osroyale.content.DropDisplay;
5import com.osroyale.content.ProfileViewer;
6import com.osroyale.content.achievement.AchievementWriter;
7import com.osroyale.content.activity.ActivityType;
8import com.osroyale.content.simulator.DropSimulator;
9import com.osroyale.content.skill.impl.slayer.SlayerTab;
10import com.osroyale.content.tittle.TitleManager;
11import com.osroyale.content.writer.InterfaceWriter;
12import com.osroyale.content.writer.impl.InformationWriter;
13import com.osroyale.game.event.Event;
14import com.osroyale.game.event.impl.*;
15import com.osroyale.game.event.impl.log.CommandLogEvent;
16import com.osroyale.game.event.impl.log.PickupItemLogEvent;
17import com.osroyale.game.event.listener.PlayerEventListener;
18import com.osroyale.game.world.World;
19import com.osroyale.game.world.entity.mob.player.Player;
20import com.osroyale.game.world.entity.mob.player.PlayerRight;
21import com.osroyale.game.world.entity.mob.player.command.CommandParser;
22import com.osroyale.net.packet.out.SendMessage;
23import com.osroyale.net.packet.out.SendURL;
24import org.apache.logging.log4j.Level;
25import org.apache.logging.log4j.LogManager;
26import org.apache.logging.log4j.Logger;
27
57
58* The base class that all plugins should extend.
59 * This class allows plugins to have many different behaviors
60 * and listen to all types of events.
61 *
62 * @author nshusa
63 */
64public class PluginContext implements PlayerEventListener {
65
66 public static final Logger logger = LogManager.getLogger(PluginContext.class);
67
68 public void onInit() {
69
70 }
71
72 @Override
73 public boolean accept(Player player, Event event) {
74 try {
75 if (event instanceof ButtonClickEvent) {
76 return handleButtonClickEvent(player, (ButtonClickEvent) event);
77 } else if (event instanceof ItemClickEvent) {
78 return handleItemClickEvent(player, (ItemClickEvent) event);
79 } else if (event instanceof NpcClickEvent) {
80 return handleNpcClickEvent(player, (NpcClickEvent) event);
81 } else if (event instanceof ObjectClickEvent) {
82 return handleObjectClickEvent(player, (ObjectClickEvent) event);
83 } else if (event instanceof ItemOnItemEvent) {
84 return handleItemOnItemEvent(player, (ItemOnItemEvent) event);
85 } else if (event instanceof ItemOnNpcEvent) {
86 return handleItemOnNpcEvent(player, (ItemOnNpcEvent) event);
87 } else if (event instanceof ItemOnObjectEvent) {
88 return handleItemOnObjectEvent(player, (ItemOnObjectEvent) event);
89 } else if (event instanceof ItemOnPlayerEvent) {
90 return handleItemOnPlayerEvent(player, (ItemOnPlayerEvent) event);
91 } else if (event instanceof CommandEvent) {
92 return handleCommandEvent(player, (CommandEvent) event);
93 } else if (event instanceof ItemContainerContextMenuEvent) {
94 return handleItemContainerContextMenuEvent(player, (ItemContainerContextMenuEvent) event);
95 } else if (event instanceof DropItemEvent) {
96 return handleDropItemEvent(player, (DropItemEvent) event);
97 } else if (event instanceof PickupItemEvent) {
98 return handlePickupItemEvent(player, (PickupItemEvent) event);
99 } else if (event instanceof MovementEvent) {
100 return onMovement(player, (MovementEvent) event);
101 }
102 } catch (Exception ex) {
103 logger.error(String.format("player=%s error while handling event: %s", player.getName(), this.getClass().getSimpleName()), ex);
104 }
105
106 return true;
107 }
108
109 protected boolean onMovement(Player player, MovementEvent event) {
110 return false;
111 }
112
113 private boolean handlePickupItemEvent(Player player, PickupItemEvent event) {
114 if (onPickupItem(player, event)) {
115 logger.log(Level.INFO, String.format("player=%s picked up item=%d amount=%d position=%s", player.getName(), event.getItem().getId(), event.getItem().getAmount(), event.getPosition()));
116 if (PlayerRight.isDeveloper(player)) {
117 player.send(new SendMessage(String.format("[%s]: item=%d position=%s", this.getClass().getSimpleName(), event.getItem().getId(), event.getPosition().toString())));
118 }
119 World.getDataBus().publish(new PickupItemLogEvent(player, event.getGroundItem()));
120 return true;
121 }
122 return false;
123 }
124
125 protected boolean onPickupItem(Player player, PickupItemEvent event) {
126 return false;
127 }
128
129 private boolean handleDropItemEvent(Player player, DropItemEvent event) {
130 if (onDropItem(player, event)) {
131 logger.log(Level.INFO, String.format("player=%s dropped item=%d amount=%d slot=%d position=%s", player.getName(), event.getItem().getId(), event.getItem().getAmount(), event.getSlot(), event.getPosition()));
132 if (PlayerRight.isDeveloper(player)) {
133 player.send(new SendMessage(String.format("[%s]: item=%d amount=%d slot=%d position=%s", this.getClass().getSimpleName(), event.getItem().getId(), event.getItem().getAmount(), event.getSlot(), event.getPosition())));
134 }
135 return true;
136 }
137 return false;
138 }
139
140 protected boolean onDropItem(Player player, DropItemEvent event) {
141 return false;
142 }
143
144 private boolean handleItemContainerContextMenuEvent(Player player, ItemContainerContextMenuEvent event) {
145 switch(event.getType()) {
146 case 1:
147 if (firstClickItemContainer(player, event)) {
148 logger.log(Level.INFO, String.format("[%s, type=%d]: first item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
149 if (PlayerRight.isDeveloper(player)) {
150 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
151 }
152 return true;
153 }
154 break;
155
156 case 2:
157 if (secondClickItemContainer(player, event)) {
158 logger.log(Level.INFO, String.format("[%s, type=%d]: second item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
159
160 if (PlayerRight.isDeveloper(player)) {
161 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
162 }
163 return true;
164 }
165 break;
166
167 case 3:
168 if (thirdClickItemContainer(player, event)) {
169 logger.log(Level.INFO, String.format("[%s, type=%d]: third item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
170
171 if (PlayerRight.isDeveloper(player)) {
172 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
173 }
174 return true;
175 }
176 break;
177
178 case 4:
179 if (fourthClickItemContainer(player, event)) {
180 logger.log(Level.INFO, String.format("[%s, type=%d]: fourth item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
181
182 if (PlayerRight.isDeveloper(player)) {
183 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
184 }
185 return true;
186 }
187 break;
188
189 case 5:
190 if (fifthClickItemContainer(player, event)) {
191 logger.log(Level.INFO, String.format("[%s, type=%d]: fifth item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
192
193 if (PlayerRight.isDeveloper(player) ) {
194 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
195 }
196 return true;
197 }
198 break;
199
200 case 6:
201 if (sixthClickItemContainer(player, event)) {
202 logger.log(Level.INFO, String.format("[%s, type=%d]: sixth item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
203
204 if (PlayerRight.isDeveloper(player) ) {
205 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
206 }
207 return true;
208 }
209 break;
210
211 case 7:
212 if (allButOneItemContainer(player, event)) {
213 logger.log(Level.INFO, String.format("[%s, type=%d]: seventh item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
214
215 if (PlayerRight.isDeveloper(player)) {
216 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
217 }
218 return true;
219 }
220 break;
221
222 case 8:
223 if (modifiableXItemContainer(player, event)) {
224 logger.log(Level.INFO, String.format("[%s, type=%d]: eight item interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot()));
225
226 if (PlayerRight.isDeveloper(player) ) {
227 player.send(new SendMessage(String.format("[%s, type=%d]: interfaceId=%d (removeId=%d, removeSlot=%d)", this.getClass().getSimpleName(), event.getType(), event.getInterfaceId(), event.getRemoveId(), event.getRemoveSlot())));
228 }
229 return true;
230 }
231 break;
232 }
233 return false;
234 }
235
236 protected boolean firstClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
237 return false;
238 }
239
240 protected boolean secondClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
241 return false;
242 }
243
244 protected boolean thirdClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
245 return false;
246 }
247
248 protected boolean fourthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
249 return false;
250 }
251
252 protected boolean fifthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
253 return false;
254 }
255
256 protected boolean sixthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
257 return false;
258 }
259
260 protected boolean allButOneItemContainer(Player player, ItemContainerContextMenuEvent event) {
261 return false;
262 }
263
264 protected boolean modifiableXItemContainer(Player player, ItemContainerContextMenuEvent event) {
265 return false;
266 }
267
268 private boolean handleCommandEvent(Player player, CommandEvent event) {
269 if (handleCommand(player, event.getParser())) {
270 if (Config.LOG_PLAYER) {
271 World.getDataBus().publish(new CommandLogEvent(player, event.getParser()));
272 }
273 return true;
274 }
275 return false;
276 }
277
278 protected boolean handleCommand(Player player, CommandParser parser) {
279 return false;
280 }
281
282 private boolean handleItemOnPlayerEvent(Player player, ItemOnPlayerEvent event) {
283 if (itemOnPlayer(player, event)) {
284 if (player.debug) {
285 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d player=%s", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getOther().getName())));
286 }
287 return true;
288 }
289 return false;
290 }
291
292 protected boolean itemOnPlayer(Player player, ItemOnPlayerEvent event) {
293 return false;
294 }
295
296 private boolean handleItemOnObjectEvent(Player player, ItemOnObjectEvent event) {
297 if (itemOnObject(player, event)) {
298 logger.log(Level.INFO, String.format("[%s]: item=%d slot=%d object=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getObject().getId()));
299 if (player.debug) {
300 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d object=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getObject().getId())));
301 }
302 return true;
303 }
304 return false;
305 }
306
307 protected boolean itemOnObject(Player player, ItemOnObjectEvent event) {
308 return false;
309 }
310
311 private boolean handleItemOnNpcEvent(Player player, ItemOnNpcEvent event) {
312 if (itemOnNpc(player, event)) {
313 logger.log(Level.INFO, String.format("[%s]: item=%d slot=%d npc=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getNpc().id));
314 if (player.debug) {
315 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d npc=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getNpc().id)));
316 }
317 return true;
318 }
319 return false;
320 }
321
322 protected boolean itemOnNpc(Player player, ItemOnNpcEvent event) {
323 return false;
324 }
325
326 private boolean handleItemOnItemEvent(Player player, ItemOnItemEvent event) {
327 if (itemOnItem(player, event)) {
328 logger.log(Level.INFO, String.format("[%s]: used=%d usedSlot=%d with=%d withSlot=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getUsedSlot(), event.getWith().getId(), event.getWithSlot()));
329 if (player.debug) {
330 player.send(new SendMessage(String.format("[%s]: used=%d usedSlot=%d with=%d withSlot=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getUsedSlot(), event.getWith().getId(), event.getWithSlot())));
331 }
332 return true;
333 }
334 return false;
335 }
336
337 protected boolean itemOnItem(Player player, ItemOnItemEvent event) {
338 return false;
339 }
340
341 private boolean handleObjectClickEvent(Player player, ObjectClickEvent event) {
342 switch(event.getType()) {
343 case 1:
344 if (firstClickObject(player, event)) {
345 logger.log(Level.INFO, String.format("[%s, type=%d]:first click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
346 if (player.debug) {
347 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
348 }
349 return true;
350 }
351 break;
352
353 case 2:
354 if (secondClickObject(player, event)) {
355 logger.log(Level.INFO, String.format("[%s, type=%d]:second click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
356 if (player.debug) {
357 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
358 }
359 return true;
360 }
361 break;
362
363 case 3:
364 if (thirdClickObject(player, event)) {
365 logger.log(Level.INFO, String.format("[%s, type=%d]:third click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
366 if (player.debug) {
367 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
368 }
369 return true;
370 }
371 break;
372 }
373 return false;
374 }
375
376 protected boolean firstClickObject(Player player, ObjectClickEvent event) {
377 logger.log(Level.INFO, String.format("[%s, type=%d]:first click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
378 if (player.debug) {
379 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
380 }
381 return false;
382 }
383
384 protected boolean secondClickObject(Player player, ObjectClickEvent event) {
385 logger.log(Level.INFO, String.format("[%s, type=%d]:second click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
386
387 if (player.debug) {
388 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
389 }
390 return false;
391 }
392
393 protected boolean thirdClickObject(Player player, ObjectClickEvent event) {
394 logger.log(Level.INFO, String.format("[%s, type=%d]:third click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
395
396 if (player.debug) {
397 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
398 }
399 return false;
400 }
401
402 private boolean handleNpcClickEvent(Player player, NpcClickEvent event) {
403 switch(event.getType()) {
404 case 1:
405
406 if (firstClickNpc(player, event)) {
407 logger.log(Level.INFO, String.format("[%s, type=%d]:first click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
408 if (player.debug) {
409 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
410 }
411 return true;
412 }
413 break;
414
415 case 2:
416 if (secondClickNpc(player, event)) {
417 logger.log(Level.INFO, String.format("[%s, type=%d]:second click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
418 if (player.debug) {
419 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
420 }
421 return true;
422 }
423 break;
424
425
426 case 3:
427 if (thirdClickNpc(player, event)) {
428 logger.log(Level.INFO, String.format("[%s, type=%d]:third click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
429 if (player.debug) {
430 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
431 }
432 return true;
433 }
434 break;
435
436 case 4:
437 if (fourthClickNpc(player, event)) {
438 logger.log(Level.INFO, String.format("[%s, type=%d]:fourth click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
439 if (player.debug) {
440 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
441 }
442 return true;
443 }
444 break;
445 }
446
447 return false;
448 }
449
450 protected boolean firstClickNpc(Player player, NpcClickEvent event) {
451 return false;
452 }
453
454 protected boolean secondClickNpc(Player player, NpcClickEvent event) {
455 return false;
456 }
457
458 protected boolean thirdClickNpc(Player player, NpcClickEvent event) {
459 return false;
460 }
461
462 protected boolean fourthClickNpc(Player player, NpcClickEvent event) {
463 return false;
464 }
465
466 private boolean handleItemClickEvent(Player player, ItemClickEvent event) {
467 switch(event.getType()) {
468 case 1:
469 if (firstClickItem(player, event)) {
470 logger.log(Level.INFO, String.format("[%s, type=%d]:first click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
471 if (player.debug) {
472 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
473 }
474 return true;
475 }
476 break;
477
478 case 2:
479 if (secondClickItem(player, event)) {
480 logger.log(Level.INFO, String.format("[%s, type=%d]:second click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
481 if (player.debug) {
482 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
483 }
484 return true;
485 }
486 break;
487
488 case 3:
489 if (thirdClickItem(player, event)) {
490 logger.log(Level.INFO, String.format("[%s, type=%d]:third click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
491 if (player.debug) {
492 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
493 }
494 return true;
495 }
496 break;
497
498 case 4:
499 if (fourthClickItem(player, event)) {
500 logger.log(Level.INFO, String.format("[%s, type=%d]:fourth click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
501 if (player.debug) {
502 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
503 }
504 return true;
505 }
506 break;
507 }
508 return false;
509 }
510
511 protected boolean firstClickItem(Player player, ItemClickEvent event) {
512 return false;
513 }
514
515 protected boolean secondClickItem(Player player, ItemClickEvent event) {
516 return false;
517 }
518
519 protected boolean thirdClickItem(Player player, ItemClickEvent event) {
520 return false;
521 }
522
523 protected boolean fourthClickItem(Player player, ItemClickEvent event) {
524 return false;
525 }
526
527 private boolean handleButtonClickEvent(Player player, ButtonClickEvent event) {
528 if (onClick(player, event.getButton())) {
529 if (player.debug) {
530 player.send(new SendMessage(String.format("[%s]: button=%d", this.getClass().getSimpleName(), event.getButton())));
531 }
532 return true;
533 }
534 return false;
535 }
536
537 protected boolean onClick(final Player player, final int button) {
538 switch (button) {
539 case 29404:
540 player.send(new SendURL("http://www.tarnishps.com/"));
541 return true;
542 case 29408:
543 InterfaceWriter.write(new AchievementWriter(player));
544 player.interfaceManager.setSidebar(Config.QUEST_TAB, 35_000);
545 return true;
546
547 case 29411:
548 InterfaceWriter.write(new InformationWriter(player));
549 return true;
550 case -30528:
551 InterfaceWriter.write(new InformationWriter(player));
552 player.interfaceManager.setSidebar(Config.QUEST_TAB, 29_400);
553 return true;
554 case -30525:
555 player.dialogueFactory.sendOption("Activity Logger", () -> {
556 player.dialogueFactory.onAction(player.activityLogger::open);
557 }, "Drop Simulator", () -> {
558 player.dialogueFactory.onAction(() -> DropSimulator.open(player));
559 /* }, "Activity Logger", () -> {
560 player.dialogueFactory.onAction(player.activityLogger::open);*/
561 }, "Title Manager", () -> {
562 player.dialogueFactory.onAction(() -> TitleManager.open(player));
563 }, "Slayer Interface", () -> {
564 player.dialogueFactory.onAction(() -> player.slayer.open(SlayerTab.MAIN));
565 }).execute();
566 return true;
567 case -30085:
568 ProfileViewer.open(player, player);
569 return true;
570
571 case -30084:
572 player.activityLogger.open();
573 return true;
574
575 case -30083:
576 TitleManager.open(player);
577 return true;
578
579 case -30082:
580 DropDisplay.open(player);
581 return true;
582
583 case -30081:
584 DropSimulator.open(player);
585 return true;
586
587 case -30080:
588 player.gameRecord.display(ActivityType.getFirst());
589 return true;
590
591 }
592 return false;
593 }
594
595
596}
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)
final DialogueFactory onAction(Runnable action)
boolean accept(Player player, Event event)