API Events
AdvanceMMO fires various events that other plugins can listen to. This page documents all available events.
Player Events
PlayerLevelUpEvent
Fired when a player levels up.
@EventHandler
public void onPlayerLevelUp(PlayerLevelUpEvent event) {
Player player = event.getPlayer();
int oldLevel = event.getOldLevel();
int newLevel = event.getNewLevel();
}
Methods:
getPlayer()- Returns the playergetOldLevel()- Previous levelgetNewLevel()- New level
PlayerXPChangeEvent
Fired when a player's XP changes.
@EventHandler
public void onXPChange(PlayerXPChangeEvent event) {
Player player = event.getPlayer();
long oldXP = event.getOldXP();
long newXP = event.getNewXP();
long change = event.getChange();
}
Class Events
PlayerClassSelectEvent
Fired when a player selects a class.
@EventHandler
public void onClassSelect(PlayerClassSelectEvent event) {
Player player = event.getPlayer();
PlayerClass selectedClass = event.getSelectedClass();
}
Race Events
PlayerRaceSelectEvent
Fired when a player selects a race.
@EventHandler
public void onRaceSelect(PlayerRaceSelectEvent event) {
Player player = event.getPlayer();
Race selectedRace = event.getSelectedRace();
}
Quest Events
QuestAcceptEvent
Fired when a player accepts a quest.
@EventHandler
public void onQuestAccept(QuestAcceptEvent event) {
Player player = event.getPlayer();
Quest quest = event.getQuest();
}
QuestCompleteEvent
Fired when a player completes a quest.
@EventHandler
public void onQuestComplete(QuestCompleteEvent event) {
Player player = event.getPlayer();
Quest quest = event.getQuest();
// Rewards are automatically given
}
Profession Events
ProfessionSelectEvent
Fired when a player selects a profession.
@EventHandler
public void onProfessionSelect(ProfessionSelectEvent event) {
Player player = event.getPlayer();
Profession profession = event.getProfession();
}
ProfessionLevelUpEvent
Fired when a profession levels up.
@EventHandler
public void onProfessionLevelUp(ProfessionLevelUpEvent event) {
Player player = event.getPlayer();
Profession profession = event.getProfession();
int newLevel = event.getNewLevel();
}
Achievement Events
AchievementCompleteEvent
Fired when a player completes an achievement.
@EventHandler
public void onAchievementComplete(AchievementCompleteEvent event) {
Player player = event.getPlayer();
Achievement achievement = event.getAchievement();
}
Skill Events
SkillUpgradeEvent
Fired when a player upgrades a skill.
@EventHandler
public void onSkillUpgrade(SkillUpgradeEvent event) {
Player player = event.getPlayer();
SkillNode skill = event.getSkill();
int newLevel = event.getNewLevel();
int oldLevel = event.getOldLevel();
}
Note: This event may be fired when skills are upgraded through the GUI or commands.
SkillActivateEvent
Fired when a player activates an active skill.
@EventHandler
public void onSkillActivate(SkillActivateEvent event) {
Player player = event.getPlayer();
SkillNode skill = event.getSkill();
int skillLevel = event.getSkillLevel();
}
Note: This event is fired when active skills are manually activated via command or GUI.
SkillComboActivateEvent
Fired when a skill combination (combo) is successfully activated.
@EventHandler
public void onSkillCombo(SkillComboActivateEvent event) {
Player player = event.getPlayer();
String comboId = event.getComboId();
String comboName = event.getComboName();
List<Integer> usedSkills = event.getUsedSkillIds();
}
Note: This event is fired when a player activates the required skills in sequence within the combo window.
SkillRespecEvent
Fired when a player resets their skill tree.
@EventHandler
public void onSkillRespec(SkillRespecEvent event) {
Player player = event.getPlayer();
int refundedPoints = event.getRefundedPoints();
long cost = event.getCost();
}
Note: This event is fired when a player uses /skill reset.
Mana Events
ManaChangeEvent
Fired when a player's mana changes.
@EventHandler
public void onManaChange(ManaChangeEvent event) {
Player player = event.getPlayer();
double oldMana = event.getOldMana();
double newMana = event.getNewMana();
double change = event.getChange();
}
Note: This event is fired when mana is added, removed, or regenerated.
MaxManaChangeEvent
Fired when a player's maximum mana changes (e.g., on level up).
@EventHandler
public void onMaxManaChange(MaxManaChangeEvent event) {
Player player = event.getPlayer();
double oldMaxMana = event.getOldMaxMana();
double newMaxMana = event.getNewMaxMana();
}
Event Registration
To listen to events, register your listener:
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(new YourListener(), this);
}
public class YourListener implements Listener {
@EventHandler
public void onPlayerLevelUp(PlayerLevelUpEvent event) {
// Your code
}
}
Event Priority
You can set event priority:
@EventHandler(priority = EventPriority.HIGH)
public void onEvent(SomeEvent event) {
// Executes early
}
@EventHandler(priority = EventPriority.LOW)
public void onEvent(SomeEvent event) {
// Executes late
}