feat: backup plugins

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-10-31 10:16:08 +08:00
parent db8f2d9bc2
commit 090c0b2668
4 changed files with 198 additions and 179 deletions

View File

@@ -1,18 +1,31 @@
import { task, server, constants } from "@ccms/api";
import { inject } from "@ccms/container";
import { plugin, interfaces, cmd } from "@ccms/plugin";
import { task, server, constants } from "@ccms/api"
import { Autowired, JSClass } from "@ccms/container"
import { plugin, interfaces } from "@ccms/plugin"
import http from '@ccms/common/dist/http'
import * as fs from '@ccms/common/dist/fs'
let createPacketAdapterFunction = eval(`
function(cls, plugin, type, onPacketSending){
return new cls(plugin, type) {
onPacketSending: onPacketSending
}
}
`)
@plugin({ name: 'MiaoProtocol', prefix: 'MPTL', version: '1.0.0', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
@plugin({ prefix: 'MPTL', version: '1.0.0', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], source: __filename })
export class MiaoProtocol extends interfaces.Plugin {
@inject(server.Server)
private server: server.Server;
@inject(task.TaskManager)
private taskManager: task.TaskManager;
@Autowired()
private server: server.Server
@Autowired()
private taskManager: task.TaskManager
@JSClass('com.comphenix.protocol.events.PacketAdapter')
private PacketAdapter
@JSClass('com.comphenix.protocol.PacketType')
private PacketType
@JSClass('com.comphenix.protocol.ProtocolLibrary')
private ProtocolLibrary
private pipeline: any
private adapter: any
enable() {
let count = 0
@@ -25,6 +38,28 @@ export class MiaoProtocol extends interfaces.Plugin {
this.logger.console('§cNetty通道注入失败 §4所有功能将无法使用')
}
}).later(20).timer(40).submit()
this.initPacketAdapter()
}
disable() {
this.ProtocolLibrary.getProtocolManager().removePacketListener(this.adapter)
}
createPacketAdapter(onPacketSending: (event) => void) {
return createPacketAdapterFunction(this.PacketAdapter, base.getInstance(), [this.PacketType.Play.Server.MAP], onPacketSending)
}
initPacketAdapter() {
this.adapter = this.createPacketAdapter((event) => {
let integers = event.getPacket().getIntegers().getValues()
console.log(`ProtocolLib onPacketSending filter Map
Player: ${event.getPlayer()}
MapId: ${integers.get(0)}
Size: ${integers.get(3)}x${integers.get(4)}
Bytes: ${event.getPacket().getByteArrays().read(0).length}
`)
// org.bukkit.map.MapPalette.imageToBytes()
})
this.ProtocolLibrary.getProtocolManager().addPacketListener(this.adapter)
}
}