Files
CustomNPC-Plus/src/main/java/kamkeel/npcs/controllers/data/profile/CNPCData.java
T

84 lines
2.8 KiB
Java
Raw Normal View History

2025-02-27 15:54:42 -05:00
package kamkeel.npcs.controllers.data.profile;
2025-01-23 16:10:01 -05:00
2025-02-18 06:25:09 -05:00
import kamkeel.npcs.controllers.SyncController;
2025-01-23 16:10:01 -05:00
import net.minecraft.entity.player.EntityPlayer;
2025-02-18 06:25:09 -05:00
import net.minecraft.entity.player.EntityPlayerMP;
2025-01-23 16:10:01 -05:00
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.controllers.data.PlayerData;
2026-01-24 15:11:50 -05:00
import noppes.npcs.controllers.data.PlayerTradeData;
2025-02-20 21:40:39 -05:00
2025-02-19 00:21:40 -05:00
import java.util.ArrayList;
import java.util.List;
2025-01-23 16:10:01 -05:00
public class CNPCData implements IProfileData {
@Override
public String getTagName() {
2025-02-20 21:39:02 -05:00
return "CNPC+";
2025-01-23 16:10:01 -05:00
}
@Override
public NBTTagCompound getCurrentNBT(EntityPlayer player) {
PlayerData customNPCData = PlayerData.get(player);
2026-01-24 15:11:50 -05:00
NBTTagCompound compound = customNPCData.getNBT();
compound.removeTag(PlayerTradeData.NBT_KEY);
return compound;
2025-01-23 16:10:01 -05:00
}
@Override
public void save(EntityPlayer player) {
PlayerData customNPCData = PlayerData.get(player);
customNPCData.save();
2025-02-18 06:25:09 -05:00
SyncController.syncPlayerData((EntityPlayerMP) player, false);
2025-01-23 16:10:01 -05:00
}
@Override
public void setNBT(EntityPlayer player, NBTTagCompound replace) {
PlayerData customNPCData = PlayerData.get(player);
2026-01-24 15:11:50 -05:00
NBTTagCompound sharedData = new NBTTagCompound();
customNPCData.tradeData.writeToNBT(sharedData);
2025-03-12 20:12:01 -04:00
if (replace.hasNoTags()) {
2025-01-23 16:10:01 -05:00
PlayerData newData = new PlayerData();
newData.player = player;
customNPCData.setNBT((NBTTagCompound) newData.getNBT().copy());
2025-03-12 20:12:01 -04:00
} else {
2025-01-23 16:10:01 -05:00
customNPCData.setNBT(replace);
}
2026-01-24 15:11:50 -05:00
customNPCData.tradeData.readFromNBT(sharedData);
2025-01-23 17:45:13 -05:00
customNPCData.updateClient = true;
2025-01-23 16:10:01 -05:00
}
2025-02-18 20:05:55 -05:00
@Override
public int getSwitchPriority() {
return 0;
}
@Override
2025-02-19 18:15:05 -05:00
public ProfileOperation verifySwitch(EntityPlayer player) {
PlayerData playerData = PlayerData.get(player);
2025-03-12 20:12:01 -04:00
if (playerData.partyUUID != null)
2025-02-19 18:15:05 -05:00
return ProfileOperation.error("Cannot switch while in Party");
2026-02-24 19:06:48 -05:00
if (playerData.abilityData.isExecutingAbility())
return ProfileOperation.error("Cannot switch while performing an Ability");
2025-02-19 18:15:05 -05:00
return ProfileOperation.success("");
2025-02-18 20:05:55 -05:00
}
2025-02-19 00:21:40 -05:00
@Override
2025-02-27 15:54:42 -05:00
public List<ProfileInfoEntry> getInfo(EntityPlayer player, NBTTagCompound compound) {
2025-02-19 00:21:40 -05:00
PlayerData playerData = new PlayerData();
playerData.player = player;
playerData.setNBT(compound);
2025-02-27 15:54:42 -05:00
List<ProfileInfoEntry> info = new ArrayList<>();
info.add(new ProfileInfoEntry("profile.info.quest.finished", 0x60fa57, playerData.questData.finishedQuests.size(), 0xFFFFFF));
info.add(new ProfileInfoEntry("profile.info.quest.active", 0xf75336, playerData.questData.activeQuests.size(), 0xFFFFFF));
info.add(new ProfileInfoEntry("profile.info.dialog.read", 0x47acf5, playerData.dialogData.dialogsRead.size(), 0xFFFFFF));
2025-02-19 00:21:40 -05:00
return info;
}
2025-01-23 16:10:01 -05:00
}