backup: plugins 2020-09-24

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-09-24 13:51:18 +08:00
parent 3e69fc42d9
commit eae80fa30b
4 changed files with 181 additions and 89 deletions

View File

@@ -1,9 +1,9 @@
import { constants, task, server, channel, chat } from "@ccms/api"
import { constants, task, server, channel, chat, proxy } from "@ccms/api"
import { JSPlugin, interfaces, Cmd, Tab, Listener, Config } from "@ccms/plugin"
import { QRCode, QRErrorCorrectLevel } from '@ccms/common/dist/qrcode'
import { Autowired, JSClass, optional, inject } from '@ccms/container'
import { Autowired, JSClass, optional } from '@ccms/container'
import http from '@ccms/common/dist/http'
let MapView
@@ -54,7 +54,7 @@ interface PlaceholderAPI {
setPlaceholders: (player: any, str: string) => string
}
@JSPlugin({ prefix: 'MRD', version: '1.2.3', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
@JSPlugin({ prefix: 'MRD', version: '1.3.0', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
export class MiaoReward extends interfaces.Plugin {
private serverInfo: any
private cacheBindUuid = ''
@@ -73,10 +73,11 @@ export class MiaoReward extends interfaces.Plugin {
private server: server.Server
@Autowired()
private taskManager: task.TaskManager
@optional()
@Autowired()
private channel: channel.Channel
@Autowired()
private bungee: channel.proxy.BungeeCord
private bungee: proxy.BungeeCord
@Config()
private config = {
@@ -240,6 +241,9 @@ export class MiaoReward extends interfaces.Plugin {
} else if (result.data.status == "cancel") {
this.chat.sendTitle(sender, '§c已取消授权')
cancel?.()
} else if (result.data.status == "scaned") {
this.chat.sendTitle(sender, '§c授权操作超时')
cancel?.()
} else {
this.chat.sendTitle(sender, "§c未知的结果", result.data.status)
}
@@ -269,7 +273,7 @@ export class MiaoReward extends interfaces.Plugin {
return true
}
}
if (this.drawCooldown.has(sender.getName()) && !sender.isOp()) {
if (this.drawCooldown.has(sender.getName()) && !sender.hasPermission('mrd.admin')) {
let leftTime = cooldown - (Date.now() - this.drawCooldown.get(sender.getName())) / 1000
if (leftTime > 0) {
this.logger.sender(sender, `§c扫码功能冷却中 剩余 ${leftTime} 秒!`)
@@ -340,7 +344,7 @@ export class MiaoReward extends interfaces.Plugin {
this.taskManager.create(() => {
let command = this.config.drawCommand.replace('%player_name%', sender.getName()).replace('%amount%', draw.data)
if (!this.server.dispatchConsoleCommand(command)) {
return this.sendError(sender, '§6执行命令 §3/' + command + ' §c可能存在异常')
return this.sendError(sender, ...draw.msg.split('\n'), `§6执行结果: §4已扣除 §c${amount} §4喵币`, `§6执行命令: §3/${command} §c可能存在异常`)
}
this.logger.sender(sender, draw.msg.split('\n'))
this.sendBroadcast(sender, `${this.config.prefix}§6玩家 §b${sender.getName()} §6成功将 §a${amount}喵币 §6兑换成 §c${draw.data}点券!`)
@@ -348,10 +352,10 @@ export class MiaoReward extends interfaces.Plugin {
}).submit()
}
private sendError(sender, error) {
private sendError(sender: any, ...error: string[]) {
return this.logger.sender(sender, [
`§c========== ${this.config.prefix}§4兑换异常 §c==========`,
error,
...error,
`§6异常账号: §b${sender.getName()}`,
`§6异常时间: §a${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,
`§c如果喵币被扣除且未得到奖励 请截图发往QQ群!`,
@@ -411,17 +415,31 @@ export class MiaoReward extends interfaces.Plugin {
])
}
if (confirm != 'confirm') return this.logger.sender(sender, `§6请执行 §b/mrd ratio §c${ratio} §econfirm §c确认修改!`)
let result = this.httpPost(`https://reward.yumc.pw/server/ratio`, {
id: this.config.serverId,
token: this.config.serverToken,
ratio
if (this.bindCheck(sender, 60)) return
this.scanAuth(sender, "ratio", {
title: `是否授权 ${this.serverInfo.name} 调整兑换比例`,
content: [
`操作玩家: ${sender.getName()}`,
`调整前: ${this.serverInfo.ratio}`,
`调整后: ${msg.replace(/§./ig, '')}`,
'调整结果实时生效!',
'跨服端 将自动同步比例!',
'非跨服端 请重载插件同步比例!'
].join('\n')
}, (token) => {
let result = this.httpPost(`https://reward.yumc.pw/server/ratio`, {
id: this.config.serverId,
token: this.config.serverToken,
ratio,
userToken: token
})
if (result.code !== 200) {
return this.logger.sender(sender, `§4操作异常 §6服务器返回: §c${result.msg}`)
}
this.logger.sender(sender, `§a操作成功 §6服务器返回: §a${result.msg}`)
this.updateServerInfo(sender)
this.sendBroadcast(sender, `${this.config.prefix} §6当前兑换比例已调整为 ` + msg)
})
if (result.code !== 200) {
return this.logger.sender(sender, `§4操作异常 §6服务器返回: §c${result.msg}`)
}
this.logger.sender(sender, `§a操作成功 §6服务器返回: §a${result.msg}`)
this.updateServerInfo(sender)
this.sendBroadcast(sender, `${this.config.prefix} §6当前兑换比例已调整为 ` + msg)
}
private ratio2string(ratio) {
@@ -454,9 +472,9 @@ export class MiaoReward extends interfaces.Plugin {
if (check.code == 200) {
this.config.serverId = check.data.serverId
this.config.serverToken = check.data.serverToken
// @ts-ignore
this.config.save()
this.config['save']()
this.logger.sender(sender, '§a已成功绑定服务器: §b' + check.data.serverName)
this.updateServerInfo()
}
sync.scaned = true
}).async().submit()
@@ -514,6 +532,7 @@ export class MiaoReward extends interfaces.Plugin {
}
private queryUser(sender: org.bukkit.entity.Player, sync = false) {
if (!this.config.serverId || !this.config.serverToken) { return this.logger.sender(sender, '§4当前服务器尚未配置绑定ID 请联系腐竹进行配置!') }
return this.httpPost(`https://reward.yumc.pw/server/queryUser`, {
id: this.config.serverId,
token: this.config.serverToken,