File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import AntiCheat from "./AntiCheat";
55import { wsSocket } from "./Socket" ;
66import * as EliminationRoom from "./EliminationRoom" ;
77import LevelSystem from "../utils/LevelSystem" ;
8+ import { ClanData } from "./Clan" ;
89
910export 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}
You can’t perform that action at this time.
0 commit comments