@@ -42,15 +42,21 @@
 | 
			
		||||
 | 
			
		||||
### 基础准备工作
 | 
			
		||||
- QQ搜索小程序 `圈云盒子` 并登录
 | 
			
		||||
- 申请内测服务器账号 个人中心 => 配置面板 => 圈云盒子客服群 加群申请
 | 
			
		||||
- 申请内测服务器账号
 | 
			
		||||
  - 个人中心 => 配置面板 => 圈云盒子客服群
 | 
			
		||||
  - 打开群详情 加群
 | 
			
		||||
 | 
			
		||||
### 接下来就是赚钱的操作
 | 
			
		||||
 | 
			
		||||
### 服务器准备工作
 | 
			
		||||
- 先安装 `MiaoScript` [站内地址]()
 | 
			
		||||
- 打开 [圈云盒子管理后台](https://reward.yumc.pw)
 | 
			
		||||
- 先安装 `MiaoScript` [站内地址](https://www.mcbbs.net/thread-774401-1-1.html)
 | 
			
		||||
  - 可以通过 Yum 快速安装 `/yum install MiaoScript`
 | 
			
		||||
- 等待 MiaoScript 引擎启动完成(首次启动可能需要10-20秒 依赖于您的网络环境)
 | 
			
		||||
- 执行 `/mspm install MiaoReward`
 | 
			
		||||
 | 
			
		||||
### 绑定服务器
 | 
			
		||||
- 由于当前框架存在BUG 请先执行 `/mspm reload MiaoReward` 生成配置文件
 | 
			
		||||
- 执行 `/mrd bind server`
 | 
			
		||||
- 使用QQ扫码
 | 
			
		||||
- 选择需要绑定的服务器
 | 
			
		||||
@@ -59,7 +65,11 @@
 | 
			
		||||
- 执行 `/mrd ratio 0.001` (最低为 1:0.0001)
 | 
			
		||||
- 执行兑换比例确认指令
 | 
			
		||||
- 执行 `/mrd server` 查看服务器信息
 | 
			
		||||
- 如需绑定多台 可以直接复制绑定之后的 `MiaoScript/plugins/MiaoReward/config.yml` 文件到多台服务器上 然后 `/mrd reload` 重载插件
 | 
			
		||||
- 如果群组服需要绑定多台服务器(前提是每个服务器都有玩家在)
 | 
			
		||||
  - 执行 `/gmspm install MiaoReward` 批量安装
 | 
			
		||||
  - 可以直接复制绑定之后的 `MiaoScript/plugins/MiaoReward/config.yml`
 | 
			
		||||
  - 黏贴配置文件到所有需要绑定的服务器上
 | 
			
		||||
  - 然后 `/gmspm reload MiaoReward` 批量重载插件
 | 
			
		||||
 | 
			
		||||
### QQ群配置
 | 
			
		||||
- 打开小程序
 | 
			
		||||
@@ -72,6 +82,7 @@
 | 
			
		||||
- 执行 `/mrd bind`
 | 
			
		||||
- 使用QQ扫码
 | 
			
		||||
- 完成绑定
 | 
			
		||||
- 执行 `/mrd query` 查询信息
 | 
			
		||||
 | 
			
		||||
## 使用说明
 | 
			
		||||
- 玩家可以通过下列方式获取喵币
 | 
			
		||||
@@ -82,13 +93,21 @@
 | 
			
		||||
- 腐竹可以在平台将喵币兑换成RMB(兑换比例请加群联系客服详谈)
 | 
			
		||||
- 登录小程序后 个人中心 => 配置面板 => 圈云盒子客服群
 | 
			
		||||
 | 
			
		||||
## PAPI兼容
 | 
			
		||||
- 目前已经兼容 PAPI 变量
 | 
			
		||||
  - `%mrd_balance%` 玩家喵币
 | 
			
		||||
  - `%mrd_sign%` 玩家签到(*/1)
 | 
			
		||||
  - `%mrd_video%` 玩家视频观看次数(*/300)
 | 
			
		||||
  - `%mrd_box%` 玩家盒子观看次数(*/300)
 | 
			
		||||
- 如果玩家变量没有及时更新 执行 `/mrd query` 或 `重新登录游戏` 即可
 | 
			
		||||
 | 
			
		||||
## 配置文件
 | 
			
		||||
 | 
			
		||||
``` yaml
 | 
			
		||||
```yml
 | 
			
		||||
# 服务器ID
 | 
			
		||||
serverId: '16'
 | 
			
		||||
serverId: 16
 | 
			
		||||
# 服务器Token
 | 
			
		||||
serverToken: d50d3f6e-2a59-460a-2b29-82b66c4bbf52
 | 
			
		||||
serverToken: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
 | 
			
		||||
# 兑换指令
 | 
			
		||||
drawCommand: 'p give %player_name% %amount%'
 | 
			
		||||
# 冷却时间
 | 
			
		||||
@@ -97,6 +116,10 @@ drawCooldown: 300
 | 
			
		||||
prefix: '§6[§b广告系统§6]§r'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 插件源码
 | 
			
		||||
 | 
			
		||||
- [MiaoScript包管理中心](http://ms.yumc.pw/api/plugin/download/name/MiaoReward)
 | 
			
		||||
 | 
			
		||||
## Roadmap
 | 
			
		||||
- 绑定服务器(已完成)
 | 
			
		||||
- 绑定玩家(已完成)
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -47,6 +47,7 @@ let langMap = {
 | 
			
		||||
    'download.start': '§6开始下载插件: §b{name} §6版本 §3{version}',
 | 
			
		||||
    'download.url': '§6插件下载地址: §b{url}',
 | 
			
		||||
    'download.finish': '§6插件 §b{name} §6版本 §3{version} §a下载完毕 开始加载 ...',
 | 
			
		||||
    'install.already': '§6插件 §b{name} §6版本 §3{version} §c已安装在服务器 §3更新请用 update 命令!',
 | 
			
		||||
    'install.finish': '§6插件 §b{name} §6版本 §3{version} §a安装成功!',
 | 
			
		||||
    'update.finish': '§6插件 §b{name} §6版本 §3{version} §a更新成功!',
 | 
			
		||||
    'upgrade.confirm': '§6您正在尝试更新 §bMiaoScript §c核心 §6请执行 §b/mpm §aupgrade §cconfirm §6确认执行!',
 | 
			
		||||
@@ -177,7 +178,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
 | 
			
		||||
        let message = JSON.parse(input.readUTF())
 | 
			
		||||
        let fakeSender = this.getProxySender(message.sender)
 | 
			
		||||
        this.taskManager.create(() => this.main(fakeSender, message.command, message.args)).async().submit()
 | 
			
		||||
        this.logger.sender(fakeSender, `§6命令 §b/mpm ${message.args?.join?.(' ')} §a执行成功!`)
 | 
			
		||||
        this.logger.sender(fakeSender, `§6命令 §b/mspm ${message.args?.join?.(' ')} §a执行成功!`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private getProxySender(name: string) {
 | 
			
		||||
@@ -224,7 +225,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
 | 
			
		||||
        if (!this.isBungeeCord) return this.logger.sender(sender, '§c当前服务器尚未检测到 BungeeCord 链接...')
 | 
			
		||||
        this.taskManager.create(() => this.main(sender, command, args)).async().submit()
 | 
			
		||||
        this.bungeeCordForward(sender, { sender: sender.getName(), command, args })
 | 
			
		||||
        this.logger.sender(sender, `§6[§3BPM§6][§a${this.serverName}§6] §6命令 §b/mpm ${args.join?.(' ')} §a发布成功!`)
 | 
			
		||||
        this.logger.sender(sender, `§6[§3BPM§6][§a${this.serverName}§6] §6命令 §b/mspm ${args.join?.(' ')} §a发布成功!`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Cmd({ servers: [constants.ServerType.Bungee] })
 | 
			
		||||
@@ -264,6 +265,18 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
 | 
			
		||||
        ])
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cmdsudo(sender: any, name: string, ...args: string[]) {
 | 
			
		||||
        this.taskManager.create(() => {
 | 
			
		||||
            let player = this.server.getPlayer(name)
 | 
			
		||||
            if (!player) {
 | 
			
		||||
                return this.logger.sender(sender, `§4玩家 ${player.getName()} 不在线或不存在!`)
 | 
			
		||||
            }
 | 
			
		||||
            let command = args.join(' ')
 | 
			
		||||
            this.server.dispatchCommand(player, command)
 | 
			
		||||
            this.logger.sender(sender, `§6玩家 §a${player.getName()} §6命令 §b${command} §a执行完成!`)
 | 
			
		||||
        }).submit()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cmdload(sender: any, name: string) {
 | 
			
		||||
        let pluginFile = fs.concat(__dirname + '', name)
 | 
			
		||||
        if (!fs.exists(pluginFile)) {
 | 
			
		||||
@@ -290,7 +303,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
 | 
			
		||||
    cmdinstall(sender: any, name: string) {
 | 
			
		||||
        if (!name) { return this.i18n(sender, 'plugin.name.empty') }
 | 
			
		||||
        if (this.pluginManager.getPlugins().has(name)) {
 | 
			
		||||
 | 
			
		||||
            this.i18n(sender, 'install.already', { name, version: this.pluginManager.getPlugins().get(name).description.version })
 | 
			
		||||
            return
 | 
			
		||||
        }
 | 
			
		||||
        this.download(sender, name, false, () => {
 | 
			
		||||
@@ -402,7 +415,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
 | 
			
		||||
            this.i18n(sender, 'prun.script', { name })
 | 
			
		||||
            this.i18n(sender, 'run.script', { script })
 | 
			
		||||
            let result = this.runCode(script, sender, this.pluginManager.getPlugins().get(name))
 | 
			
		||||
            this.i18n(sender, 'run.result', { result: result == undefined ? this.translate.translate('run.noresult') : result + '' })
 | 
			
		||||
            this.i18n(sender, 'run.result', { result: result == undefined ? this.translate.translate('run.noresult') : typeof result == "string" ? result : JSON.stringify(result) })
 | 
			
		||||
        } catch (ex) {
 | 
			
		||||
            this.logger.sender(sender, this.logger.stack(ex))
 | 
			
		||||
        }
 | 
			
		||||
@@ -429,8 +442,8 @@ if (this.serverType == "spring") {
 | 
			
		||||
    var db = dbm.getMainDatabase()
 | 
			
		||||
    var df = base.getInstance().getAutowireCapableBeanFactory()
 | 
			
		||||
}
 | 
			
		||||
return ''+ eval(${JSON.stringify(code)});`)
 | 
			
		||||
        return tfunc.apply(_this, params) + ''
 | 
			
		||||
return eval(${JSON.stringify(code)});`)
 | 
			
		||||
        return tfunc.apply(_this, params)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cmddeploy(sender: any, name: any) {
 | 
			
		||||
@@ -460,7 +473,7 @@ return ''+ eval(${JSON.stringify(code)});`)
 | 
			
		||||
 | 
			
		||||
    @Tab({ alias: ['gmspm', 'bungeemspm'] })
 | 
			
		||||
    tabmspm(_sender: any, _command: any, args: string | any[]) {
 | 
			
		||||
        if (args.length === 1) { return ['list', 'install', 'update', 'upgrade', 'reload', 'restart', 'run', 'prun', 'help', 'create', 'deploy'] }
 | 
			
		||||
        if (args.length === 1) { return ['list', 'install', 'update', 'upgrade', 'reload', 'restart', 'run', 'prun', 'sudo', 'help', 'create', 'deploy'] }
 | 
			
		||||
        if (args.length > 1) {
 | 
			
		||||
            switch (args[0]) {
 | 
			
		||||
                case "list":
 | 
			
		||||
@@ -474,6 +487,9 @@ return ''+ eval(${JSON.stringify(code)});`)
 | 
			
		||||
                case "prun":
 | 
			
		||||
                    if (args.length == 2) return [...this.pluginManager.getPlugins().keys()]
 | 
			
		||||
                    return []
 | 
			
		||||
                case "sudo":
 | 
			
		||||
                    if (args.length == 2) return Java.from(this.server.getOnlinePlayers()).map(p => p.getName())
 | 
			
		||||
                    return []
 | 
			
		||||
                case "update":
 | 
			
		||||
                case "load":
 | 
			
		||||
                case "unload":
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user