完善并添加README.md
This commit is contained in:
@@ -29,49 +29,24 @@ public class PetExpAPI {
|
||||
return;
|
||||
}
|
||||
int petLevel = petNbt.level;
|
||||
if (petLevel >= petData.getMaxLevel()) {
|
||||
int levelCap = getLevelCap(petData, petNbt.evolution);
|
||||
if (petLevel >= levelCap) {
|
||||
return;
|
||||
}
|
||||
// 进化阶段判断
|
||||
int evolution = petNbt.evolution;
|
||||
if (evolution == 1) {
|
||||
if (petLevel >= 20) {
|
||||
return;
|
||||
}
|
||||
} else if (evolution == 2) {
|
||||
if (petLevel >= 40) {
|
||||
return;
|
||||
}
|
||||
} else if (evolution == 3) {
|
||||
if (petLevel >= 60) {
|
||||
return;
|
||||
}
|
||||
} else if (evolution == 4) {
|
||||
if (petLevel >= 70) {
|
||||
return;
|
||||
}
|
||||
} else if (evolution == 5) {
|
||||
if (petLevel >= 75) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
int needExp = LevelExpManager.getNeedExpValue(petLevel);
|
||||
petNbt.setTotalExp(petNbt.totalExp + addExp);
|
||||
|
||||
int nowExp = petNbt.exp;
|
||||
addExp = nowExp + addExp;
|
||||
while (addExp >= needExp) {
|
||||
if (petLevel < 0) {
|
||||
break;
|
||||
}
|
||||
while (needExp > 0 && petLevel < levelCap && addExp >= needExp) {
|
||||
addExp -= needExp;
|
||||
petLevel++;
|
||||
needExp = LevelExpManager.getNeedExpValue(petLevel);
|
||||
bcmupLevelEvant(playerName, petLevel);
|
||||
playerData.refreshPetStack();
|
||||
}
|
||||
petNbt.setExp(addExp);
|
||||
petNbt.setLevel(petLevel);
|
||||
playerData.refreshPetStack();
|
||||
playerData.savePlayerData();
|
||||
}
|
||||
|
||||
@@ -86,7 +61,8 @@ public class PetExpAPI {
|
||||
PetNbt petNbt = new PetNbt();
|
||||
petNbt.loadNbtData(nbtItem);
|
||||
int petLevel = petNbt.level;
|
||||
if (petLevel >= petData.getMaxLevel()) {
|
||||
int levelCap = getLevelCap(petData, petNbt.evolution);
|
||||
if (petLevel >= levelCap) {
|
||||
return petNbt;
|
||||
}
|
||||
int needExp = LevelExpManager.getNeedExpValue(petLevel);
|
||||
@@ -94,10 +70,7 @@ public class PetExpAPI {
|
||||
|
||||
int nowExp = petNbt.exp;
|
||||
addExp = nowExp + addExp;
|
||||
while (addExp >= needExp) {
|
||||
if (petLevel < 0) {
|
||||
break;
|
||||
}
|
||||
while (needExp > 0 && petLevel < levelCap && addExp >= needExp) {
|
||||
addExp -= needExp;
|
||||
petLevel++;
|
||||
needExp = LevelExpManager.getNeedExpValue(petLevel);
|
||||
@@ -108,6 +81,22 @@ public class PetExpAPI {
|
||||
return petNbt;
|
||||
}
|
||||
|
||||
private static int getLevelCap(PetData petData, int evolution) {
|
||||
int maxLevel = petData.getMaxLevel();
|
||||
int evolutionLimit = switch (evolution) {
|
||||
case 1 -> 20;
|
||||
case 2 -> 40;
|
||||
case 3 -> 60;
|
||||
case 4 -> 70;
|
||||
case 5 -> 75;
|
||||
default -> maxLevel;
|
||||
};
|
||||
if (maxLevel <= 0) {
|
||||
return evolutionLimit;
|
||||
}
|
||||
return Math.min(maxLevel, evolutionLimit);
|
||||
}
|
||||
|
||||
public static void bcmupLevelEvant(String playerName, int level) {
|
||||
boolean butt = false;
|
||||
if (level == 10 || level == 20 || level == 30 || level == 40 || level == 50 ||
|
||||
@@ -119,4 +108,4 @@ public class PetExpAPI {
|
||||
// Bukkit.broadcastMessage("§f[§c§l公告§f] §a玩家§e"+playName+"§a本月器师手礼达到了 §7[§e§lLv."+level+"§7]");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user