Skip to content

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

License

Notifications You must be signed in to change notification settings

1355873789/hamibot-starter

 
 

Repository files navigation

Welcome to hamibot-starter 👋

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

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

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

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

快速开始

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

    1. 点击右上角的 Fork 按钮将此仓库克隆到自己账户下,然后将仓库克隆到本地。

      推荐,使用这种方式可以方便的得到更新,但是一个账户只能克隆一个。

    2. 点击右上角的 Use this template 按钮以此仓库为模板在账户下创建仓库。

      如果你的账号里已经有一个克隆的仓库,那就只能选择这种方法。但是使用这种方式没法方便的通过合并上游仓库的方式来更新。

    3. 如果你不准备使用 Git 作为版本管理工具,也可以从 这里 下载压缩包。

  2. 使用指令安装依赖:

    npm install

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

  3. src 文件夹下编写代码,程序入口为 src/index.ts

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

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

    2. 使用命令打包项目:

      npm run build
    3. 在 VS Code 资源管理器的 NPM 脚本窗口中选则对应的配置运行。

      如果没有找到 NPM 窗口可以在命令窗口中查找并选择 焦点在 NPM 脚本 视图上

  5. 在控制台上传打包后的文件: 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

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.1%
  • JavaScript 4.9%