Commit 8d685739 authored by nanahira's avatar nanahira

add more fail conditions

parent 5dc0939a
Pipeline #1998 passed with stages
in 5 minutes and 53 seconds
...@@ -4,7 +4,10 @@ import { delay } from "q"; ...@@ -4,7 +4,10 @@ import { delay } from "q";
const messageWaitForRegister = '请输入“/register <密码> <再输入一次以确定密码>”以注册'; const messageWaitForRegister = '请输入“/register <密码> <再输入一次以确定密码>”以注册';
const messageWaitForLogin = '请输入“/login <密码>”以登录'; const messageWaitForLogin = '请输入“/login <密码>”以登录';
const messageRegisterFailed = '当前IP注册量达到上限,如果是校园网玩家请联系服主解决!'; const messageRegisterFailed = [
'当前IP注册量达到上限,如果是校园网玩家请联系服主解决!',
'此用户名还未注册过'
];
const messageLoggedIn = '已成功登录!'; const messageLoggedIn = '已成功登录!';
function randomString(len: number) { function randomString(len: number) {
...@@ -21,15 +24,17 @@ function getChatMessageTexts(rawMessage: ChatMessage): string[] { ...@@ -21,15 +24,17 @@ function getChatMessageTexts(rawMessage: ChatMessage): string[] {
type MessageQueueMap = Map<string, (message: string) => void>; type MessageQueueMap = Map<string, (message: string) => void>;
function waitForMessage(messageWaitQueue: MessageQueueMap, messageToResolve: string, messageToReject?: string): Promise<string> { function waitForMessage(messageWaitQueue: MessageQueueMap, messageToResolve: string, messagesToReject?: string[]): Promise<string> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
messageWaitQueue.set(messageToResolve, (message: string) => { messageWaitQueue.set(messageToResolve, (message: string) => {
resolve(message); resolve(message);
}); });
if (messageToReject) { if (messagesToReject) {
messageWaitQueue.set(messageToReject, (message: string) => { for (let messageToReject of messagesToReject) {
reject(message); messageWaitQueue.set(messageToReject, (message: string) => {
}); reject(message);
});
}
} }
}); });
} }
...@@ -65,7 +70,7 @@ async function runOnce(targetUser: string) { ...@@ -65,7 +70,7 @@ async function runOnce(targetUser: string) {
//await delay(1000); //await delay(1000);
try { try {
console.log(`Waiting for connect.`); console.log(`Waiting for connect.`);
await waitForMessage(messageWaitQueue, messageWaitForRegister, messageWaitForLogin); await waitForMessage(messageWaitQueue, messageWaitForRegister, [messageWaitForLogin]);
console.log(`Registering.`); console.log(`Registering.`);
bot.chat(`/reg ${password} ${password}`); bot.chat(`/reg ${password} ${password}`);
await waitForMessage(messageWaitQueue, messageLoggedIn, messageRegisterFailed); await waitForMessage(messageWaitQueue, messageLoggedIn, messageRegisterFailed);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment