feat: add NativePluginManager
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
6f628a3d7e
commit
395d2d8816
@ -27,6 +27,7 @@ export namespace server {
|
||||
dispatchCommand(sender: string | any, command: string): boolean;
|
||||
dispatchConsoleCommand(command: string): boolean;
|
||||
getPluginsFolder(): string;
|
||||
getNativePluginManager(): NativePluginManager;
|
||||
sendJson(sender: string | any, json: object | string): void;
|
||||
}
|
||||
}
|
6
packages/api/src/interfaces/server/native_plugin.ts
Normal file
6
packages/api/src/interfaces/server/native_plugin.ts
Normal file
@ -0,0 +1,6 @@
|
||||
interface NativePluginManager {
|
||||
load(name: string): boolean;
|
||||
unload(name: string): boolean;
|
||||
reload(name: string): boolean;
|
||||
delete(name: string): boolean;
|
||||
}
|
@ -7,6 +7,12 @@ let Bukkit = org.bukkit.Bukkit;
|
||||
|
||||
@provideSingleton(server.Server)
|
||||
export class BukkitServer implements server.Server {
|
||||
private pluginsFolder: string;
|
||||
|
||||
constructor() {
|
||||
this.pluginsFolder = Bukkit.getUpdateFolderFile().getParentFile().getCanonicalPath();
|
||||
}
|
||||
|
||||
getPlayer(name: string) {
|
||||
return Bukkit.getPlayer(name)
|
||||
}
|
||||
@ -32,7 +38,10 @@ export class BukkitServer implements server.Server {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command)
|
||||
}
|
||||
getPluginsFolder(): string {
|
||||
return Bukkit.getUpdateFolderFile().getParentFile().getCanonicalPath();
|
||||
return this.pluginsFolder;
|
||||
}
|
||||
getNativePluginManager() {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
sendJson(sender: string | any, json: object | string): void {
|
||||
if (typeof sender === "string") {
|
||||
|
@ -5,6 +5,12 @@ let Bungee: net.md_5.bungee.api.ProxyServer = base.getInstance().getProxy();
|
||||
|
||||
@provideSingleton(server.Server)
|
||||
export class BungeeServer implements server.Server {
|
||||
private pluginsFolder: string;
|
||||
|
||||
constructor() {
|
||||
this.pluginsFolder = Bungee.getPluginsFolder().getCanonicalPath();
|
||||
}
|
||||
|
||||
getPlayer(name: string) {
|
||||
return Bungee.getPlayer(name);
|
||||
}
|
||||
@ -30,7 +36,10 @@ export class BungeeServer implements server.Server {
|
||||
return Bungee.getPluginManager().dispatchCommand(Bungee.getConsole(), command)
|
||||
}
|
||||
getPluginsFolder(): string {
|
||||
return Bungee.getPluginsFolder().getCanonicalPath();
|
||||
return this.pluginsFolder;
|
||||
}
|
||||
getNativePluginManager() {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
sendJson(sender: string | any, json: string): void {
|
||||
throw new Error("Method not implemented.");
|
||||
|
@ -2,9 +2,16 @@ import { server } from '@ms/api'
|
||||
import { provideSingleton } from '@ms/container';
|
||||
|
||||
let Nukkit: cn.nukkit.Server = base.getInstance().getServer();
|
||||
const File = Java.type("java.io.File");
|
||||
|
||||
@provideSingleton(server.Server)
|
||||
export class NukkitServer implements server.Server {
|
||||
private pluginsFolder: string;
|
||||
|
||||
constructor() {
|
||||
this.pluginsFolder = new File(base.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile().getCanonicalPath()
|
||||
}
|
||||
|
||||
getPlayer(name: string) {
|
||||
return Nukkit.getPlayer(name)
|
||||
}
|
||||
@ -29,6 +36,12 @@ export class NukkitServer implements server.Server {
|
||||
dispatchConsoleCommand(command: string): boolean {
|
||||
return Nukkit.dispatchCommand(Nukkit.getConsoleSender(), command)
|
||||
}
|
||||
getPluginsFolder(): string {
|
||||
return this.pluginsFolder;
|
||||
}
|
||||
getNativePluginManager() {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
sendJson(sender: string | any, json: object | string): void {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
|
@ -10,6 +10,12 @@ const File = Java.type("java.io.File");
|
||||
|
||||
@provideSingleton(server.Server)
|
||||
export class SpongeServer implements server.Server {
|
||||
private pluginsFolder: string;
|
||||
|
||||
constructor() {
|
||||
this.pluginsFolder = new File(base.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile().getCanonicalPath()
|
||||
}
|
||||
|
||||
getPlayer(name: string) {
|
||||
return Sponge.getServer().getPlayer(name).orElse(null)
|
||||
}
|
||||
@ -35,8 +41,10 @@ export class SpongeServer implements server.Server {
|
||||
return Sponge.getCommandManager().process(Sponge.getServer().getConsole(), command).getQueryResult()
|
||||
}
|
||||
getPluginsFolder(): string {
|
||||
let pluginFile = new URL(base.getInstance().getClass().getProtectionDomain().getCodeSource().getLocation().getPath().split("!")[0]).path
|
||||
return new File(pluginFile).getParentFile().getCanonicalPath()
|
||||
return this.pluginsFolder;
|
||||
}
|
||||
getNativePluginManager() {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
sendJson(sender: string | any, json: string): void {
|
||||
if (typeof sender === "string") {
|
||||
|
Loading…
Reference in New Issue
Block a user