XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

chore: gracefully handle removeFromGuild requests for non-members (#3490)

Closes #3483 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3490 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

b24b4a38
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +55 -53
Modified src/controllers/api/removeFromGuildController.ts +55 -53
@@ -47,61 +47,63 @@ const processRemoveFromGuildRequest = async (
47 47 return;
48 48 }
49 49
50 const guildMember = (await GuildMember.findOne({ accountId: payload.userId, guildId: guild._id }))!;
51 if (guildMember.rank == 0) {
52 await deleteGuild(guild._id);
53 } else {
54 if (guildMember.status == 0) {
55 const inventory = await getInventory(payload.userId, "GuildId LevelKeys Recipes");
56 inventory.GuildId = undefined;
57 removeDojoKeyItems(inventory);
58 await inventory.save();
59 } else if (guildMember.status == 1) {
60 // TOVERIFY: Is this inbox message actually sent on live?
61 await createMessage(guildMember.accountId, [
62 {
63 sndr: "/Lotus/Language/Bosses/Ordis",
64 msg: "/Lotus/Language/Clan/RejectedFromClan",
65 sub: "/Lotus/Language/Clan/RejectedFromClanHeader",
66 arg: [
67 {
68 Key: "PLAYER_NAME",
69 Tag: (await Account.findOne({ _id: guildMember.accountId }, "DisplayName"))!.DisplayName
70 },
71 {
72 Key: "CLAN_NAME",
73 Tag: guild.Name
74 }
75 ]
76 // TOVERIFY: If this message is sent on live, is it highPriority?
77 }
78 ]);
79 } else if (guildMember.status == 2) {
80 // Delete the inbox message for the invite
81 await Inbox.deleteOne({
82 ownerId: guildMember.accountId,
83 contextInfo: guild._id.toString(),
84 acceptAction: "GUILD_INVITE"
85 });
86 }
87 await GuildMember.deleteOne({ _id: guildMember._id });
88
89 guild.RosterActivity ??= [];
90 if (isKick) {
91 const kickee = (await Account.findById(payload.userId))!;
92 guild.RosterActivity.push({
93 dateTime: new Date(),
94 entryType: 12,
95 details: getSuffixedName(kickee) + "," + getSuffixedName(account)
96 });
50 const guildMember = await GuildMember.findOne({ accountId: payload.userId, guildId: guild._id });
51 if (guildMember) {
52 if (guildMember.rank == 0) {
53 await deleteGuild(guild._id);
97 54 } else {
98 guild.RosterActivity.push({
99 dateTime: new Date(),
100 entryType: 7,
101 details: getSuffixedName(account)
102 });
55 if (guildMember.status == 0) {
56 const inventory = await getInventory(payload.userId, "GuildId LevelKeys Recipes");
57 inventory.GuildId = undefined;
58 removeDojoKeyItems(inventory);
59 await inventory.save();
60 } else if (guildMember.status == 1) {
61 // TOVERIFY: Is this inbox message actually sent on live?
62 await createMessage(guildMember.accountId, [
63 {
64 sndr: "/Lotus/Language/Bosses/Ordis",
65 msg: "/Lotus/Language/Clan/RejectedFromClan",
66 sub: "/Lotus/Language/Clan/RejectedFromClanHeader",
67 arg: [
68 {
69 Key: "PLAYER_NAME",
70 Tag: (await Account.findOne({ _id: guildMember.accountId }, "DisplayName"))!.DisplayName
71 },
72 {
73 Key: "CLAN_NAME",
74 Tag: guild.Name
75 }
76 ]
77 // TOVERIFY: If this message is sent on live, is it highPriority?
78 }
79 ]);
80 } else if (guildMember.status == 2) {
81 // Delete the inbox message for the invite
82 await Inbox.deleteOne({
83 ownerId: guildMember.accountId,
84 contextInfo: guild._id.toString(),
85 acceptAction: "GUILD_INVITE"
86 });
87 }
88 await GuildMember.deleteOne({ _id: guildMember._id });
89
90 guild.RosterActivity ??= [];
91 if (isKick) {
92 const kickee = (await Account.findById(payload.userId))!;
93 guild.RosterActivity.push({
94 dateTime: new Date(),
95 entryType: 12,
96 details: getSuffixedName(kickee) + "," + getSuffixedName(account)
97 });
98 } else {
99 guild.RosterActivity.push({
100 dateTime: new Date(),
101 entryType: 7,
102 details: getSuffixedName(account)
103 });
104 }
105 await guild.save();
103 106 }
104 await guild.save();
105 107 }
106 108
107 109 res.json({