完善并添加README.md

This commit is contained in:
yhy
2026-06-03 07:09:32 +08:00
parent 293a160856
commit 7cd89e59fd
47 changed files with 750 additions and 3726 deletions

View File

@@ -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]");
}
}
}
}