@@ -42,15 +42,21 @@
|
|||||||
|
|
||||||
### 基础准备工作
|
### 基础准备工作
|
||||||
- QQ搜索小程序 `圈云盒子` 并登录
|
- QQ搜索小程序 `圈云盒子` 并登录
|
||||||
- 申请内测服务器账号 个人中心 => 配置面板 => 圈云盒子客服群 加群申请
|
- 申请内测服务器账号
|
||||||
|
- 个人中心 => 配置面板 => 圈云盒子客服群
|
||||||
|
- 打开群详情 加群
|
||||||
|
|
||||||
|
### 接下来就是赚钱的操作
|
||||||
|
|
||||||
### 服务器准备工作
|
### 服务器准备工作
|
||||||
- 先安装 `MiaoScript` [站内地址]()
|
- 打开 [圈云盒子管理后台](https://reward.yumc.pw)
|
||||||
|
- 先安装 `MiaoScript` [站内地址](https://www.mcbbs.net/thread-774401-1-1.html)
|
||||||
- 可以通过 Yum 快速安装 `/yum install MiaoScript`
|
- 可以通过 Yum 快速安装 `/yum install MiaoScript`
|
||||||
- 等待 MiaoScript 引擎启动完成(首次启动可能需要10-20秒 依赖于您的网络环境)
|
- 等待 MiaoScript 引擎启动完成(首次启动可能需要10-20秒 依赖于您的网络环境)
|
||||||
- 执行 `/mspm install MiaoReward`
|
- 执行 `/mspm install MiaoReward`
|
||||||
|
|
||||||
### 绑定服务器
|
### 绑定服务器
|
||||||
|
- 由于当前框架存在BUG 请先执行 `/mspm reload MiaoReward` 生成配置文件
|
||||||
- 执行 `/mrd bind server`
|
- 执行 `/mrd bind server`
|
||||||
- 使用QQ扫码
|
- 使用QQ扫码
|
||||||
- 选择需要绑定的服务器
|
- 选择需要绑定的服务器
|
||||||
@@ -59,7 +65,11 @@
|
|||||||
- 执行 `/mrd ratio 0.001` (最低为 1:0.0001)
|
- 执行 `/mrd ratio 0.001` (最低为 1:0.0001)
|
||||||
- 执行兑换比例确认指令
|
- 执行兑换比例确认指令
|
||||||
- 执行 `/mrd server` 查看服务器信息
|
- 执行 `/mrd server` 查看服务器信息
|
||||||
- 如需绑定多台 可以直接复制绑定之后的 `MiaoScript/plugins/MiaoReward/config.yml` 文件到多台服务器上 然后 `/mrd reload` 重载插件
|
- 如果群组服需要绑定多台服务器(前提是每个服务器都有玩家在)
|
||||||
|
- 执行 `/gmspm install MiaoReward` 批量安装
|
||||||
|
- 可以直接复制绑定之后的 `MiaoScript/plugins/MiaoReward/config.yml`
|
||||||
|
- 黏贴配置文件到所有需要绑定的服务器上
|
||||||
|
- 然后 `/gmspm reload MiaoReward` 批量重载插件
|
||||||
|
|
||||||
### QQ群配置
|
### QQ群配置
|
||||||
- 打开小程序
|
- 打开小程序
|
||||||
@@ -72,6 +82,7 @@
|
|||||||
- 执行 `/mrd bind`
|
- 执行 `/mrd bind`
|
||||||
- 使用QQ扫码
|
- 使用QQ扫码
|
||||||
- 完成绑定
|
- 完成绑定
|
||||||
|
- 执行 `/mrd query` 查询信息
|
||||||
|
|
||||||
## 使用说明
|
## 使用说明
|
||||||
- 玩家可以通过下列方式获取喵币
|
- 玩家可以通过下列方式获取喵币
|
||||||
@@ -82,13 +93,21 @@
|
|||||||
- 腐竹可以在平台将喵币兑换成RMB(兑换比例请加群联系客服详谈)
|
- 腐竹可以在平台将喵币兑换成RMB(兑换比例请加群联系客服详谈)
|
||||||
- 登录小程序后 个人中心 => 配置面板 => 圈云盒子客服群
|
- 登录小程序后 个人中心 => 配置面板 => 圈云盒子客服群
|
||||||
|
|
||||||
|
## PAPI兼容
|
||||||
|
- 目前已经兼容 PAPI 变量
|
||||||
|
- `%mrd_balance%` 玩家喵币
|
||||||
|
- `%mrd_sign%` 玩家签到(*/1)
|
||||||
|
- `%mrd_video%` 玩家视频观看次数(*/300)
|
||||||
|
- `%mrd_box%` 玩家盒子观看次数(*/300)
|
||||||
|
- 如果玩家变量没有及时更新 执行 `/mrd query` 或 `重新登录游戏` 即可
|
||||||
|
|
||||||
## 配置文件
|
## 配置文件
|
||||||
|
|
||||||
``` yaml
|
```yml
|
||||||
# 服务器ID
|
# 服务器ID
|
||||||
serverId: '16'
|
serverId: 16
|
||||||
# 服务器Token
|
# 服务器Token
|
||||||
serverToken: d50d3f6e-2a59-460a-2b29-82b66c4bbf52
|
serverToken: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
|
||||||
# 兑换指令
|
# 兑换指令
|
||||||
drawCommand: 'p give %player_name% %amount%'
|
drawCommand: 'p give %player_name% %amount%'
|
||||||
# 冷却时间
|
# 冷却时间
|
||||||
@@ -97,6 +116,10 @@ drawCooldown: 300
|
|||||||
prefix: '§6[§b广告系统§6]§r'
|
prefix: '§6[§b广告系统§6]§r'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 插件源码
|
||||||
|
|
||||||
|
- [MiaoScript包管理中心](http://ms.yumc.pw/api/plugin/download/name/MiaoReward)
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
- 绑定服务器(已完成)
|
- 绑定服务器(已完成)
|
||||||
- 绑定玩家(已完成)
|
- 绑定玩家(已完成)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { constants, task, server, channel, chat, proxy } from "@ccms/api"
|
import { constants, task, server, channel, chat, proxy } from "@ccms/api"
|
||||||
import { JSPlugin, interfaces, Cmd, Tab, Listener, Config } from "@ccms/plugin"
|
import { JSPlugin, interfaces, Cmd, Tab, Listener, Config, PluginConfig } from "@ccms/plugin"
|
||||||
|
|
||||||
import { QRCode, QRErrorCorrectLevel } from '@ccms/common/dist/qrcode'
|
import { QRCode, QRErrorCorrectLevel } from '@ccms/common/dist/qrcode'
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ interface UserInfo {
|
|||||||
box: string
|
box: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSPlugin({ prefix: 'MRD', version: '1.3.2', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
|
@JSPlugin({ prefix: 'MRD', version: '1.3.3', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
|
||||||
export class MiaoReward extends interfaces.Plugin {
|
export class MiaoReward extends interfaces.Plugin {
|
||||||
private serverInfo: any
|
private serverInfo: any
|
||||||
private cacheBindUuid = ''
|
private cacheBindUuid = ''
|
||||||
@@ -90,7 +90,7 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
private bungee: proxy.BungeeCord
|
private bungee: proxy.BungeeCord
|
||||||
|
|
||||||
@Config()
|
@Config()
|
||||||
private config = {
|
private config: PluginConfig = {
|
||||||
prefix: '§6[§b广告系统§6]§r',
|
prefix: '§6[§b广告系统§6]§r',
|
||||||
serverId: '',
|
serverId: '',
|
||||||
serverToken: '',
|
serverToken: '',
|
||||||
@@ -114,7 +114,7 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
this.logger.prefix = this.config.prefix
|
this.logger.prefix = this.config.prefix
|
||||||
this.downgrade = Bukkit.getServer().class.name.split('.')[3] == "v1_7_R4"
|
this.downgrade = Bukkit.getServer().class.name.split('.')[3] == "v1_7_R4"
|
||||||
this.updateServerInfo()
|
this.updateServerInfo()
|
||||||
this.updatePlayerInfo()
|
this.updateOnlinePlayersInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateServerInfo(player?: any) {
|
private updateServerInfo(player?: any) {
|
||||||
@@ -132,15 +132,12 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
}).async().submit()
|
}).async().submit()
|
||||||
}
|
}
|
||||||
|
|
||||||
private updatePlayerInfo(player?: any) {
|
private updateOnlinePlayersInfo() {
|
||||||
this.taskManager.create(() => {
|
Java.from(this.server.getOnlinePlayers()).forEach(player => this.updatePlayerInfo(player))
|
||||||
Java.from(this.server.getOnlinePlayers()).forEach(p => {
|
|
||||||
let info = this.queryUser(p)
|
|
||||||
if (info.code == 200) {
|
|
||||||
this.playerInfoCache.set(p.getName(), info.data)
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}).async().submit()
|
private updatePlayerInfo(player: org.bukkit.entity.Player) {
|
||||||
|
this.taskManager.create(() => this.queryUser(player)).async().submit()
|
||||||
}
|
}
|
||||||
|
|
||||||
@JSClass('com.google.common.io.ByteStreams')
|
@JSClass('com.google.common.io.ByteStreams')
|
||||||
@@ -190,20 +187,15 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
} else {
|
} else {
|
||||||
this.PlaceholderAPI.registerPlaceholderHook("mrd", new this.PlaceholderHook({
|
this.PlaceholderAPI.registerPlaceholderHook("mrd", new this.PlaceholderHook({
|
||||||
onPlaceholderRequest: (player: any, s: string) => {
|
onPlaceholderRequest: (player: any, s: string) => {
|
||||||
if (!this.playerInfoCache.has(player.getName())) {
|
if (!this.playerInfoCache.has(player.getName())) { return '用户未绑定' }
|
||||||
return '用户未绑定'
|
|
||||||
}
|
|
||||||
let data = this.playerInfoCache.get(player.getName())
|
let data = this.playerInfoCache.get(player.getName())
|
||||||
switch (s.toLowerCase()) {
|
switch (s.toLowerCase()) {
|
||||||
case "balance":
|
case "balance": return data.balance
|
||||||
return data.balance
|
case "sign": return data.sign
|
||||||
case "sign":
|
case "video": return data.video
|
||||||
return data.sign
|
case "box": return data.box
|
||||||
case "box":
|
default: return "未知的参数: " + s
|
||||||
return data.box
|
|
||||||
default:
|
|
||||||
}
|
}
|
||||||
return "未知的参数: " + s
|
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
@@ -326,6 +318,7 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
|
|
||||||
cmddraw(sender: org.bukkit.entity.Player, amount: number) {
|
cmddraw(sender: org.bukkit.entity.Player, amount: number) {
|
||||||
if (!sender.getItemInHand) { return this.logger.sender(sender, '§c手持物品检测异常 请检查是否在客户端执行命令!') }
|
if (!sender.getItemInHand) { return this.logger.sender(sender, '§c手持物品检测异常 请检查是否在客户端执行命令!') }
|
||||||
|
if (!this.playerInfoCache.has(sender.getName())) { return this.logger.sender(sender, '§c当前用户尚未绑定服务器玩家账号 请先执行 /mrd bind 绑定账号!') }
|
||||||
amount = Number(amount)
|
amount = Number(amount)
|
||||||
if (!Number.isInteger(amount)) {
|
if (!Number.isInteger(amount)) {
|
||||||
return this.logger.sender(sender, '§4金额必须是数字!')
|
return this.logger.sender(sender, '§4金额必须是数字!')
|
||||||
@@ -419,12 +412,13 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
if (result.code !== 200) {
|
if (result.code !== 200) {
|
||||||
return this.logger.sender(sender, `§4操作异常 §6服务器返回: §c${result.msg}`)
|
return this.logger.sender(sender, `§4操作异常 §6服务器返回: §c${result.msg}`)
|
||||||
}
|
}
|
||||||
|
let data = result.data
|
||||||
this.logger.sender(sender, [
|
this.logger.sender(sender, [
|
||||||
`§6====== ${this.config.prefix} §a服务器信息 §6======`,
|
`§6====== ${this.config.prefix} §a服务器信息 §6======`,
|
||||||
`§6服务器: §a${result.data.name}`,
|
`§6服务器: §a${data.name}`,
|
||||||
`§6喵币余额: §b${result.data.score} §6喵币`,
|
`§6喵币余额: §b${data.score} §6喵币`,
|
||||||
`§6喵币比例: §b${result.data.ratio}`,
|
`§6喵币比例: §b${data.ratio}`,
|
||||||
`§6今日收入: §b${result.data.today} §6喵币`,
|
`§6今日收入: §b${data.today} §6喵币`,
|
||||||
`§6====== ${this.config.prefix} §a服务器信息 §6======`,
|
`§6====== ${this.config.prefix} §a服务器信息 §6======`,
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -469,6 +463,10 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmdreload() {
|
||||||
|
this.config.reload()
|
||||||
|
}
|
||||||
|
|
||||||
private ratio2string(ratio) {
|
private ratio2string(ratio) {
|
||||||
ratio = parseFloat(ratio)
|
ratio = parseFloat(ratio)
|
||||||
if (ratio > 1) {
|
if (ratio > 1) {
|
||||||
@@ -499,9 +497,10 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
if (check.code == 200) {
|
if (check.code == 200) {
|
||||||
this.config.serverId = check.data.serverId
|
this.config.serverId = check.data.serverId
|
||||||
this.config.serverToken = check.data.serverToken
|
this.config.serverToken = check.data.serverToken
|
||||||
this.config['save']()
|
this.config.save()
|
||||||
this.logger.sender(sender, '§a已成功绑定服务器: §b' + check.data.serverName)
|
this.logger.sender(sender, '§a已成功绑定服务器: §b' + check.data.serverName)
|
||||||
this.updateServerInfo()
|
this.updateServerInfo(sender)
|
||||||
|
this.updateOnlinePlayersInfo()
|
||||||
}
|
}
|
||||||
sync.scaned = true
|
sync.scaned = true
|
||||||
}).async().submit()
|
}).async().submit()
|
||||||
@@ -590,13 +589,17 @@ export class MiaoReward extends interfaces.Plugin {
|
|||||||
|
|
||||||
private queryUser(sender: org.bukkit.entity.Player, sync = false) {
|
private queryUser(sender: org.bukkit.entity.Player, sync = false) {
|
||||||
if (!this.config.serverId || !this.config.serverToken) { return this.logger.sender(sender, '§4当前服务器尚未配置绑定ID 请联系腐竹进行配置!') }
|
if (!this.config.serverId || !this.config.serverToken) { return this.logger.sender(sender, '§4当前服务器尚未配置绑定ID 请联系腐竹进行配置!') }
|
||||||
return this.httpPost(`https://reward.yumc.pw/server/queryUser`, {
|
let result = this.httpPost(`https://reward.yumc.pw/server/queryUser`, {
|
||||||
id: this.config.serverId,
|
id: this.config.serverId,
|
||||||
token: this.config.serverToken,
|
token: this.config.serverToken,
|
||||||
uuid: sender.getUniqueId().toString(),
|
uuid: sender.getUniqueId().toString(),
|
||||||
username: sender.getName(),
|
username: sender.getName(),
|
||||||
sync
|
sync
|
||||||
})
|
})
|
||||||
|
if (result?.code == 200) {
|
||||||
|
this.playerInfoCache.set(sender.getName(), result.data)
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
cmdquery(sender: org.bukkit.entity.Player) {
|
cmdquery(sender: org.bukkit.entity.Player) {
|
||||||
@@ -687,10 +690,7 @@ CAST TIME : ${Date.now() - startTime}`)
|
|||||||
PlayerJoinEvent(event: org.bukkit.event.player.PlayerJoinEvent) {
|
PlayerJoinEvent(event: org.bukkit.event.player.PlayerJoinEvent) {
|
||||||
const player = event.getPlayer()
|
const player = event.getPlayer()
|
||||||
this.bungeeCordDetect(player)
|
this.bungeeCordDetect(player)
|
||||||
let info = this.queryUser(player)
|
this.updatePlayerInfo(player)
|
||||||
if (info.code == 200) {
|
|
||||||
this.playerInfoCache.set(player.getName(), info.data)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Listener()
|
@Listener()
|
||||||
@@ -750,7 +750,7 @@ CAST TIME : ${Date.now() - startTime}`)
|
|||||||
}
|
}
|
||||||
|
|
||||||
private isQrCodeItem(item: org.bukkit.inventory.ItemStack): boolean {
|
private isQrCodeItem(item: org.bukkit.inventory.ItemStack): boolean {
|
||||||
if (!item) { return false }
|
if (!item || item.getType() == Material.AIR) { return false }
|
||||||
if ((item.getType() == Material.MAP || item.getType() == Material.FILLED_MAP) && item.hasItemMeta()) {
|
if ((item.getType() == Material.MAP || item.getType() == Material.FILLED_MAP) && item.hasItemMeta()) {
|
||||||
return Java.from(item.getItemMeta().getLore()).indexOf('QRCODE') != -1
|
return Java.from(item.getItemMeta().getLore()).indexOf('QRCODE') != -1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ let langMap = {
|
|||||||
'download.start': '§6开始下载插件: §b{name} §6版本 §3{version}',
|
'download.start': '§6开始下载插件: §b{name} §6版本 §3{version}',
|
||||||
'download.url': '§6插件下载地址: §b{url}',
|
'download.url': '§6插件下载地址: §b{url}',
|
||||||
'download.finish': '§6插件 §b{name} §6版本 §3{version} §a下载完毕 开始加载 ...',
|
'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安装成功!',
|
'install.finish': '§6插件 §b{name} §6版本 §3{version} §a安装成功!',
|
||||||
'update.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确认执行!',
|
'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 message = JSON.parse(input.readUTF())
|
||||||
let fakeSender = this.getProxySender(message.sender)
|
let fakeSender = this.getProxySender(message.sender)
|
||||||
this.taskManager.create(() => this.main(fakeSender, message.command, message.args)).async().submit()
|
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) {
|
private getProxySender(name: string) {
|
||||||
@@ -224,7 +225,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
|
|||||||
if (!this.isBungeeCord) return this.logger.sender(sender, '§c当前服务器尚未检测到 BungeeCord 链接...')
|
if (!this.isBungeeCord) return this.logger.sender(sender, '§c当前服务器尚未检测到 BungeeCord 链接...')
|
||||||
this.taskManager.create(() => this.main(sender, command, args)).async().submit()
|
this.taskManager.create(() => this.main(sender, command, args)).async().submit()
|
||||||
this.bungeeCordForward(sender, { sender: sender.getName(), command, args })
|
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] })
|
@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) {
|
cmdload(sender: any, name: string) {
|
||||||
let pluginFile = fs.concat(__dirname + '', name)
|
let pluginFile = fs.concat(__dirname + '', name)
|
||||||
if (!fs.exists(pluginFile)) {
|
if (!fs.exists(pluginFile)) {
|
||||||
@@ -290,7 +303,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
|
|||||||
cmdinstall(sender: any, name: string) {
|
cmdinstall(sender: any, name: string) {
|
||||||
if (!name) { return this.i18n(sender, 'plugin.name.empty') }
|
if (!name) { return this.i18n(sender, 'plugin.name.empty') }
|
||||||
if (this.pluginManager.getPlugins().has(name)) {
|
if (this.pluginManager.getPlugins().has(name)) {
|
||||||
|
this.i18n(sender, 'install.already', { name, version: this.pluginManager.getPlugins().get(name).description.version })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.download(sender, name, false, () => {
|
this.download(sender, name, false, () => {
|
||||||
@@ -402,7 +415,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin {
|
|||||||
this.i18n(sender, 'prun.script', { name })
|
this.i18n(sender, 'prun.script', { name })
|
||||||
this.i18n(sender, 'run.script', { script })
|
this.i18n(sender, 'run.script', { script })
|
||||||
let result = this.runCode(script, sender, this.pluginManager.getPlugins().get(name))
|
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) {
|
} catch (ex) {
|
||||||
this.logger.sender(sender, this.logger.stack(ex))
|
this.logger.sender(sender, this.logger.stack(ex))
|
||||||
}
|
}
|
||||||
@@ -429,8 +442,8 @@ if (this.serverType == "spring") {
|
|||||||
var db = dbm.getMainDatabase()
|
var db = dbm.getMainDatabase()
|
||||||
var df = base.getInstance().getAutowireCapableBeanFactory()
|
var df = base.getInstance().getAutowireCapableBeanFactory()
|
||||||
}
|
}
|
||||||
return ''+ eval(${JSON.stringify(code)});`)
|
return eval(${JSON.stringify(code)});`)
|
||||||
return tfunc.apply(_this, params) + ''
|
return tfunc.apply(_this, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
cmddeploy(sender: any, name: any) {
|
cmddeploy(sender: any, name: any) {
|
||||||
@@ -460,7 +473,7 @@ return ''+ eval(${JSON.stringify(code)});`)
|
|||||||
|
|
||||||
@Tab({ alias: ['gmspm', 'bungeemspm'] })
|
@Tab({ alias: ['gmspm', 'bungeemspm'] })
|
||||||
tabmspm(_sender: any, _command: any, args: string | any[]) {
|
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) {
|
if (args.length > 1) {
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "list":
|
case "list":
|
||||||
@@ -474,6 +487,9 @@ return ''+ eval(${JSON.stringify(code)});`)
|
|||||||
case "prun":
|
case "prun":
|
||||||
if (args.length == 2) return [...this.pluginManager.getPlugins().keys()]
|
if (args.length == 2) return [...this.pluginManager.getPlugins().keys()]
|
||||||
return []
|
return []
|
||||||
|
case "sudo":
|
||||||
|
if (args.length == 2) return Java.from(this.server.getOnlinePlayers()).map(p => p.getName())
|
||||||
|
return []
|
||||||
case "update":
|
case "update":
|
||||||
case "load":
|
case "load":
|
||||||
case "unload":
|
case "unload":
|
||||||
|
|||||||
Reference in New Issue
Block a user