diff --git a/doc/MCBBS.MD b/doc/MCBBS.MD index 31bc7131..4d686311 100644 --- a/doc/MCBBS.MD +++ b/doc/MCBBS.MD @@ -1,4 +1,14 @@ -为了方便阅读 我对帖子进行了分页 请点击目录阅读! +- 构建状态 [![Build Status](https://ci.yumc.pw/job/Minecraft/job/MiaoScript/badge/icon?style=flat-square)](https://ci.yumc.pw/job/Minecraft/job/MiaoScript/) +- 当前版本 ![Build Status](https://ci.yumc.pw/job/Minecraft/job/MiaoScript/badge/icon?style=flat-square&subject=version&status=0.1.0beta&color=darkturquoise) +- 下载地址 [![Build Status](https://ci.yumc.pw/job/Minecraft/job/MiaoScript/badge/icon?style=flat-square&subject=download&status=MiaoScript&color=darkgreen)](http://w.yumc.pw/free.html#MiaoScript-download) +- 为了方便阅读 我对帖子进行了分页 请点击目录阅读! + +### 更新日志 + +- 2019-09-25 + - 完善 `Sponge` 类型自动补全 +- 2019-09-24 + - 完善 `Bukkit` 类型自动补全 ## 插件简介 @@ -49,6 +59,12 @@ - 核心全部由 JS 编写 - 兼容 `CommonJS` 规范 - 实时重载 +- 2019年9月14号 emm 咸鱼2年之后 + - TypeScript 重构版本横空出世 + - 只保留 基础Java启动类 三个环境初始化js + - 完整的服务端Java类自动补全 + - 全新的 IOC容器 注入功能 + - 注解式 注册命令 注册事件 ### 进展 @@ -79,6 +95,7 @@ ├─nashorn Nashorn 的类型定义 ├─bukkit BukkitAPI内部实现 ├─sponge SpongeAPI内部实现 + ├─ployfill JS环境的相关环境补全 ├─plugin 插件管理器 └─plugins 这里当然是插件啦 ├─bukkit 只兼容Bukkit的插件 @@ -95,7 +112,7 @@ Github: https://github.com/circlecloud/ms 如果只是简单的开发 你可用记事本 (但是没有任何补全和错误提示) -### 开发环境准备(针对高级用户)) +### 开发环境准备(针对高级用户) - 安装 `NodeJS` 和 `Yarn` - 拉取代码 @@ -117,6 +134,9 @@ Github: https://github.com/circlecloud/ms 先来一个 `HelloWorld.ts` 插件示范! ```ts +/// +/// + import { plugin, interfaces, cmd, listener, tab } from '@ms/plugin' @plugin({ name: 'HelloWorld', version: '1.0.0', author: 'MiaoWoo', source: __filename }) @@ -154,7 +174,7 @@ export class HelloWorld extends interfaces.Plugin { @cmd() hello(sender: any, command: string, args: string[]) { this.logger.log(sender, command, args); - this.logger.sender(sender, JSON.stringify({ command, args })); + sender.sendMessage(JSON.stringify({ command, ...args })) } @tab() @@ -163,15 +183,16 @@ export class HelloWorld extends interfaces.Plugin { } @listener({ servertype: 'bukkit' }) - playerjoin(event: any) { - this.logger.console(`§aBukkit PlayerJoinEvent: §b${event.player.name}`) - setTimeout(() => this.logger.sender(event.player, `§a欢迎来到 §bMiaoScript §a的世界!`), 10); + playerjoin(event: org.bukkit.event.player.PlayerJoinEvent) { + let plyaer = event.getPlayer(); + this.logger.console(`§aBukkit PlayerJoinEvent: §b${plyaer.getName()}`) + setTimeout(() => this.logger.sender(plyaer, `§a欢迎来到 §bMiaoScript §a的世界!`), 10); } @listener({ servertype: 'sponge' }) - clientconnectionevent$join(event: any) { - this.logger.console(`§aSponge ClientConnectionEvent.Join: §b${event.targetEntity.name}`) - setTimeout(() => this.logger.sender(event.targetEntity, `§a欢迎来到 §bMiaoScript §a的世界!`), 10); + clientconnectionevent$join(event: org.spongepowered.api.event.network.ClientConnectionEvent.Join) { + this.logger.console(`§aSponge ClientConnectionEvent.Join: §b${event.getTargetEntity().getName()}`) + setTimeout(() => this.logger.sender(event.getTargetEntity(), `§a欢迎来到 §bMiaoScript §a的世界!`), 10); } } diff --git a/package.json b/package.json index 7adc1d1a..60c56b43 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "clean": "npx lerna run clean", "watch": "npx lerna run watch --parallel", - "build": "npx lerna run build", + "build": "npx lerna run build --scope='@ms/!(plugins)'", "build:plugins": "npx lerna run build --scope=@ms/plugins", "lp": "npx lerna publish" }, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index a2a1d5e5..48634d30 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -2,6 +2,7 @@ import '@ms/nashorn' import { plugin, server, task } from '@ms/api' import { PluginManagerImpl } from '@ms/plugin' +import { XMLHttpRequest as xhr } from '@ms/ployfill' import { DefaultContainer as container, injectable, inject, postConstruct } from '@ms/container' let startTime = new Date().getTime(); @@ -29,15 +30,16 @@ class MiaoScriptCore { } loadServerConsole() { - //@ts-ignore - global.console = new this.Console(); + // @ts-ignore + console = new this.Console(); + XMLHttpRequest = xhr; } loadTaskFunction() { //@ts-ignore - global.setTimeout = (func: Function, tick: number) => this.taskManager.create(func).later(tick).run() + global.setTimeout = (func: Function, tick: number) => this.taskManager.create(func).later(tick).submit() //@ts-ignore - global.setInterval = (func: Function, tick: number) => this.taskManager.create(func).timer(tick).run() + global.setInterval = (func: Function, tick: number) => this.taskManager.create(func).timer(tick).submit() } loadPlugins() { diff --git a/tsconfig.json b/tsconfig.json index b086a6d8..dc916f7f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,7 @@ "strictNullChecks": false, "sourceMap": false, "declaration": true, + "declarationMap": true, "noImplicitAny": false, "downlevelIteration": true, "allowUnreachableCode": true,