1package com.runehive.game.plugin;
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;
73 }
catch (Exception ex) {
74 logger.error(String.format(
"player=%s error while handling event: %s", player.
getName(),
this.getClass().getSimpleName()), ex);
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()));
88 player.
send(
new SendMessage(String.format(
"[%s]: item=%d position=%s",
this.getClass().getSimpleName(),
event.getItem().getId(),
event.getPosition().toString())));
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()));
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())));
116 switch(
event.getType()) {
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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()));
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())));
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())));
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()));
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())));
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));
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)));
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()));
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())));
313 switch(
event.getType()) {
316 logger.log(Level.INFO, String.format(
"[%s, type=%d]:first click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
318 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
326 logger.log(Level.INFO, String.format(
"[%s, type=%d]:second click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
328 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
336 logger.log(Level.INFO, String.format(
"[%s, type=%d]:third click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
338 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
348 logger.log(Level.INFO, String.format(
"[%s, type=%d]:first click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
350 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
356 logger.log(Level.INFO, String.format(
"[%s, type=%d]:second click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
359 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
365 logger.log(Level.INFO, String.format(
"[%s, type=%d]:third click object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId()));
368 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: object=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getObject().getId())));
374 switch(
event.getType()) {
378 logger.log(Level.INFO, String.format(
"[%s, type=%d]:first click npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id));
380 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id)));
388 logger.log(Level.INFO, String.format(
"[%s, type=%d]:second click npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id));
390 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id)));
399 logger.log(Level.INFO, String.format(
"[%s, type=%d]:third click npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id));
401 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id)));
409 logger.log(Level.INFO, String.format(
"[%s, type=%d]:fourth click npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id));
411 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: npc=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getNpc().id)));
438 switch(
event.getType()) {
441 logger.log(Level.INFO, String.format(
"[%s, type=%d]:first click item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId()));
443 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId())));
451 logger.log(Level.INFO, String.format(
"[%s, type=%d]:second click item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId()));
453 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId())));
461 logger.log(Level.INFO, String.format(
"[%s, type=%d]:third click item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId()));
463 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId())));
471 logger.log(Level.INFO, String.format(
"[%s, type=%d]:fourth click item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId()));
473 player.
send(
new SendMessage(String.format(
"[%s, type=%d]: item=%d",
this.getClass().getSimpleName(),
event.getType(),
event.getItem().getId())));
501 player.
send(
new SendMessage(String.format(
"[%s]: button=%d",
this.getClass().getSimpleName(),
event.getButton())));
528 },
"Drop Simulator", () -> {
532 },
"Title Manager", () -> {
534 },
"Slayer Interface", () -> {
The class that contains setting-related constants for the server.
static final int QUEST_TAB
static final boolean LOG_PLAYER
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.
Handles the achievement tab.
void display(ActivityType activity)
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.
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.
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)
static final Logger logger
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.
static DataBus getDataBus()
void setSidebar(int tab, int id)
This class represents a character controlled by a player.
String getName()
Gets the name of this entity.
DialogueFactory dialogueFactory
final PlayerRecord gameRecord
final InterfaceManager interfaceManager
final ActivityLogger activityLogger
void send(OutgoingPacket encoder)
The OutgoingPacket that sends a message to a Players chatbox in the client.
The OutgoingPacket that opens a URL from client.
Holds all activity types that are timed.
static ActivityType getFirst()
MAIN
The main itemcontainer - all the general information.
Holds all the player right data.
static boolean isDeveloper(Player player)
Checks if the player has developer status.
The type of event listener that will listen for player-related events.