Skip to content

Commit 13536b9

Browse files
committed
implement Player.leaveClan()
1 parent 0964b1c commit 13536b9

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

backend/structures/Player.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import AntiCheat from "./AntiCheat";
55
import { wsSocket } from "./Socket";
66
import * as EliminationRoom from "./EliminationRoom";
77
import LevelSystem from "../utils/LevelSystem";
8+
import { ClanData } from "./Clan";
89

910
export enum Role {
1011
GUEST = -1,
@@ -181,4 +182,18 @@ export default class Player {
181182
this.base.db.run(query, coins, xp, this.owner);
182183
}
183184
}
185+
186+
public static async leaveClan(clan: ClanData, player: Player | string, base: Base): Promise<ClanData> {
187+
const targetPlayer = player instanceof Player ? player.owner : player,
188+
parsedMembers = JSON.parse(clan.members);
189+
190+
parsedMembers.splice(parsedMembers.indexOf(targetPlayer), 1);
191+
await base.db.run("UPDATE accounts SET clan = ? WHERE username = ?", null, targetPlayer);
192+
if (parsedMembers.length === 0) {
193+
await base.db.run("DELETE FROM clans WHERE name = ?", clan.name);
194+
} else {
195+
await base.db.run("UPDATE clans SET members = ? WHERE name = ?", clan.members, clan.name);
196+
}
197+
return clan;
198+
}
184199
}

0 commit comments

Comments
 (0)