diff --git a/src/ai.ts b/src/ai.ts index d9bc9a1..adc1043 100644 --- a/src/ai.ts +++ b/src/ai.ts @@ -502,6 +502,7 @@ export default class 藍 { const rec = this.getMeta(); for (const [k, v] of Object.entries(meta)) { + // @ts-ignore rec[k] = v; } diff --git a/src/modules/chart/index.ts b/src/modules/chart/index.ts index ead3721..daecaf1 100644 --- a/src/modules/chart/index.ts +++ b/src/modules/chart/index.ts @@ -5,6 +5,7 @@ import Message from '@/message'; import { renderChart } from './render-chart'; import { items } from '@/vocabulary'; import config from '@/config'; +type chartType = 'userNotes'| 'notes' | 'followers' | 'random'; export default class extends Module { public readonly name = 'chart'; @@ -42,7 +43,7 @@ export default class extends Module { } @autobind - private async genChart(type, params?): Promise { + private async genChart(type: chartType, params?: any): Promise { this.log('Chart data fetching...'); let chart; @@ -142,7 +143,7 @@ export default class extends Module { this.log('Chart requested'); } - let type = 'random'; + let type: chartType = 'random'; if (msg.includes(['フォロワー'])) type = 'followers'; if (msg.includes(['投稿'])) type = 'userNotes'; diff --git a/src/modules/color/index.ts b/src/modules/color/index.ts index 3cd0f2b..67dc85c 100644 --- a/src/modules/color/index.ts +++ b/src/modules/color/index.ts @@ -38,7 +38,7 @@ export default class extends Module { } @autobind - private async getColorSampleFile(r,g,b): Promise { + private async getColorSampleFile(r: number,g: number,b: number): Promise { const colorSample = generateColorSample(r,g,b); this.log('Image uploading...'); diff --git a/src/modules/color/render.ts b/src/modules/color/render.ts index e4449d0..77fb482 100644 --- a/src/modules/color/render.ts +++ b/src/modules/color/render.ts @@ -2,7 +2,7 @@ import { createCanvas } from 'canvas'; const imageSize = 1; //px -export function generateColorSample(r: string, g: string, b: string) { +export function generateColorSample(r: number, g: number, b: number): Buffer { const canvas = createCanvas(imageSize, imageSize); const ctx = canvas.getContext('2d'); ctx.antialias = 'none'; @@ -14,4 +14,4 @@ export function generateColorSample(r: string, g: string, b: string) { // canvas.toBuffer()をreturn return canvas.toBuffer(); -} \ No newline at end of file +} diff --git a/src/modules/keyword/index.ts b/src/modules/keyword/index.ts index 7eeac02..56991fa 100644 --- a/src/modules/keyword/index.ts +++ b/src/modules/keyword/index.ts @@ -4,6 +4,7 @@ import Module from '@/module'; import config from '@/config'; import serifs from '@/serifs'; import { mecab } from './mecab'; +import { Note } from '@/misskey/note'; function kanaToHira(str: string) { return str.replace(/[\u30a1-\u30f6]/g, match => { @@ -39,7 +40,7 @@ export default class extends Module { limit: 30 }); - const interestedNotes = tl.filter(note => + const interestedNotes = tl.filter((note: Note) => note.userId !== this.ai.account.id && note.text != null && note.cw == null); diff --git a/src/modules/maze/gen-maze.ts b/src/modules/maze/gen-maze.ts index a14e4ee..98a8796 100644 --- a/src/modules/maze/gen-maze.ts +++ b/src/modules/maze/gen-maze.ts @@ -1,5 +1,6 @@ import * as gen from 'random-seed'; import { CellType } from './maze'; +import {mazeSize} from './index' const cellVariants = { void: { @@ -77,20 +78,23 @@ const cellVariants = { type Dir = 'left' | 'right' | 'top' | 'bottom'; -export function genMaze(seed, complexity?) { +export function genMaze(seed: string, complexity: mazeSize): CellType[][] { const rand = gen.create(seed); - let mazeSize; - if (complexity) { - if (complexity === 'veryEasy') mazeSize = 3 + rand(3); - if (complexity === 'easy') mazeSize = 8 + rand(8); - if (complexity === 'hard') mazeSize = 22 + rand(13); - if (complexity === 'veryHard') mazeSize = 40 + rand(20); - if (complexity === 'ai') mazeSize = 100; - } else { - mazeSize = 11 + rand(21); + function decisionSize(complexity: mazeSize): number { + if (complexity) { + if (complexity === 'veryEasy') return 3 + rand(3); + if (complexity === 'easy') return 8 + rand(8); + if (complexity === 'hard') return 22 + rand(13); + if (complexity === 'veryHard') return 40 + rand(20); + if (complexity === 'ai') return 100; + } + return 11 + rand(21); } + let mazeSize: number = decisionSize(complexity); + + const donut = rand(3) === 0; const donutWidth = 1 + Math.floor(mazeSize / 8) + rand(Math.floor(mazeSize / 4)); diff --git a/src/modules/maze/index.ts b/src/modules/maze/index.ts index 8311e94..5c64585 100644 --- a/src/modules/maze/index.ts +++ b/src/modules/maze/index.ts @@ -5,6 +5,8 @@ import { genMaze } from './gen-maze'; import { renderMaze } from './render-maze'; import Message from '@/message'; +export type mazeSize = 'veryEasy' | 'easy' | 'hard' | 'veryHard' | 'ai' | undefined; + export default class extends Module { public readonly name = 'maze'; @@ -39,7 +41,7 @@ export default class extends Module { } @autobind - private async genMazeFile(seed, size?): Promise { + private async genMazeFile(seed: string, size?: mazeSize): Promise { this.log('Maze generating...'); const maze = genMaze(seed, size); @@ -58,7 +60,7 @@ export default class extends Module { @autobind private async mentionHook(msg: Message) { if (msg.includes(['迷路'])) { - let size: string | null = null; + let size: mazeSize = void 0; if (msg.includes(['接待'])) size = 'veryEasy'; if (msg.includes(['簡単', 'かんたん', '易しい', 'やさしい', '小さい', 'ちいさい'])) size = 'easy'; if (msg.includes(['難しい', 'むずかしい', '複雑な', '大きい', 'おおきい'])) size = 'hard'; @@ -66,7 +68,7 @@ export default class extends Module { if (msg.includes(['藍']) && msg.includes(['本気'])) size = 'ai'; this.log('Maze requested'); setTimeout(async () => { - const file = await this.genMazeFile(Date.now(), size); + const file = await this.genMazeFile(Date.now().toString(), size); this.log('Replying...'); msg.reply(serifs.maze.foryou, { file }); }, 3000); diff --git a/src/modules/maze/render-maze.ts b/src/modules/maze/render-maze.ts index 6f4f5da..4ea8795 100644 --- a/src/modules/maze/render-maze.ts +++ b/src/modules/maze/render-maze.ts @@ -1,5 +1,5 @@ import * as gen from 'random-seed'; -import { createCanvas } from 'canvas'; +import { createCanvas, NodeCanvasRenderingContext2D } from 'canvas'; import { CellType } from './maze'; import { themes } from './themes'; @@ -8,7 +8,7 @@ const imageSize = 4096; // px const margin = 96 * 4; const mazeAreaSize = imageSize - (margin * 2); -export function renderMaze(seed, maze: CellType[][]) { +export function renderMaze(seed: string, maze: CellType[][]) { const rand = gen.create(seed); const mazeSize = maze.length; @@ -27,7 +27,7 @@ export function renderMaze(seed, maze: CellType[][]) { ctx.fillRect(margin / 2, margin / 2, imageSize - ((margin / 2) * 2), imageSize - ((margin / 2) * 2)); // Draw - function drawCell(ctx, x, y, size, left, right, top, bottom, mark) { + function drawCell(ctx: NodeCanvasRenderingContext2D, x: number, y: number, size: number, left: boolean, right: boolean, top: boolean, bottom: boolean, mark: boolean) { const wallThickness = size / 6; const margin = size / 6; const markerMargin = size / 3; @@ -60,7 +60,7 @@ export function renderMaze(seed, maze: CellType[][]) { ctx.lineWidth = wallThickness; ctx.lineCap = 'square'; - function line(ax, ay, bx, by) { + function line(ax: number, ay: number, bx: number, by: number) { ctx.beginPath(); ctx.lineTo(x + ax, y + ay); ctx.lineTo(x + bx, y + by); diff --git a/src/modules/menu/index.ts b/src/modules/menu/index.ts index fc7dd62..d6d7554 100644 --- a/src/modules/menu/index.ts +++ b/src/modules/menu/index.ts @@ -14,7 +14,7 @@ export default class extends Module { } @autobind - private async mentionHook(msg: Message) { + private async mentionHook(msg: Message): Promise { if (msg.text && msg.text.includes('ごはん')) { // 1~2535111の適当な数字を取得 const random_number = Math.floor(Math.random() * 2535111) + 1; @@ -35,8 +35,7 @@ export default class extends Module { }); return true; } - } else { - return false; } + return false; } } diff --git a/src/modules/reversi/back.ts b/src/modules/reversi/back.ts index b7b9d3d..671d8b8 100644 --- a/src/modules/reversi/back.ts +++ b/src/modules/reversi/back.ts @@ -14,7 +14,7 @@ import config from '@/config'; import serifs from '@/serifs'; import { User } from '@/misskey/user'; -function getUserName(user) { +function getUserName(user: User) { return user.name || user.username; } @@ -45,7 +45,7 @@ class Session { /** * 最大のターン数 */ - private maxTurn; + private maxTurn: number; /** * 現在のターン数 @@ -137,7 +137,7 @@ class Session { if (pix == 'null') return; const [x, y] = this.o.transformPosToXy(i); - const get = (x, y) => { + const get = (x: number, y: number) => { if (x < 0 || y < 0 || x >= this.o.mapWidth || y >= this.o.mapHeight) return 'null'; return this.o.mapDataGet(this.o.transformXyToPos(x, y)); };