66 public static final Logger logger = LogManager.getLogger(
PluginContext.class);
68 public void onInit() {
102 }
catch (Exception ex) {
103 logger.error(String.format(
"player=%s error while handling event: %s", player.
getName(),
this.getClass().getSimpleName()), ex);
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())));
119 World.getDataBus().
publish(
new PickupItemLogEvent(player, event.getGroundItem()));
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())));
140 protected boolean onDropItem(Player player, DropItemEvent event) {
144 private boolean handleItemContainerContextMenuEvent(Player player, ItemContainerContextMenuEvent event) {
145 switch(event.getType()) {
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
236 protected boolean firstClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
240 protected boolean secondClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
244 protected boolean thirdClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
248 protected boolean fourthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
252 protected boolean fifthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
256 protected boolean sixthClickItemContainer(Player player, ItemContainerContextMenuEvent event) {
260 protected boolean allButOneItemContainer(Player player, ItemContainerContextMenuEvent event) {
264 protected boolean modifiableXItemContainer(Player player, ItemContainerContextMenuEvent event) {
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()));
278 protected boolean handleCommand(Player player, CommandParser parser) {
282 private boolean handleItemOnPlayerEvent(Player player, ItemOnPlayerEvent event) {
283 if (itemOnPlayer(player, event)) {
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())));
292 protected boolean itemOnPlayer(Player player, ItemOnPlayerEvent event) {
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()));
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())));
307 protected boolean itemOnObject(Player player, ItemOnObjectEvent event) {
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));
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)));
322 protected boolean itemOnNpc(Player player, ItemOnNpcEvent event) {
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()));
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())));
337 protected boolean itemOnItem(Player player, ItemOnItemEvent event) {
341 private boolean handleObjectClickEvent(Player player, ObjectClickEvent event) {
342 switch(event.getType()) {
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()));
347 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
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()));
357 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
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()));
367 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
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()));
379 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
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()));
388 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
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()));
397 player.send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(), event.getType(), event.getObject().
getId())));
402 private boolean handleNpcClickEvent(Player player, NpcClickEvent event) {
403 switch(event.getType()) {
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));
409 player.send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
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));
419 player.send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
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));
430 player.send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
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));
440 player.send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(), event.getType(), event.getNpc().id)));
450 protected boolean firstClickNpc(Player player, NpcClickEvent event) {
454 protected boolean secondClickNpc(Player player, NpcClickEvent event) {
458 protected boolean thirdClickNpc(Player player, NpcClickEvent event) {
462 protected boolean fourthClickNpc(Player player, NpcClickEvent event) {
466 private boolean handleItemClickEvent(Player player, ItemClickEvent event) {
467 switch(event.getType()) {
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()));
472 player.send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
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()));
482 player.send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
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()));
492 player.send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
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()));
502 player.send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(), event.getType(), event.getItem().getId())));
511 protected boolean firstClickItem(Player player, ItemClickEvent event) {
515 protected boolean secondClickItem(Player player, ItemClickEvent event) {
519 protected boolean thirdClickItem(Player player, ItemClickEvent event) {
523 protected boolean fourthClickItem(Player player, ItemClickEvent event) {
527 private boolean handleButtonClickEvent(Player player, ButtonClickEvent event) {
528 if (onClick(player, event.getButton())) {
530 player.send(
new SendMessage(String.format(
"[%s]: button=%d",
this.getClass().getSimpleName(), event.getButton())));
537 protected boolean onClick(
final Player player,
final int button) {
540 player.send(
new SendURL(
"http://www.tarnishps.com/"));
543 InterfaceWriter.write(
new AchievementWriter(player));
544 player.interfaceManager.setSidebar(Config.QUEST_TAB, 35_000);
548 InterfaceWriter.write(
new InformationWriter(player));
551 InterfaceWriter.write(
new InformationWriter(player));
552 player.interfaceManager.setSidebar(Config.QUEST_TAB, 29_400);
555 player.dialogueFactory.
sendOption(
"Activity Logger", () -> {
556 player.dialogueFactory.
onAction(player.activityLogger::open);
557 },
"Drop Simulator", () -> {
558 player.dialogueFactory.
onAction(() -> DropSimulator.open(player));
561 },
"Title Manager", () -> {
562 player.dialogueFactory.
onAction(() -> TitleManager.open(player));
563 },
"Slayer Interface", () -> {
564 player.dialogueFactory.
onAction(() -> player.slayer.
open(SlayerTab.MAIN));
568 ProfileViewer.open(player, player);
572 player.activityLogger.open();
576 TitleManager.open(player);
580 DropDisplay.open(player);
584 DropSimulator.open(player);
588 player.gameRecord.display(ActivityType.getFirst());