37 lines
No EOL
1.4 KiB
TypeScript
37 lines
No EOL
1.4 KiB
TypeScript
import {Logger} from "@nestjs/common";
|
|
import {ClientProxy} from "@nestjs/microservices";
|
|
|
|
export class TGHandlers {
|
|
static async handleCallback(ctx:any, logger: Logger, gameService: ClientProxy) {
|
|
let data = undefined;
|
|
try {
|
|
data = JSON.parse(ctx.update.callback_query.data);
|
|
} catch(error) {
|
|
logger.verbose(`[onInlineQuery]: can't parse json callback, checking content for other payload`);
|
|
}
|
|
if(data) {
|
|
gameService.emit({ cmd: 'ApplyDebuff'}, { ...ctx.callbackQuery, from: ctx.from.id });
|
|
await ctx.editMessageReplyMarkup(undefined);
|
|
await ctx.editMessageText(ctx.update.callback_query.data);
|
|
}
|
|
if(ctx.update.callback_query.message.text.indexOf('Внимание') !== -1) {
|
|
const answer =ctx.update.callback_query.data;
|
|
gameService.emit({ cmd: "QuestionAnswer"}, { user: ctx.from.id, answer: answer, name: ctx.from.first_name });
|
|
try {
|
|
await ctx.editMessageReplyMarkup(undefined);
|
|
} catch (err) {
|
|
|
|
}
|
|
|
|
await ctx.editMessageText(answer);
|
|
} else if(ctx.update.callback_query.data.startsWith('card/')) {
|
|
const cardtoplay = ctx.update.callback_query.data.substring('card/'.length);
|
|
gameService.emit({cmd: 'CardPlayed'}, {text: cardtoplay, user: ctx.update.callback_query.from.id})
|
|
await ctx.editMessageReplyMarkup(undefined);
|
|
await ctx.editMessageText("карта выбрана");
|
|
} else
|
|
{
|
|
console.log(ctx.update);
|
|
}
|
|
}
|
|
} |