feat: add 1.8.8 reflect & export io namespace

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
MiaoWoo 2020-04-07 13:31:20 +08:00
parent a164f08e1e
commit b03c311956
5 changed files with 53 additions and 5 deletions

View File

@ -5,6 +5,7 @@ import * as reflect from '@ms/common/dist/reflect'
import chat from './enhance/chat'
const refList: Array<{ server: string, future: string }> = [
{ server: 'aq', future: 'g' },//spigot 1.8.8
{ server: 'an', future: 'g' },//spigot 1.12.2
{ server: 'getServerConnection', future: 'f' },//after spigot 1.14.4
{ server: 'func_147137_ag', future: 'field_151274_e' }//catserver 1.12.2
@ -74,7 +75,7 @@ export class BukkitServer implements server.Server {
} catch (error) {
}
}
if (!promise) { throw Error(`Can't found ServerConnection or ChannelFuture !`) }
if (!promise) { console.error("Can't found ServerConnection or ChannelFuture !"); return }
this.pipeline = reflect.on(promise).get('channel').get().pipeline()
}
}

View File

@ -5,11 +5,12 @@ import { attachForge } from './forge'
import { attachEvents } from './event'
let username = process.argv[2] || 'Mr_jtb'
let version = process.argv[3] || '1.12.2'
let client = createConnection('192.168.2.5', 25577, username)
function createConnection(host: string, port: number, username: string) {
let client = createClient({
version: '1.12.2',
version,
host,
port,
username,

View File

@ -1,3 +1,46 @@
/// <reference types="@ms/nashorn" />
import { Server, ServerOptions } from './socket-io'
interface SocketIOStatic {
/**
* Default Server constructor
*/
(): Server;
/**
* Creates a new Server
* @param srv The HTTP server that we're going to bind to
* @param opts An optional parameters object
*/
(srv: any, opts?: ServerOptions): Server;
/**
* Creates a new Server
* @param port A port to bind to, as a number, or a string
* @param An optional parameters object
*/
(port: string | number, opts?: ServerOptions): Server;
/**
* Creates a new Server
* @param A parameters object
*/
(opts: ServerOptions): Server;
/**
* Backwards compatibility
* @see io().listen()
*/
listen?: SocketIOStatic;
}
type SocketStatic = SocketIOStatic & { Instance?: symbol }
// @ts-ignore
let io: SocketStatic = function (pipeline: any, options: ServerOptions) {
return new Server(pipeline, options)
}
io.Instance = Symbol("@ms/websocket")
export default io
export * from './socket-io'

View File

@ -15,6 +15,8 @@ export enum Keys {
Default = "DefaultChannelPipeline"
}
let RequestAttributeKey: any
try { RequestAttributeKey = AttributeKey.valueOf('request') } catch (error) { }
export enum AttributeKeys {
Request = AttributeKey.valueOf('request')
Request = RequestAttributeKey
}

View File

@ -22,6 +22,7 @@ class NettyWebSocketServer extends EventEmitter {
ctx.fireChannelRead(channel)
})
connectEvent.on(ServerEvent.connect, (ctx) => {
console.log('NettyWebSocketServer ServerEvent.connect', ctx, ctx.channel().id(), ctx.channel().class.name)
let nettyClient = new NettyClient(this, ctx.channel());
this.allClients[nettyClient.id] = nettyClient;
this.emit(ServerEvent.connect, nettyClient);