类org.bukkit.event.player.PlayerExpChangeEvent源码实例Demo

下面列出了怎么用org.bukkit.event.player.PlayerExpChangeEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: IridiumSkyblock   文件: PlayerExpChangeListener.java
@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);
    }
}
 
源代码2 项目: Statz   文件: XPGainedListener.java
@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());

}
 
源代码3 项目: Quests   文件: ExpEarnTaskType.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onExpEarn(PlayerExpChangeEvent e) {
    QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(e.getPlayer().getUniqueId(), true);
    QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
    
    for (Quest quest : super.getRegisteredQuests()) {
        if (questProgressFile.hasStartedQuest(quest)) {
            QuestProgress questProgress = questProgressFile.getQuestProgress(quest);
            
            for (Task task : quest.getTasksOfType(super.getType())) {
                TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
                
                if (taskProgress.isCompleted()) {
                    continue;
                }
                int amount = e.getAmount();
                int expNeeded = (int) task.getConfigValue("amount");
                
                int progressExp;
                if (taskProgress.getProgress() == null) {
                    progressExp = 0;
                } else {
                    progressExp = (int) taskProgress.getProgress();
                }
                
                taskProgress.setProgress(progressExp + amount);
                
                if (((int) taskProgress.getProgress()) >= expNeeded) {
                    taskProgress.setCompleted(true);
                }                    
            }
        }
    }        
}
 
源代码4 项目: AdditionsAPI   文件: DurabilityBar.java
@EventHandler(priority = EventPriority.MONITOR)
public void onXpChange(PlayerExpChangeEvent event) {
	sendDurabilityBossBar(event.getPlayer(), event.getPlayer().getInventory().getItemInMainHand(),
			EquipmentSlot.HAND);
	sendDurabilityBossBar(event.getPlayer(), event.getPlayer().getInventory().getItemInOffHand(),
			EquipmentSlot.OFF_HAND);
}
 
源代码5 项目: NyaaUtils   文件: LootProtectListener.java
private static void giveExp(Player p, int amount) {
    if (amount <= 0) return;
    List<ItemStack> candidate = new ArrayList<>(13);

    for (ItemStack item : new ItemStack[]{
            p.getInventory().getHelmet(),
            p.getInventory().getChestplate(),
            p.getInventory().getLeggings(),
            p.getInventory().getBoots(),
            p.getInventory().getItemInMainHand(),
            p.getInventory().getItemInOffHand()}) {
        if (item != null && item.hasItemMeta() && item.getItemMeta().hasEnchant(Enchantment.MENDING)) {
            if (item.getType().getMaxDurability() > 0 && ((Damageable) item.getItemMeta()).getDamage() > 0) {
                candidate.add(item);
            }
        }
    }

    ItemStack repair = null;
    if (candidate.size() > 0) {
        candidate.sort(LootProtectListener::compareByDamagePercentage);
        repair = candidate.get(0);
    }

    if (repair != null) {
        Damageable itemMeta = (Damageable) repair.getItemMeta();
        int durability = itemMeta.getDamage();
        int repairPoint = durability;
        if (amount * 2 < repairPoint) repairPoint = amount * 2;
        int expConsumption = ((repairPoint % 2) == 1) ? (repairPoint + 1) / 2 : repairPoint / 2;
        itemMeta.setDamage(durability - repairPoint);
        repair.setItemMeta((ItemMeta) itemMeta);
        amount -= expConsumption;
    }

    if (amount > 0) p.giveExp(amount);
    PlayerExpChangeEvent event = new PlayerExpChangeEvent(p, amount);
    Bukkit.getServer().getPluginManager().callEvent(event);
}
 
源代码6 项目: civcraft   文件: DisableXPListener.java
@EventHandler(priority = EventPriority.LOW)
public void onPlayerExpChange(PlayerExpChangeEvent event) {
	Resident resident = CivGlobal.getResident(event.getPlayer());
	CivMessage.send(resident, CivColor.LightGreen+"Picked up "+CivColor.Yellow+event.getAmount()+CivColor.LightGreen+" coins.");
	resident.getTreasury().deposit(event.getAmount());
	
	
	event.setAmount(0);
}
 
源代码7 项目: HoloAPI   文件: IndicatorListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onExpGain(PlayerExpChangeEvent event) {
    if (Settings.INDICATOR_ENABLE.getValue("exp")) {
        Location l = event.getPlayer().getLocation().clone();
        l.setY(l.getY() + Settings.INDICATOR_Y_OFFSET.getValue("exp"));
        HoloAPI.getManager().createSimpleHologram(l, Settings.INDICATOR_TIME_VISIBLE.getValue("exp"), true, Settings.INDICATOR_FORMAT.getValue("exp", "default") + "+" + event.getAmount() + " exp");
    }
}
 
@Override
public void splitWithPartner(PlayerExpChangeEvent event, Player partner, double xp, Object o, MarriagePlayer player, Marriage marriage)
{
	int xpPlayer = (int) Math.round((xp)), xpPartner = (int) xp;
	BonusXPSplitEvent xpSplitEvent = new BonusXPSplitEvent(player, marriage, xpPlayer);
	Bukkit.getServer().getPluginManager().callEvent(xpSplitEvent);
	if(!xpSplitEvent.isCancelled())
	{
		event.setAmount(xpSplitEvent.getAmount());
		if(xpPartner > 0) partner.giveExp(xpPartner); // If the partner is near he/she must also be online
	}
}
 
源代码9 项目: Civs   文件: CivilianListener.java
@EventHandler(ignoreCancelled = true)
public void onCivilianGainExp(PlayerExpChangeEvent event) {
    Civilian civilian = CivilianManager.getInstance().getCivilian(event.getPlayer().getUniqueId());
    civilian.setExpOrbs(event.getAmount());
}
 
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityDeath(PlayerExpChangeEvent event)
{
	calculator.process(event, event.getPlayer(), event.getAmount(), null);
}
 
@Override
public void setEventExp(PlayerExpChangeEvent event, double xp, Object o, MarriagePlayer player, Marriage marriage) {}
 
 类所在包
 类方法
 同包方法