Mail 위치 변경 : Player data → Read only data

This commit is contained in:
Ino 2025-07-01 02:18:08 +09:00
parent e18e337442
commit 84e7e9aa0e
1 changed files with 25 additions and 35 deletions

View File

@ -122,10 +122,10 @@ function Add_Mail(args)
var dt = Get_CurKoreaTime(); var dt = Get_CurKoreaTime();
makemail.RemainTime = new Date(dt.setDate(dt.getDate() + day)); makemail.RemainTime = new Date(dt.setDate(dt.getDate() + day));
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; var readonlydata = Get_UserReadOnlyData();
var mailjson = []; var mailjson = [];
if (!CheckNullOrEmpty(userdata.Mail)) if (!CheckNullOrEmpty(readonlydata.Data.Mail))
mailjson = JSON.parse(userdata.Mail.Value); mailjson = JSON.parse(readonlydata.Data.Mail.Value);
mailjson.push(makemail); mailjson.push(makemail);
// 시간 지난 메일 확인 후 삭제 // 시간 지난 메일 확인 후 삭제
@ -138,27 +138,13 @@ function Add_Mail(args)
} }
mailjson = mailjson.filter(function(x) { return x !== null }); // null 모두 지우기 mailjson = mailjson.filter(function(x) { return x !== null }); // null 모두 지우기
server.UpdateUserData({ PlayFabId: currentPlayerId, Data: {"Mail": JSON.stringify(mailjson)} }); Set_MailData(mailjson);
return { return {
result : mailjson result : mailjson
}; };
} }
function Del_Mail(itemname)
{
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
var mailjson = JSON.parse(userdata.Mail.Value);
var mailindex = mailjson.findIndex(f=>f.Reward == itemname);
if(mailindex > -1)
{
mailjson.splice(mailindex, 1);
server.UpdateUserData({ PlayFabId: currentPlayerId, Data: {"Mail": JSON.stringify(mailjson)} });
return true;
}
else
log.info(itemname + ' 아이템을 우편함에서 찾지 못했습니다.');
return false;
}
handlers.Get_UserInfo = function (args) handlers.Get_UserInfo = function (args)
{ {
var readonlydata = Get_UserReadOnlyData(); var readonlydata = Get_UserReadOnlyData();
@ -204,6 +190,10 @@ function Set_JsonUserData(urod)
urod.LastTime = Get_CurKoreaTime(); urod.LastTime = Get_CurKoreaTime();
server.UpdateUserReadOnlyData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"UserInfo": JSON.stringify(urod)} }); server.UpdateUserReadOnlyData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"UserInfo": JSON.stringify(urod)} });
} }
function Set_MailData(mailjson)
{
server.UpdateUserReadOnlyData({ PlayFabId: currentPlayerId, Data: {"Mail": JSON.stringify(mailjson)} });
}
function Get_Return(errorval, add) { function Get_Return(errorval, add) {
var rtn = { var rtn = {
error: errorval, error: errorval,
@ -235,15 +225,15 @@ function Get_Return(errorval, add) {
} }
function Add_Item(table, itemtable, urod, itemid, amount, isCheat) function Add_Item(table, itemtable, urod, itemid, amount, isCheat)
{ {
var itemdata = itemtable.find(f => f.n_ItemID === itemid); var itemdata = itemtable.find(f => f.n_ItemID == itemid);
if (!itemdata) { if (!itemdata) {
log.error("Add_Item - Invalid item ID: " + itemid); log.error("Add_Item - Invalid item ID: " + itemid);
return; return;
} }
Add_MissionCount(table, urod, "TAKE_GOODS", itemid, itemCount, false); Add_MissionCount(table, urod, "TAKE_GOODS", itemid, amount, false);
Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", itemid, itemCount, false); Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", itemid, amount, false);
Add_MissionCount(table, urod, "TAKE_GOODS_ACC", itemid, itemCount, false); Add_MissionCount(table, urod, "TAKE_GOODS_ACC", itemid, amount, false);
switch (itemdata.e_ItemType) switch (itemdata.e_ItemType)
{ {
@ -430,16 +420,16 @@ handlers.Get_MailList = function(args)
} }
handlers.Get_MailReward = function(args) handlers.Get_MailReward = function(args)
{ {
var error = Get_Error(args.Token); var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error); if (error < 0) return Get_Return(error);
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; if (!CheckNullOrEmpty(readonlydata.Data.Mail))
if (!CheckNullOrEmpty(userdata.Mail))
{ {
var table = Get_MissionTable(); var table = Get_MissionTable();
var itemtable = Get_ItemTable(); var itemtable = Get_ItemTable();
var urod = Get_JsonUserData(); var urod = Get_JsonUserData(readonlydata);
var mailjson = JSON.parse(userdata.Mail.Value); var mailjson = JSON.parse(readonlydata.Data.Mail.Value);
var existmail = false; var existmail = false;
var getdate = new Date(args.RemainTime); var getdate = new Date(args.RemainTime);
for (var i in mailjson) for (var i in mailjson)
@ -457,7 +447,7 @@ handlers.Get_MailReward = function(args)
if (existmail) if (existmail)
{ {
server.UpdateUserData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"Mail": JSON.stringify(mailjson)} }); Set_MailData(mailjson);
Set_JsonUserData(urod); Set_JsonUserData(urod);
return Get_Return(error, { Mail: mailjson } ); return Get_Return(error, { Mail: mailjson } );
} }
@ -469,20 +459,20 @@ handlers.Get_MailReward = function(args)
} }
handlers.Get_AllMail = function(args) handlers.Get_AllMail = function(args)
{ {
var error = Get_Error(args.Token); var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error); if (error < 0) return Get_Return(error);
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data; if (!CheckNullOrEmpty(readonlydata.Data.Mail))
if (!CheckNullOrEmpty(userdata.Mail))
{ {
var table = Get_MissionTable(); var table = Get_MissionTable();
var itemtable = Get_ItemTable(); var itemtable = Get_ItemTable();
var urod = Get_JsonUserData(); var urod = Get_JsonUserData(readonlydata);
var mailjson = JSON.parse(userdata.Mail.Value); var mailjson = JSON.parse(readonlydata.Data.Mail.Value);
for (var i in mailjson) for (var i in mailjson)
Add_Item(table, itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount); Add_Item(table, itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount);
server.UpdateUserData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"Mail": "[]"} }); Set_MailData([]);
Set_JsonUserData(urod); Set_JsonUserData(urod);
return Get_Return(error, { Mail: mailjson }); return Get_Return(error, { Mail: mailjson });