package com.github.theword.queqiao.utils;
import com.github.theword.queqiao.tool.event.model.PlayerModel;
import com.github.theword.queqiao.tool.event.model.achievement.AchievementModel;
import com.github.theword.queqiao.tool.event.model.achievement.DisplayModel;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.DisplayInfo;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.network.chat.contents.TranslatableContents;
public class ForgeTool {
public static PlayerModel getForgePlayer(ServerPlayer forgeServerPlayer) {
PlayerModel playerModel = new PlayerModel();
playerModel.setNickname(forgeServerPlayer.getName().getString());
playerModel.setUuid(forgeServerPlayer.getUUID());
playerModel.setAddress(forgeServerPlayer.getIpAddress());
playerModel.setHealth((double) forgeServerPlayer.getHealth());
playerModel.setMaxHealth((double) forgeServerPlayer.getMaxHealth());
playerModel.setExperienceLevel(forgeServerPlayer.experienceLevel);
playerModel.setExperienceProgress((double) forgeServerPlayer.experienceProgress);
playerModel.setTotalExperience(forgeServerPlayer.totalExperience);
playerModel.setOp(forgeServerPlayer.hasPermissions(2));
playerModel.setWalkSpeed((double) forgeServerPlayer.getSpeed());
playerModel.setX(forgeServerPlayer.getX());
playerModel.setY(forgeServerPlayer.getY());
playerModel.setZ(forgeServerPlayer.getZ());
return playerModel;
}
public static AchievementModel getForgeAchievement(Advancement advancement) {
AchievementModel achievementModel = new AchievementModel();
DisplayModel displayModel = new DisplayModel();
if (advancement.display().isEmpty()) {
return achievementModel;
}
if (advancement.parent().isPresent()) {
achievementModel.setKey(advancement.parent().get().toString());
}
DisplayInfo displayInfo = advancement.display().get();
displayModel.setFrame(displayInfo.getType().toString());
displayModel.setTitle(((TranslatableContents) displayInfo.getTitle().getContents()).getKey());
displayModel.setDescription(((TranslatableContents) displayInfo.getDescription().getContents()).getKey());
achievementModel.setDisplay(displayModel);
return achievementModel;
}
}