feat: use inversify autoProvide inject

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-02-26 10:15:33 +08:00
parent 7e4c44eadd
commit 3143851969
26 changed files with 128 additions and 153 deletions

View File

@ -1,12 +1,12 @@
import '@ms/nashorn'
import { command, plugin } from '@ms/api'
import { injectable, postConstruct, inject } from '@ms/container'
import { inject, provideSingleton, postConstruct } from '@ms/container'
let PluginCommand = Java.type('cn.nukkit.command.PluginCommand');
let CommandExecutor = Java.type('cn.nukkit.command.CommandExecutor');
@injectable()
@provideSingleton(command.Command)
export class NukkitCommand extends command.Command {
@inject(plugin.PluginInstance)
private pluginInstance: any
@ -30,7 +30,6 @@ export class NukkitCommand extends command.Command {
}
}
onCommand(plugin: any, command: any, executor: Function) {
// 必须指定需要实现的接口类型 否则MOD服会报错
command.setExecutor(new CommandExecutor({
onCommand: super.setExecutor(plugin, command, executor)
}));

View File

@ -1,5 +1,5 @@
import { event, server, plugin } from '@ms/api'
import { injectable, inject } from '@ms/container'
import { event, plugin } from '@ms/api'
import { inject, provideSingleton } from '@ms/container'
const Nukkit: cn.nukkit.Server = base.getInstance().getServer();
const Event = Java.type("cn.nukkit.event.Event");
@ -8,7 +8,7 @@ const Listener = Java.type("cn.nukkit.event.Listener");
const EventPriority = Java.type("cn.nukkit.event.EventPriority");
const EventExecutor = Java.type("cn.nukkit.plugin.EventExecutor");
@injectable()
@provideSingleton(event.Event)
export class NukkitEvent extends event.Event {
@inject(plugin.PluginInstance)
private pluginInstance: any

View File

@ -1,18 +1,14 @@
/// <reference types="@ms/types/dist/typings/nukkit" />
import { server, command, event, task } from '@ms/api'
import { server } from '@ms/api'
import { Container } from '@ms/container'
import { NukkitConsole } from './console';
import { NukkitEvent } from './event';
import { NukkitServer } from './server';
import { NukkitCommand } from './command';
import { NukkitTaskManager } from './task';
import './event';
import './server';
import './command';
import './task';
export default function NukkitImpl(container: Container) {
container.bind(server.Console).toConstantValue(NukkitConsole);
container.bind(event.Event).to(NukkitEvent).inSingletonScope();
container.bind(server.Server).to(NukkitServer).inSingletonScope();
container.bind(command.Command).to(NukkitCommand).inSingletonScope();
container.bind(task.TaskManager).to(NukkitTaskManager).inSingletonScope();
}

View File

@ -1,9 +1,9 @@
import { server } from '@ms/api'
import { injectable } from '@ms/container';
import { provideSingleton } from '@ms/container';
let Nukkit: cn.nukkit.Server = base.getInstance().getServer();
@injectable()
@provideSingleton(server.Server)
export class NukkitServer implements server.Server {
getPlayer(name: string) {
return Nukkit.getPlayer(name)

View File

@ -1,11 +1,9 @@
import { task, plugin } from '@ms/api'
import { injectable, inject } from '@ms/container';
import { inject, provideSingleton } from '@ms/container';
const Nukkit: cn.nukkit.Server = base.getInstance().getServer();
const NukkitRunnable = Java.type('cn.nukkit.scheduler.NukkitRunnable');
const Callable = Java.type('java.util.concurrent.Callable')
@injectable()
@provideSingleton(task.TaskManager)
export class NukkitTaskManager implements task.TaskManager {
@inject(plugin.PluginInstance)
private pluginInstance: any;