51v / Hamibot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to hamibot-starter 👋

Version GitHub package.json version License: MPL--2.0

一个用来快速开始编写 Hamibot 脚本的模板,使用 TypeScript 编写。

通过声明文件提供 Hamibot 绝大部分函数的代码提示、类型检查和文档,帮你减少键入次数和查询官方文档的时间。提供常用的代码片段,直接调用可以辅助更快完成开发,并让你能专注于核心功能。

欢迎各位大佬帮我一起完善这个项目!

安装依赖

因为使用了 npm 来管理依赖,在安装之前请确保安装过 node.js

npm install

快速开始

  1. 下载本仓库,有两种方式可选:

    1. 点击 Use this template 按钮以此仓库为模板创建一个自己的仓库,然后将仓库克隆到本地。
    2. 如果你不准备使用 Git 作为版本管理工具,可以直接通过 Code -> Download ZIP 下载压缩包。
  2. src 文件夹下编写代码,程序入口为 src/index.ts

  3. 完成编写后打包项目,有两种方式可选:

    1. 使用 VSCode 快捷键 ctrl + shift + b 打开任务菜单,然后选择 npm build 打包。

    2. 使用命令打包项目:

      npm run build
  4. 在控制台上传打包后的文件: dist/index.js

使用预制函数

所有预制库都存放在 src/lib 文件夹中。

详细使用方式和文档见 预制库说明

导出设置

  1. buildConfig 文件夹下添加新的配置文件,例如: webpack.MyBuildConfig.js

  2. 编写独立的构建设置,可以复制 buildConfig/webpack.dev.js 中的内容然后修改。

  3. package.json 文件中的 scripts 字段中添加新的记录,例如:

    "scripts": {
        "build": "webpack --config ./buildConfig/webpack.dev.js",
        "MyBuildConfig": "webpack --config ./buildConfig/webpack.MyBuildConfig.js"
    },
  4. 在打包项目时选择对应的配置。

编写 UI

在编写 UI 的时候需要使用 XML 字符串,不要使用 tsx 文件。

let widget = floaty.window(
    "<frame gravity='center' bg='#FF0000'>\
        <text id='text'>悬浮文字</text>\
    </frame>"
);
setTimeout(() => {
    widget.close();
}, 5000);

我目前找到的编译 tsx 的方法都会打包成 React 对象,如果有了解的大大拜托帮帮我蟹蟹。

注意事项

  1. 如果有用到暂时没有声明过的模块,可以使用 TS 的忽略语法:

    注意:忽略会跳过所有检查,除了语法错误。使用时会有风险,请在确保肯定不会出现问题后再使用。

    // 多行忽略(取消两个标记间的代码检查。)
    // 可以不使用结束标记,即忽略到文件结尾。
    // 注意:必须在文件顶部使用。
    // @ts-nocheck
    canvas.drawLine(0, 0, 1080, 1920, paint);
    
    // @ts-check
    
    // 单行忽略(取消下一行的代码检查。)
    // @ts-ignore
    canvas.drawLine(0, 0, 1080, 1920, paint);

TODO List

  • 将 hamibot 的类型声明单独发布到 DefinitelyTyped
  • 添加声明文件 [24/26]
    • Util
    • Canvans
  • 使用 Eslint 在提交前统一代码风格
  • 检查泛型注释
  • 检查回调函数注释
  • 检查注释中的类和方法是否使用行内代码格式
  • 检查注释中的示例代码是否都能够运行
  • 统一函数类型(Function、function)

作者

👤 BATU1579

支持

如果有帮到你的话,帮我点颗小星星叭~ ⭐️


This README was generated with ❤️ by readme-md-generator

About

License:Mozilla Public License 2.0


Languages

Language:TypeScript 91.4%Language:JavaScript 8.6%