mirror of
https://github.com/misskey-dev/misskey.git
synced 2024-12-24 00:39:32 +09:00
refactor(reversi): refactoring of reversi backend
This commit is contained in:
parent
4f95b8d9d2
commit
a431dde537
@ -104,23 +104,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit {
|
|||||||
if (invitations.includes(targetUser.id)) {
|
if (invitations.includes(targetUser.id)) {
|
||||||
await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, targetUser.id);
|
await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, targetUser.id);
|
||||||
|
|
||||||
const game = await this.reversiGamesRepository.insert({
|
const game = await this.matched(targetUser.id, me.id);
|
||||||
id: this.idService.gen(),
|
|
||||||
user1Id: targetUser.id,
|
|
||||||
user2Id: me.id,
|
|
||||||
user1Ready: false,
|
|
||||||
user2Ready: false,
|
|
||||||
isStarted: false,
|
|
||||||
isEnded: false,
|
|
||||||
logs: [],
|
|
||||||
map: Reversi.maps.eighteight.data,
|
|
||||||
bw: 'random',
|
|
||||||
isLlotheo: false,
|
|
||||||
}).then(x => this.reversiGamesRepository.findOneByOrFail(x.identifiers[0]));
|
|
||||||
this.cacheGame(game);
|
|
||||||
|
|
||||||
const packed = await this.reversiGameEntityService.packDetail(game, { id: targetUser.id });
|
|
||||||
this.globalEventService.publishReversiStream(targetUser.id, 'matched', { game: packed });
|
|
||||||
|
|
||||||
return game;
|
return game;
|
||||||
} else {
|
} else {
|
||||||
@ -147,23 +131,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit {
|
|||||||
const invitorId = invitations[Math.floor(Math.random() * invitations.length)];
|
const invitorId = invitations[Math.floor(Math.random() * invitations.length)];
|
||||||
await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, invitorId);
|
await this.redisClient.zrem(`reversi:matchSpecific:${me.id}`, invitorId);
|
||||||
|
|
||||||
const game = await this.reversiGamesRepository.insert({
|
const game = await this.matched(invitorId, me.id);
|
||||||
id: this.idService.gen(),
|
|
||||||
user1Id: invitorId,
|
|
||||||
user2Id: me.id,
|
|
||||||
user1Ready: false,
|
|
||||||
user2Ready: false,
|
|
||||||
isStarted: false,
|
|
||||||
isEnded: false,
|
|
||||||
logs: [],
|
|
||||||
map: Reversi.maps.eighteight.data,
|
|
||||||
bw: 'random',
|
|
||||||
isLlotheo: false,
|
|
||||||
}).then(x => this.reversiGamesRepository.findOneByOrFail(x.identifiers[0]));
|
|
||||||
this.cacheGame(game);
|
|
||||||
|
|
||||||
const packed = await this.reversiGameEntityService.packDetail(game, { id: invitorId });
|
|
||||||
this.globalEventService.publishReversiStream(invitorId, 'matched', { game: packed });
|
|
||||||
|
|
||||||
return game;
|
return game;
|
||||||
}
|
}
|
||||||
@ -183,23 +151,7 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit {
|
|||||||
|
|
||||||
await this.redisClient.zrem('reversi:matchAny', me.id, matchedUserId);
|
await this.redisClient.zrem('reversi:matchAny', me.id, matchedUserId);
|
||||||
|
|
||||||
const game = await this.reversiGamesRepository.insert({
|
const game = await this.matched(matchedUserId, me.id);
|
||||||
id: this.idService.gen(),
|
|
||||||
user1Id: matchedUserId,
|
|
||||||
user2Id: me.id,
|
|
||||||
user1Ready: false,
|
|
||||||
user2Ready: false,
|
|
||||||
isStarted: false,
|
|
||||||
isEnded: false,
|
|
||||||
logs: [],
|
|
||||||
map: Reversi.maps.eighteight.data,
|
|
||||||
bw: 'random',
|
|
||||||
isLlotheo: false,
|
|
||||||
}).then(x => this.reversiGamesRepository.findOneByOrFail(x.identifiers[0]));
|
|
||||||
this.cacheGame(game);
|
|
||||||
|
|
||||||
const packed = await this.reversiGameEntityService.packDetail(game, { id: matchedUserId });
|
|
||||||
this.globalEventService.publishReversiStream(matchedUserId, 'matched', { game: packed });
|
|
||||||
|
|
||||||
return game;
|
return game;
|
||||||
} else {
|
} else {
|
||||||
@ -268,6 +220,29 @@ export class ReversiService implements OnApplicationShutdown, OnModuleInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@bindThis
|
||||||
|
private async matched(parentId: MiUser['id'], childId: MiUser['id']): Promise<MiReversiGame> {
|
||||||
|
const game = await this.reversiGamesRepository.insert({
|
||||||
|
id: this.idService.gen(),
|
||||||
|
user1Id: parentId,
|
||||||
|
user2Id: childId,
|
||||||
|
user1Ready: false,
|
||||||
|
user2Ready: false,
|
||||||
|
isStarted: false,
|
||||||
|
isEnded: false,
|
||||||
|
logs: [],
|
||||||
|
map: Reversi.maps.eighteight.data,
|
||||||
|
bw: 'random',
|
||||||
|
isLlotheo: false,
|
||||||
|
}).then(x => this.reversiGamesRepository.findOneByOrFail(x.identifiers[0]));
|
||||||
|
this.cacheGame(game);
|
||||||
|
|
||||||
|
const packed = await this.reversiGameEntityService.packDetail(game, { id: parentId });
|
||||||
|
this.globalEventService.publishReversiStream(parentId, 'matched', { game: packed });
|
||||||
|
|
||||||
|
return game;
|
||||||
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
private async startGame(game: MiReversiGame) {
|
private async startGame(game: MiReversiGame) {
|
||||||
let bw: number;
|
let bw: number;
|
||||||
|
Loading…
Reference in New Issue
Block a user