UNPKG

@develable/rutapbot-d20

Version:

[KR] Rutap Bot will makes your discord life better!

73 lines (65 loc) 2.53 kB
import * as ls from './localStorage'; import * as DS from './../settings/DEFAULT_SETTING'; export enum KeyType { once, speed, every } export class Key { public KeyCode: string public KeyCount: number public IssuerID: string public KeyType: KeyType constructor(IssuerID: string, Keycode: string, Keytype: KeyType = KeyType.every, KeyCount: number = 1) { this.KeyCode = Keycode; this.KeyType = Keytype; if (this.KeyType == KeyType.once || this.KeyType == KeyType.every) this.KeyCount = 1; else this.KeyCount = KeyCount; this.IssuerID = IssuerID; } } export const isKey = function (key: string): boolean { let keyType: RegExp = new RegExp(/[A-Z0-9]{5}(-)[A-Z0-9]{5}(-)[A-Z0-9]{5}(-)[A-Z0-9]{5}/); return keyType.test(key); } export const isKeyVaild = function (key: string): boolean { if (!isKey(key)) return false; if (DS.activationKeyUse) return true; let keyList = ls.get('activateKey'); if (Object.keys(keyList).indexOf(key) == -1) return false; else return true; } export const generateKey = function (keyInfo: Key): boolean /* 생성 성공여부 리턴 */ { if (!isKeyVaild(keyInfo.KeyCode)) { let KeyList = ls.get('activateKey'); KeyList[keyInfo.KeyCode] = { Issuer: keyInfo.IssuerID, type: keyInfo.KeyType, count: keyInfo.KeyCount, usingGuild : [] } ls.set('activateKey', KeyList); return true; } else return false; } export const disableKey = function (key: string): boolean { if (!isKeyVaild(key)) return false; let KeyList = ls.get('activateKey'); KeyList[key].count = 0; ls.set('activateKey', KeyList); return true; } export const getKeyLists = function (getOnlyVaildKey/* 사용 가능한 키만 받을지 여부 */: boolean = false): Array<string> { let Keys = ls.get('activateKey'); let KeyList: Array<string> = []; for (let key of Object.keys(Keys)) { if (Keys[key].count == 0 && getOnlyVaildKey == true) KeyList[KeyList.length] = key; else KeyList[KeyList.length] = key; } return KeyList; } export const viewKeyInfo = function (key: string): null | Key { // 얘는 키 갖다가 정보 조회하는 놈임 let KeyList = ls.get('actiavteKey'); if (!isKeyVaild(key)) return null; else return new Key(key, KeyList[key].type, KeyList[key].count, KeyList[key].Issuer); }