Skip to content

Commit dd6b716

Browse files
committed
billsonnn#28 - Multiple packets Weekly and Game2 added
1 parent 12a8362 commit dd6b716

16 files changed

+296
-17
lines changed

src/nitro/communication/NitroMessages.ts

+7-1
Large diffs are not rendered by default.

src/nitro/communication/messages/incoming/IncomingHeader.ts

+6
Original file line numberDiff line numberDiff line change
@@ -446,4 +446,10 @@ export class IncomingHeader
446446
public static RENTABLE_SPACE_RENT_FAILED = 1868;
447447
public static EMAIL_STATUS = 612;
448448
public static CHANGE_EMAIL_RESULT = 1815;
449+
public static WEEKLY_GAME_REWARD = 2641;
450+
public static WEEKLY_GAME_REWARD_WINNERS = 3097;
451+
public static WEEKLY_COMPETITIVE_LEADERBOARD = 3512;
452+
public static WEEKLY_COMPETITIVE_FRIENDS_LEADERBOARD = 3560;
453+
public static WEEKLY_GAME2_FRIENDS_LEADERBOARD = 2270;
454+
public static WEEKLY_GAME2_LEADERBOARD = 2196;
449455
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './directory';
22
export * from './lobby';
3+
export * from './score';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { Game2WeeklyLeaderboardParser } from '../../../parser';
4+
5+
export class Game2WeeklyFriendsLeaderboardEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, Game2WeeklyLeaderboardParser);
10+
}
11+
12+
public getParser(): Game2WeeklyLeaderboardParser
13+
{
14+
return this.parser as Game2WeeklyLeaderboardParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { Game2WeeklyLeaderboardParser } from '../../../parser';
4+
5+
export class Game2WeeklyLeaderboardEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, Game2WeeklyLeaderboardParser);
10+
}
11+
12+
public getParser(): Game2WeeklyLeaderboardParser
13+
{
14+
return this.parser as Game2WeeklyLeaderboardParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { Game2WeeklyLeaderboardParser } from '../../../parser';
4+
5+
export class WeeklyCompetitiveFriendsLeaderboardEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, Game2WeeklyLeaderboardParser);
10+
}
11+
12+
public getParser(): Game2WeeklyLeaderboardParser
13+
{
14+
return this.parser as Game2WeeklyLeaderboardParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { Game2WeeklyLeaderboardParser } from '../../../parser';
4+
5+
export class WeeklyCompetitiveLeaderboardEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, Game2WeeklyLeaderboardParser);
10+
}
11+
12+
public getParser(): Game2WeeklyLeaderboardParser
13+
{
14+
return this.parser as Game2WeeklyLeaderboardParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { WeeklyGameRewardParser } from '../../../parser';
4+
5+
export class WeeklyGameRewardEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, WeeklyGameRewardParser);
10+
}
11+
12+
public getParser(): WeeklyGameRewardParser
13+
{
14+
return this.parser as WeeklyGameRewardParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IMessageEvent } from '../../../../../../api';
2+
import { MessageEvent } from '../../../../../../events';
3+
import { WeeklyGameRewardWinnersParser } from '../../../parser';
4+
5+
export class WeeklyGameRewardWinnersEvent extends MessageEvent implements IMessageEvent
6+
{
7+
constructor(callBack: Function)
8+
{
9+
super(callBack, WeeklyGameRewardWinnersParser);
10+
}
11+
12+
public getParser(): WeeklyGameRewardWinnersParser
13+
{
14+
return this.parser as WeeklyGameRewardWinnersParser;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export * from './Game2WeeklyFriendsLeaderboardEvent';
2+
export * from './Game2WeeklyLeaderboardEvent';
3+
export * from './WeeklyCompetitiveFriendsLeaderboardEvent';
4+
export * from './WeeklyCompetitiveLeaderboardEvent';
5+
export * from './WeeklyGameRewardEvent';
6+
export * from './WeeklyGameRewardWinnersEvent';

src/nitro/communication/messages/incoming/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export * from './friendlist';
1414
export * from './game';
1515
export * from './game/directory';
1616
export * from './game/lobby';
17+
export * from './game/score';
1718
export * from './generic';
1819
export * from './gifts';
1920
export * from './group';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { IMessageDataWrapper, IMessageParser } from '../../../../../../api';
2+
3+
export class Game2WeeklyLeaderboardParser implements IMessageParser
4+
{
5+
private _year: number;
6+
private _week: number;
7+
private _maxOffset: number;
8+
private _currentOffset: number;
9+
private _minutesUntilReset: number;
10+
11+
public flush(): boolean
12+
{
13+
this._year = -1;
14+
this._week = -1;
15+
this._maxOffset = -1;
16+
this._currentOffset = -1;
17+
this._minutesUntilReset = -1;
18+
19+
return true;
20+
}
21+
22+
public parse(wrapper: IMessageDataWrapper): boolean
23+
{
24+
if(!wrapper) return false;
25+
26+
this._year = wrapper.readInt();
27+
this._week = wrapper.readInt();
28+
this._maxOffset = wrapper.readInt();
29+
this._currentOffset = wrapper.readInt();
30+
this._minutesUntilReset = wrapper.readInt();
31+
32+
return true;
33+
}
34+
35+
public get year(): number
36+
{
37+
return this._year;
38+
}
39+
40+
public get week(): number
41+
{
42+
return this._week;
43+
}
44+
45+
public get maxOffset(): number
46+
{
47+
return this._maxOffset;
48+
}
49+
50+
public get currentOffset(): number
51+
{
52+
return this._currentOffset;
53+
}
54+
55+
public get minutesUntilReset(): number
56+
{
57+
return this._minutesUntilReset;
58+
}
59+
}

src/nitro/communication/messages/parser/game/score/GameRewardWinnerEntry.ts

+16-16
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,42 @@ import { IMessageDataWrapper } from '../../../../../../api';
22

33
export class GameRewardWinnerEntry
44
{
5-
private _name:string;
6-
private _figure:string;
7-
private _gender:string;
8-
private _rank:number;
9-
private _score:number;
5+
private _name: string;
6+
private _figure: string;
7+
private _gender: string;
8+
private _rank: number;
9+
private _score: number;
1010

11-
constructor(k:IMessageDataWrapper)
11+
constructor(wrapper: IMessageDataWrapper)
1212
{
13-
this._name = k.readString();
14-
this._figure = k.readString();
15-
this._gender = k.readString();
16-
this._rank = k.readInt();
17-
this._score = k.readInt();
13+
this._name = wrapper.readString();
14+
this._figure = wrapper.readString();
15+
this._gender = wrapper.readString();
16+
this._rank = wrapper.readInt();
17+
this._score = wrapper.readInt();
1818
}
1919

20-
public get name():string
20+
public get name(): string
2121
{
2222
return this._name;
2323
}
2424

25-
public get figure():string
25+
public get figure(): string
2626
{
2727
return this._figure;
2828
}
2929

30-
public get gender():string
30+
public get gender(): string
3131
{
3232
return this._gender;
3333
}
3434

35-
public get rank():number
35+
public get rank(): number
3636
{
3737
return this._rank;
3838
}
3939

40-
public get score():number
40+
public get score(): number
4141
{
4242
return this._score;
4343
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { IMessageDataWrapper, IMessageParser } from '../../../../../../api';
2+
import { CatalogPageMessageProductData } from '../../catalog';
3+
4+
export class WeeklyGameRewardParser implements IMessageParser
5+
{
6+
private _gameTypeId: number;
7+
private _products: CatalogPageMessageProductData[];
8+
private _minutesUntilNextWeek: number;
9+
private _rewardingOn: boolean;
10+
11+
public flush(): boolean
12+
{
13+
this._gameTypeId = -1;
14+
this._products = [];
15+
this._minutesUntilNextWeek = 0;
16+
this._rewardingOn = true;
17+
18+
return true;
19+
}
20+
21+
public parse(wrapper: IMessageDataWrapper): boolean
22+
{
23+
if(!wrapper) return false;
24+
25+
this._gameTypeId = wrapper.readInt();
26+
let totalProducts: number = wrapper.readInt();
27+
28+
while(totalProducts > 0)
29+
{
30+
this._products.push(new CatalogPageMessageProductData(wrapper));
31+
totalProducts--;
32+
}
33+
34+
this._minutesUntilNextWeek = wrapper.readInt();
35+
this._rewardingOn = wrapper.readBoolean();
36+
37+
return true;
38+
}
39+
40+
public get gameTypeId(): number
41+
{
42+
return this._gameTypeId;
43+
}
44+
45+
public get products(): CatalogPageMessageProductData[]
46+
{
47+
return this._products;
48+
}
49+
50+
public get minutesUntilNextWeek(): number
51+
{
52+
return this._minutesUntilNextWeek;
53+
}
54+
55+
public get rewardingOn(): boolean
56+
{
57+
return this._rewardingOn;
58+
}
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { IMessageDataWrapper, IMessageParser } from '../../../../../../api';
2+
import { GameRewardWinnerEntry } from './GameRewardWinnerEntry';
3+
4+
export class WeeklyGameRewardWinnersParser implements IMessageParser
5+
{
6+
private _gameTypeId: number;
7+
private _winners: GameRewardWinnerEntry[];
8+
9+
public flush(): boolean
10+
{
11+
this._gameTypeId = -1;
12+
this._winners = [];
13+
14+
return true;
15+
}
16+
17+
public parse(wrapper: IMessageDataWrapper): boolean
18+
{
19+
if(!wrapper) return false;
20+
21+
this._gameTypeId = wrapper.readInt();
22+
let totalWinners: number = wrapper.readInt();
23+
24+
while(totalWinners > 0)
25+
{
26+
this._winners.push(new GameRewardWinnerEntry(wrapper));
27+
totalWinners--;
28+
}
29+
30+
return true;
31+
}
32+
33+
public get gameTypeId(): number
34+
{
35+
return this._gameTypeId;
36+
}
37+
38+
public get winners(): GameRewardWinnerEntry[]
39+
{
40+
return this._winners;
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
export * from './Game2WeeklyLeaderboardParser';
12
export * from './GameRewardWinnerEntry';
23
export * from './LeaderboardEntry';
4+
export * from './WeeklyGameRewardParser';
5+
export * from './WeeklyGameRewardWinnersParser';

0 commit comments

Comments
 (0)