AdvanceMMO Wiki

Ultimate RPG Documentation

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 player
  • getOldLevel() - Previous level
  • getNewLevel() - 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
}
Tip: Use event priorities carefully. HIGH priority runs before the plugin's default handlers, LOW runs after.