added a check to make sure the user actually has the item unlocked
This commit is contained in:
@ -43,31 +43,30 @@ export async function updateAvatarParts(
|
||||
|
||||
try {
|
||||
// only including the values that aren't undefined i.e 0
|
||||
const AvatarPartData: any = {};
|
||||
if (avatarHead !== undefined) AvatarPartData.avatarHead = avatarHead;
|
||||
if (avatarFace !== undefined) AvatarPartData.avatarFace = avatarFace;
|
||||
if (avatarBack !== undefined) AvatarPartData.avatarBack = avatarBack;
|
||||
if (avatarWear !== undefined) AvatarPartData.avatarWear = avatarWear;
|
||||
if (avatarItem !== undefined) AvatarPartData.avatarItem = avatarItem;
|
||||
const avatarPartData: any = {};
|
||||
if (avatarHead !== undefined) avatarPartData.avatarHead = avatarHead;
|
||||
if (avatarFace !== undefined) avatarPartData.avatarFace = avatarFace;
|
||||
if (avatarBack !== undefined) avatarPartData.avatarBack = avatarBack;
|
||||
if (avatarWear !== undefined) avatarPartData.avatarWear = avatarWear;
|
||||
if (avatarItem !== undefined) avatarPartData.avatarItem = avatarItem;
|
||||
|
||||
const UpdateAvatarHead = await artemis.chuni_profile_data.update({
|
||||
const updateAvatarParts = await artemis.chuni_profile_data.update({
|
||||
where: {
|
||||
user_version: {
|
||||
user: user.UserId,
|
||||
version: supportedVersionNumber,
|
||||
},
|
||||
},
|
||||
data: AvatarPartData,
|
||||
data: avatarPartData,
|
||||
});
|
||||
|
||||
console.log(UpdateAvatarHead);
|
||||
|
||||
return UpdateAvatarHead;
|
||||
return updateAvatarParts;
|
||||
} catch (error) {
|
||||
console.error("Error updating avatar parts:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getAllAvatarParts(category: number) {
|
||||
const { user } = await getAuth();
|
||||
|
||||
@ -75,7 +74,21 @@ export async function getAllAvatarParts(category: number) {
|
||||
throw new Error("User is not authenticated or accessCode is missing");
|
||||
}
|
||||
|
||||
const AllAvatarParts = await artemis.chuni_static_avatar.findMany({
|
||||
// Check for user items in _item_item
|
||||
const checkUserItems = await artemis.chuni_item_item.findMany({
|
||||
where: {
|
||||
itemKind: 11,
|
||||
user: user.UserId,
|
||||
},
|
||||
select: {
|
||||
itemId: true,
|
||||
},
|
||||
});
|
||||
|
||||
const chuni_item_item_ItemId = checkUserItems.map((item) => item.itemId);
|
||||
|
||||
// Retrieve all avatar parts
|
||||
const allAvatarParts = await artemis.chuni_static_avatar.findMany({
|
||||
where: {
|
||||
category: category,
|
||||
},
|
||||
@ -89,5 +102,21 @@ export async function getAllAvatarParts(category: number) {
|
||||
texturePath: true,
|
||||
},
|
||||
});
|
||||
return AllAvatarParts;
|
||||
|
||||
const currentlyUnlockedAvatarParts = Array.from(
|
||||
new Map(
|
||||
allAvatarParts
|
||||
.filter((matchingAvatarParts) =>
|
||||
chuni_item_item_ItemId.includes(
|
||||
matchingAvatarParts.avatarAccessoryId,
|
||||
),
|
||||
)
|
||||
.map((unlockedAvatarPart) => [
|
||||
unlockedAvatarPart.avatarAccessoryId,
|
||||
unlockedAvatarPart,
|
||||
]),
|
||||
).values(),
|
||||
);
|
||||
|
||||
return currentlyUnlockedAvatarParts;
|
||||
}
|
||||
|
Reference in New Issue
Block a user