Commit 47d8fd3c authored by KingRainbow44's avatar KingRainbow44
Browse files

Add `get` methods to the server hook

parent d4f9820e
package emu.grasscutter.plugin.api; package emu.grasscutter.plugin.api;
import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.GenshinPlayer;
import emu.grasscutter.server.dispatch.DispatchServer; import emu.grasscutter.server.dispatch.DispatchServer;
import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.game.GameServer;
...@@ -35,6 +37,20 @@ public final class ServerHook { ...@@ -35,6 +37,20 @@ public final class ServerHook {
instance = this; instance = this;
} }
/**
* @return The game server.
*/
public GameServer getGameServer() {
return this.gameServer;
}
/**
* @return The dispatch server.
*/
public DispatchServer getDispatchServer() {
return this.dispatchServer;
}
/** /**
* Gets all online players. * Gets all online players.
* @return Players connected to the server. * @return Players connected to the server.
...@@ -42,4 +58,16 @@ public final class ServerHook { ...@@ -42,4 +58,16 @@ public final class ServerHook {
public List<GenshinPlayer> getOnlinePlayers() { public List<GenshinPlayer> getOnlinePlayers() {
return new LinkedList<>(this.gameServer.getPlayers().values()); return new LinkedList<>(this.gameServer.getPlayers().values());
} }
/**
* Registers a command to the {@link emu.grasscutter.command.CommandMap}.
* @param handler The command handler.
*/
public void registerCommand(CommandHandler handler) {
Class<? extends CommandHandler> clazz = handler.getClass();
if(!clazz.isAnnotationPresent(Command.class))
throw new IllegalArgumentException("Command handler must be annotated with @Command.");
Command commandData = clazz.getAnnotation(Command.class);
this.gameServer.getCommandMap().registerCommand(commandData.label(), handler);
}
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment