初始化项目

This commit is contained in:
yhy
2026-06-03 06:25:44 +08:00
commit 293a160856
65 changed files with 6417 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
package com.yaohun.petsystem.api;
import com.yaohun.petsystem.PetMain;
import com.yaohun.petsystem.data.PetData;
import com.yaohun.petsystem.data.PlayerData;
import com.yaohun.petsystem.manage.LevelExpManager;
import com.yaohun.petsystem.manage.PetManager;
import com.yaohun.petsystem.manage.PlayerManager;
import com.yaohun.petsystem.model.PetNbt;
import de.tr7zw.nbtapi.NBTItem;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class PetExpAPI {
public static void addExp(Player player, int addExp) {
String playerName = player.getName();
PlayerManager playerManager = PetMain.getPlayerManager();
PlayerData playerData = playerManager.getPlayerData(playerName);
if (playerData.isPetStackNull()) {
System.out.println("[日志 - 灵宠] 玩家 " + playerName + " 尚未携带宠物.");
return;
}
PetNbt petNbt = playerData.getPetNbt();
String petKey = petNbt.petData.getFileName();
PetData petData = PetManager.getPetData(petKey);
if (petData == null) {
System.out.println("[日志 - 灵宠] 未添加 " + petKey + " 的宠物配置.");
return;
}
int petLevel = petNbt.level;
if (petLevel >= petData.getMaxLevel()) {
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;
}
addExp -= needExp;
petLevel++;
needExp = LevelExpManager.getNeedExpValue(petLevel);
bcmupLevelEvant(playerName, petLevel);
playerData.refreshPetStack();
}
petNbt.setExp(addExp);
petNbt.setLevel(petLevel);
playerData.savePlayerData();
}
public static PetNbt addExp(String playerName, ItemStack stack, int addExp) {
NBTItem nbtItem = new NBTItem(stack);
String petKey = nbtItem.getString("petKey");
PetData petData = PetManager.getPetData(petKey);
if (petData == null) {
System.out.println("[日志 - 灵宠] 未添加 " + petKey + " 的宠物配置.");
return null;
}
PetNbt petNbt = new PetNbt();
petNbt.loadNbtData(nbtItem);
int petLevel = petNbt.level;
if (petLevel >= petData.getMaxLevel()) {
return petNbt;
}
int needExp = LevelExpManager.getNeedExpValue(petLevel);
petNbt.setTotalExp(petNbt.totalExp + addExp);
int nowExp = petNbt.exp;
addExp = nowExp + addExp;
while (addExp >= needExp) {
if (petLevel < 0) {
break;
}
addExp -= needExp;
petLevel++;
needExp = LevelExpManager.getNeedExpValue(petLevel);
bcmupLevelEvant(playerName, petLevel);
}
petNbt.setExp(addExp);
petNbt.setLevel(petLevel);
return petNbt;
}
public static void bcmupLevelEvant(String playerName, int level) {
boolean butt = false;
if (level == 10 || level == 20 || level == 30 || level == 40 || level == 50 ||
level == 60 || level == 70 || level == 80 || level == 90 || level == 100
|| level == 105 || level == 110 || level == 115 || level == 120 || level == 125) {
butt = true;
}
if (butt) {
// Bukkit.broadcastMessage("§f[§c§l公告§f] §a玩家§e"+playName+"§a本月器师手礼达到了 §7[§e§lLv."+level+"§7]");
}
}
}