feat: complate sponge console
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
7cbaf3f42b
commit
634dbdb16d
29
packages/sponge/src/console.ts
Normal file
29
packages/sponge/src/console.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import '@ms/nashorn'
|
||||||
|
import { MiaoScriptConsole } from '@ms/api'
|
||||||
|
|
||||||
|
let Sponge = Java.type('org.spongepowered.api.Sponge');
|
||||||
|
var Text = Java.type('org.spongepowered.api.text.Text');
|
||||||
|
let CommandSource = Java.type('org.spongepowered.api.command.CommandSource');
|
||||||
|
|
||||||
|
export class SpongeConsole extends MiaoScriptConsole {
|
||||||
|
sender(sender, ...args) {
|
||||||
|
if (!(sender instanceof CommandSource)) {
|
||||||
|
this.error('第一个参数未实现 org.spongepowered.api.command.CommandSource 无法发送消息!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (args[0].toString() === '[object Array]') {
|
||||||
|
args[0].forEach(line => sender.sendMessage(Text.of(this.prefix + line)))
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Text.of(this.prefix + args.join(' ')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console(...args): void {
|
||||||
|
this.sender(Sponge.server.console, args.join(' '));
|
||||||
|
}
|
||||||
|
warn(...args) {
|
||||||
|
this.logger.warn(this.name + args.join(' '));
|
||||||
|
}
|
||||||
|
error(...args) {
|
||||||
|
this.logger.error(this.name + args.join(' '));
|
||||||
|
}
|
||||||
|
}
|
@ -1 +1,13 @@
|
|||||||
export default {}
|
import { server, plugin } from '@ms/api'
|
||||||
|
import { DefaultContainer as container } from '@ms/container'
|
||||||
|
|
||||||
|
import { SpongeConsole } from './console'
|
||||||
|
|
||||||
|
let SpongeServerType = 'sponge';
|
||||||
|
let Sponge = Java.type("org.spongepowered.api.Sponge");
|
||||||
|
|
||||||
|
console.debug(`Detect Sponge Compatible set ServerType to ${SpongeServerType} ...`)
|
||||||
|
|
||||||
|
container.bind(server.Console).toConstantValue(SpongeConsole);
|
||||||
|
container.bind(server.ServerType).toConstantValue(SpongeServerType);
|
||||||
|
container.bind(plugin.PluginInstance).toConstantValue(Sponge.pluginManager.getPlugin('MiaoScript').orElse(null));
|
||||||
|
Loading…
Reference in New Issue
Block a user