RuneHive-Game
Loading...
Searching...
No Matches
PluginContext.java
Go to the documentation of this file.
1package com.runehive.game.plugin;
2
3import com.runehive.Config;
4import com.runehive.content.DropDisplay;
5import com.runehive.content.ProfileViewer;
6import com.runehive.content.achievement.AchievementWriter;
7import com.runehive.content.activity.ActivityType;
8import com.runehive.content.simulator.DropSimulator;
9import com.runehive.content.skill.impl.slayer.SlayerTab;
10import com.runehive.content.tittle.TitleManager;
11import com.runehive.content.writer.InterfaceWriter;
12import com.runehive.content.writer.impl.InformationWriter;
13import com.runehive.game.event.Event;
14import com.runehive.game.event.impl.*;
15import com.runehive.game.event.impl.log.CommandLogEvent;
16import com.runehive.game.event.impl.log.PickupItemLogEvent;
17import com.runehive.game.event.listener.PlayerEventListener;
18import com.runehive.game.world.World;
19import com.runehive.game.world.entity.mob.player.Player;
20import com.runehive.game.world.entity.mob.player.PlayerRight;
21import com.runehive.game.world.entity.mob.player.command.CommandParser;
22import com.runehive.net.packet.out.SendMessage;
23import com.runehive.net.packet.out.SendURL;
24import org.apache.logging.log4j.Level;
25import org.apache.logging.log4j.LogManager;
26import org.apache.logging.log4j.Logger;
27
28/**
29 * The base class that all plugins should extend.
30 * This class allows plugins to have many different behaviors
31 * and listen to all types of events.
32 *
33 * @author nshusa
34 */
35public class PluginContext implements PlayerEventListener {
36
37 public static final Logger logger = LogManager.getLogger(PluginContext.class);
38
39 public void onInit() {
40
41 }
42
43 @Override
44 public boolean accept(Player player, Event event) {
45 try {
46 if (event instanceof ButtonClickEvent) {
48 } else if (event instanceof ItemClickEvent) {
50 } else if (event instanceof NpcClickEvent) {
51 return handleNpcClickEvent(player, (NpcClickEvent) event);
52 } else if (event instanceof ObjectClickEvent) {
54 } else if (event instanceof ItemOnItemEvent) {
56 } else if (event instanceof ItemOnNpcEvent) {
58 } else if (event instanceof ItemOnObjectEvent) {
60 } else if (event instanceof ItemOnPlayerEvent) {
62 } else if (event instanceof CommandEvent) {
63 return handleCommandEvent(player, (CommandEvent) event);
64 } else if (event instanceof ItemContainerContextMenuEvent) {
66 } else if (event instanceof DropItemEvent) {
67 return handleDropItemEvent(player, (DropItemEvent) event);
68 } else if (event instanceof PickupItemEvent) {
70 } else if (event instanceof MovementEvent) {
71 return onMovement(player, (MovementEvent) event);
72 }
73 } catch (Exception ex) {
74 logger.error(String.format("player=%s error while handling event: %s", player.getName(), this.getClass().getSimpleName()), ex);
75 }
76
77 return true;
78 }
79
80 protected boolean onMovement(Player player, MovementEvent event) {
81 return false;
82 }
83
85 if (onPickupItem(player, event)) {
86 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()));
87 if (PlayerRight.isDeveloper(player)) {
88 player.send(new SendMessage(String.format("[%s]: item=%d position=%s", this.getClass().getSimpleName(), event.getItem().getId(), event.getPosition().toString())));
89 }
90 World.getDataBus().publish(new PickupItemLogEvent(player, event.getGroundItem()));
91 return true;
92 }
93 return false;
94 }
95
96 protected boolean onPickupItem(Player player, PickupItemEvent event) {
97 return false;
98 }
99
101 if (onDropItem(player, event)) {
102 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()));
103 if (PlayerRight.isDeveloper(player)) {
104 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())));
105 }
106 return true;
107 }
108 return false;
109 }
110
111 protected boolean onDropItem(Player player, DropItemEvent event) {
112 return false;
113 }
114
116 switch(event.getType()) {
117 case 1:
118 if (firstClickItemContainer(player, event)) {
119 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()));
120 if (PlayerRight.isDeveloper(player)) {
121 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())));
122 }
123 return true;
124 }
125 break;
126
127 case 2:
128 if (secondClickItemContainer(player, event)) {
129 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()));
130
131 if (PlayerRight.isDeveloper(player)) {
132 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())));
133 }
134 return true;
135 }
136 break;
137
138 case 3:
139 if (thirdClickItemContainer(player, event)) {
140 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()));
141
142 if (PlayerRight.isDeveloper(player)) {
143 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())));
144 }
145 return true;
146 }
147 break;
148
149 case 4:
150 if (fourthClickItemContainer(player, event)) {
151 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()));
152
153 if (PlayerRight.isDeveloper(player)) {
154 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())));
155 }
156 return true;
157 }
158 break;
159
160 case 5:
161 if (fifthClickItemContainer(player, event)) {
162 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()));
163
164 if (PlayerRight.isDeveloper(player) ) {
165 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())));
166 }
167 return true;
168 }
169 break;
170
171 case 6:
172 if (sixthClickItemContainer(player, event)) {
173 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()));
174
175 if (PlayerRight.isDeveloper(player) ) {
176 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())));
177 }
178 return true;
179 }
180 break;
181
182 case 7:
183 if (allButOneItemContainer(player, event)) {
184 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()));
185
186 if (PlayerRight.isDeveloper(player)) {
187 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())));
188 }
189 return true;
190 }
191 break;
192
193 case 8:
194 if (modifiableXItemContainer(player, event)) {
195 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()));
196
197 if (PlayerRight.isDeveloper(player) ) {
198 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())));
199 }
200 return true;
201 }
202 break;
203 }
204 return false;
205 }
206
208 return false;
209 }
210
212 return false;
213 }
214
216 return false;
217 }
218
220 return false;
221 }
222
224 return false;
225 }
226
228 return false;
229 }
230
232 return false;
233 }
234
236 return false;
237 }
238
239 private boolean handleCommandEvent(Player player, CommandEvent event) {
240 if (handleCommand(player, event.getParser())) {
241 if (Config.LOG_PLAYER) {
242 World.getDataBus().publish(new CommandLogEvent(player, event.getParser()));
243 }
244 return true;
245 }
246 return false;
247 }
248
249 protected boolean handleCommand(Player player, CommandParser parser) {
250 return false;
251 }
252
254 if (itemOnPlayer(player, event)) {
255 if (player.debug) {
256 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d player=%s", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getOther().getName())));
257 }
258 return true;
259 }
260 return false;
261 }
262
263 protected boolean itemOnPlayer(Player player, ItemOnPlayerEvent event) {
264 return false;
265 }
266
268 if (itemOnObject(player, event)) {
269 logger.log(Level.INFO, String.format("[%s]: item=%d slot=%d object=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getObject().getId()));
270 if (player.debug) {
271 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d object=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getObject().getId())));
272 }
273 return true;
274 }
275 return false;
276 }
277
278 protected boolean itemOnObject(Player player, ItemOnObjectEvent event) {
279 return false;
280 }
281
283 if (itemOnNpc(player, event)) {
284 logger.log(Level.INFO, String.format("[%s]: item=%d slot=%d npc=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getNpc().id));
285 if (player.debug) {
286 player.send(new SendMessage(String.format("[%s]: item=%d slot=%d npc=%d", this.getClass().getSimpleName(), event.getUsed().getId(), event.getSlot(), event.getNpc().id)));
287 }
288 return true;
289 }
290 return false;
291 }
292
293 protected boolean itemOnNpc(Player player, ItemOnNpcEvent event) {
294 return false;
295 }
296
298 if (itemOnItem(player, event)) {
299 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()));
300 if (player.debug) {
301 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())));
302 }
303 return true;
304 }
305 return false;
306 }
307
308 protected boolean itemOnItem(Player player, ItemOnItemEvent event) {
309 return false;
310 }
311
313 switch(event.getType()) {
314 case 1:
315 if (firstClickObject(player, event)) {
316 logger.log(Level.INFO, String.format("[%s, type=%d]:first click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
317 if (player.debug) {
318 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
319 }
320 return true;
321 }
322 break;
323
324 case 2:
325 if (secondClickObject(player, event)) {
326 logger.log(Level.INFO, String.format("[%s, type=%d]:second click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
327 if (player.debug) {
328 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
329 }
330 return true;
331 }
332 break;
333
334 case 3:
335 if (thirdClickObject(player, event)) {
336 logger.log(Level.INFO, String.format("[%s, type=%d]:third click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
337 if (player.debug) {
338 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
339 }
340 return true;
341 }
342 break;
343 }
344 return false;
345 }
346
347 protected boolean firstClickObject(Player player, ObjectClickEvent event) {
348 logger.log(Level.INFO, String.format("[%s, type=%d]:first click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
349 if (player.debug) {
350 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
351 }
352 return false;
353 }
354
355 protected boolean secondClickObject(Player player, ObjectClickEvent event) {
356 logger.log(Level.INFO, String.format("[%s, type=%d]:second click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
357
358 if (player.debug) {
359 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
360 }
361 return false;
362 }
363
364 protected boolean thirdClickObject(Player player, ObjectClickEvent event) {
365 logger.log(Level.INFO, String.format("[%s, type=%d]:third click object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId()));
366
367 if (player.debug) {
368 player.send(new SendMessage(String.format("[%s, type=%d]: object=%d", this.getClass().getSimpleName(), event.getType(), event.getObject().getId())));
369 }
370 return false;
371 }
372
374 switch(event.getType()) {
375 case 1:
376
377 if (firstClickNpc(player, event)) {
378 logger.log(Level.INFO, String.format("[%s, type=%d]:first click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
379 if (player.debug) {
380 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
381 }
382 return true;
383 }
384 break;
385
386 case 2:
387 if (secondClickNpc(player, event)) {
388 logger.log(Level.INFO, String.format("[%s, type=%d]:second click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
389 if (player.debug) {
390 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
391 }
392 return true;
393 }
394 break;
395
396
397 case 3:
398 if (thirdClickNpc(player, event)) {
399 logger.log(Level.INFO, String.format("[%s, type=%d]:third click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
400 if (player.debug) {
401 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
402 }
403 return true;
404 }
405 break;
406
407 case 4:
408 if (fourthClickNpc(player, event)) {
409 logger.log(Level.INFO, String.format("[%s, type=%d]:fourth click npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id));
410 if (player.debug) {
411 player.send(new SendMessage(String.format("[%s, type=%d]: npc=%d", this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
412 }
413 return true;
414 }
415 break;
416 }
417
418 return false;
419 }
420
421 protected boolean firstClickNpc(Player player, NpcClickEvent event) {
422 return false;
423 }
424
425 protected boolean secondClickNpc(Player player, NpcClickEvent event) {
426 return false;
427 }
428
429 protected boolean thirdClickNpc(Player player, NpcClickEvent event) {
430 return false;
431 }
432
433 protected boolean fourthClickNpc(Player player, NpcClickEvent event) {
434 return false;
435 }
436
438 switch(event.getType()) {
439 case 1:
440 if (firstClickItem(player, event)) {
441 logger.log(Level.INFO, String.format("[%s, type=%d]:first click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
442 if (player.debug) {
443 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
444 }
445 return true;
446 }
447 break;
448
449 case 2:
450 if (secondClickItem(player, event)) {
451 logger.log(Level.INFO, String.format("[%s, type=%d]:second click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
452 if (player.debug) {
453 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
454 }
455 return true;
456 }
457 break;
458
459 case 3:
460 if (thirdClickItem(player, event)) {
461 logger.log(Level.INFO, String.format("[%s, type=%d]:third click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
462 if (player.debug) {
463 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
464 }
465 return true;
466 }
467 break;
468
469 case 4:
470 if (fourthClickItem(player, event)) {
471 logger.log(Level.INFO, String.format("[%s, type=%d]:fourth click item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId()));
472 if (player.debug) {
473 player.send(new SendMessage(String.format("[%s, type=%d]: item=%d", this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
474 }
475 return true;
476 }
477 break;
478 }
479 return false;
480 }
481
482 protected boolean firstClickItem(Player player, ItemClickEvent event) {
483 return false;
484 }
485
486 protected boolean secondClickItem(Player player, ItemClickEvent event) {
487 return false;
488 }
489
490 protected boolean thirdClickItem(Player player, ItemClickEvent event) {
491 return false;
492 }
493
494 protected boolean fourthClickItem(Player player, ItemClickEvent event) {
495 return false;
496 }
497
499 if (onClick(player, event.getButton())) {
500 if (player.debug) {
501 player.send(new SendMessage(String.format("[%s]: button=%d", this.getClass().getSimpleName(), event.getButton())));
502 }
503 return true;
504 }
505 return false;
506 }
507
508 protected boolean onClick(final Player player, final int button) {
509 switch (button) {
510 case 29404:
511 player.send(new SendURL("https://runehive.com"));
512 return true;
513 case 29408:
516 return true;
517
518 case 29411:
520 return true;
521 case -30528:
524 return true;
525 case -30525:
526 player.dialogueFactory.sendOption("Activity Logger", () -> {
527 player.dialogueFactory.onAction(player.activityLogger::open);
528 }, "Drop Simulator", () -> {
529 player.dialogueFactory.onAction(() -> DropSimulator.open(player));
530 /* }, "Activity Logger", () -> {
531 player.dialogueFactory.onAction(player.activityLogger::open);*/
532 }, "Title Manager", () -> {
533 player.dialogueFactory.onAction(() -> TitleManager.open(player));
534 }, "Slayer Interface", () -> {
535 player.dialogueFactory.onAction(() -> player.slayer.open(SlayerTab.MAIN));
536 }).execute();
537 return true;
538 case -30085:
539 ProfileViewer.open(player, player);
540 return true;
541
542 case -30084:
543 player.activityLogger.open();
544 return true;
545
546 case -30083:
547 TitleManager.open(player);
548 return true;
549
550 case -30082:
551 DropDisplay.open(player);
552 return true;
553
554 case -30081:
555 DropSimulator.open(player);
556 return true;
557
558 case -30080:
560 return true;
561
562 }
563 return false;
564 }
565
566
567}
The class that contains setting-related constants for the server.
Definition Config.java:24
static final int QUEST_TAB
Definition Config.java:194
static final boolean LOG_PLAYER
Definition Config.java:105
Handles displaying the npc drops on an itemcontainer.
static void open(Player player)
Handles viewing other player's profiles.
static void open(Player player, Player other)
Opens the profile interface.
final DialogueFactory onAction(Runnable action)
Sets an action so this action can be executed after dialogues are done.
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)
Appends the OptionDialogue onto the current dialogue chain.
This class simulates drops of an npc and places it on an itemcontainer.
static void open(Player player)
Handles opening the drop simulator itemcontainer.
void open(SlayerTab tab)
Opens the slayer itemcontainer.
Definition Slayer.java:66
Handles unlocking player titles.
static void open(Player player)
Opens the title itemcontainer.
Handles writing on an itemcontainer.
static void write(InterfaceWriter writer)
Class handles writing on the quest tab itemcontainer.
void publish(Event event)
Sends an Event to all subscribed listeners.
Definition DataBus.java:92
The base class that all plugins should extend.
boolean handleButtonClickEvent(Player player, ButtonClickEvent event)
boolean onClick(final Player player, final int button)
boolean accept(Player player, Event event)
The method that allows an event listener to accept an event.
boolean secondClickNpc(Player player, NpcClickEvent event)
boolean handleDropItemEvent(Player player, DropItemEvent event)
boolean modifiableXItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean handleItemOnObjectEvent(Player player, ItemOnObjectEvent event)
boolean itemOnObject(Player player, ItemOnObjectEvent event)
boolean handleCommandEvent(Player player, CommandEvent event)
boolean firstClickNpc(Player player, NpcClickEvent event)
boolean itemOnItem(Player player, ItemOnItemEvent event)
boolean handleItemOnNpcEvent(Player player, ItemOnNpcEvent event)
boolean itemOnNpc(Player player, ItemOnNpcEvent event)
boolean handleNpcClickEvent(Player player, NpcClickEvent event)
boolean secondClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean sixthClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean fourthClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean thirdClickItem(Player player, ItemClickEvent event)
boolean handleObjectClickEvent(Player player, ObjectClickEvent event)
boolean handleItemClickEvent(Player player, ItemClickEvent event)
boolean fourthClickNpc(Player player, NpcClickEvent event)
boolean secondClickObject(Player player, ObjectClickEvent event)
boolean secondClickItem(Player player, ItemClickEvent event)
boolean handleItemContainerContextMenuEvent(Player player, ItemContainerContextMenuEvent event)
boolean onPickupItem(Player player, PickupItemEvent event)
boolean firstClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean handleItemOnPlayerEvent(Player player, ItemOnPlayerEvent event)
boolean thirdClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean handleItemOnItemEvent(Player player, ItemOnItemEvent event)
boolean onDropItem(Player player, DropItemEvent event)
boolean firstClickObject(Player player, ObjectClickEvent event)
boolean thirdClickNpc(Player player, NpcClickEvent event)
boolean onMovement(Player player, MovementEvent event)
boolean allButOneItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean fifthClickItemContainer(Player player, ItemContainerContextMenuEvent event)
boolean handleCommand(Player player, CommandParser parser)
boolean fourthClickItem(Player player, ItemClickEvent event)
boolean thirdClickObject(Player player, ObjectClickEvent event)
boolean handlePickupItemEvent(Player player, PickupItemEvent event)
boolean itemOnPlayer(Player player, ItemOnPlayerEvent event)
boolean firstClickItem(Player player, ItemClickEvent event)
Represents the game world.
Definition World.java:46
static DataBus getDataBus()
Definition World.java:568
This class represents a character controlled by a player.
Definition Player.java:125
String getName()
Gets the name of this entity.
Definition Player.java:774
The OutgoingPacket that sends a message to a Players chatbox in the client.
The OutgoingPacket that opens a URL from client.
Definition SendURL.java:12
Holds all activity types that are timed.
MAIN
The main itemcontainer - all the general information.
static boolean isDeveloper(Player player)
Checks if the player has developer status.
The type of event listener that will listen for player-related events.
Definition Event.kt:9