feat: use inversify autoProvide inject
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
@ -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)
|
||||
}));
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user