protected double uppdateExp(double exp, boolean quiet) {
MyPetExpEvent expEvent = new MyPetExpEvent(myPet, exp);
Bukkit.getServer().getPluginManager().callEvent(expEvent);
if (expEvent.isCancelled()) {
return 0;
}
int oldLvl = this.level;
double oldExp = this.exp;
this.exp += expEvent.getExp();
this.exp = Math.max(0, Math.min(maxExp, this.exp));
int lvl = cache.getLevel(myPet.getWorldGroup(), myPet.getPetType(), this.exp);
if (lvl != 0) {
this.level = lvl;
} else {
this.level = calculateLevel();
}
if (oldLvl != this.level) {
if (oldLvl < this.level) {
Bukkit.getServer().getPluginManager().callEvent(new MyPetLevelUpEvent(myPet, this.level, oldLvl, quiet));
} else {
Bukkit.getServer().getPluginManager().callEvent(new MyPetLevelDownEvent(myPet, this.level, oldLvl, quiet));
}
}
return this.exp - oldExp;
}