下面列出了org.bukkit.event.player.PlayerExpChangeEvent#getPlayer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler
public void onPlayerExpChange(PlayerExpChangeEvent event) {
try {
final Player player = event.getPlayer();
final Location location = player.getLocation();
final IslandManager islandManager = IridiumSkyblock.getIslandManager();
if (!islandManager.isIslandWorld(location)) return;
final User user = User.getUser(player);
final Island island = user.getIsland();
if (island == null) return;
for (Mission mission : IridiumSkyblock.getMissions().missions) {
final Map<String, Integer> levels = island.getMissionLevels();
levels.putIfAbsent(mission.name, 1);
final MissionData level = mission.levels.get(levels.get(mission.name));
if (level.type == MissionType.EXPERIENCE)
island.addMission(mission.name, event.getAmount());
}
} catch (Exception e) {
IridiumSkyblock.getInstance().sendErrorMessage(e);
}
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onXPGain(final PlayerExpChangeEvent event) {
final PlayerStat stat = PlayerStat.XP_GAINED;
// Get player
final Player player = event.getPlayer();
// Do general check
if (!plugin.doGeneralCheck(player, stat))
return;
// Update value to new stat.
plugin.getDataManager().setPlayerInfo(player.getUniqueId(), stat,
new XPGainedSpecification(player.getUniqueId(), event.getAmount(), player.getWorld().getName())
.constructQuery());
}