Implemented new AI behavior patterns #1
@ -195,6 +195,7 @@ public final class ServerBootstrap {
|
||||
PlayerContextManager.registerContext(TalksContext.class, TalksContext::new);
|
||||
PlayerContextManager.registerContext(DebugParamsContext.class, DebugParamsContext::new);
|
||||
PlayerContextManager.registerContext(PlayerScriptContext.class, PlayerScriptContext::new);
|
||||
PlayerContextManager.registerContext(PlayerQuestContext.class, PlayerQuestContext::new);
|
||||
}
|
||||
|
||||
private void initDefaultSkins() {
|
||||
|
||||
@ -32,6 +32,7 @@ public class DebugCommands {
|
||||
DebugRendererCommand.register();
|
||||
DebugAICommand.register();
|
||||
ScriptCommand.register();
|
||||
DebugQuestCommand.register();
|
||||
|
||||
log.info("Registered debug commands");
|
||||
}
|
||||
|
||||
@ -0,0 +1,115 @@
|
||||
package ru.dragonestia.msb3.api.command;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
import net.minestom.server.command.builder.arguments.ArgumentString;
|
||||
import net.minestom.server.command.builder.arguments.ArgumentType;
|
||||
import net.minestom.server.entity.Player;
|
||||
import ru.dragonestia.msb3.api.player.PlayerContext;
|
||||
import ru.dragonestia.msb3.api.player.defaults.PlayerQuestContext;
|
||||
|
||||
public class DebugQuestCommand extends Command {
|
||||
|
||||
private final ArgumentString argQuestId = new ArgumentString("Quest ID");
|
||||
|
||||
public DebugQuestCommand() {
|
||||
super("debug_quest");
|
||||
|
||||
setDefaultExecutor(this::defaultHandler);
|
||||
addSyntax(this::listAllReceivedQuests, ArgumentType.Literal("list"));
|
||||
addSyntax(this::listAllCompletedQuests, ArgumentType.Literal("completed"));
|
||||
addSyntax(this::viewQuestDetails, ArgumentType.Literal("details"), argQuestId);
|
||||
addSyntax(this::completeQuest, ArgumentType.Literal("complete"), argQuestId);
|
||||
addSyntax(this::cancelQuest, ArgumentType.Literal("cancel"), argQuestId);
|
||||
addSyntax(this::failQuest, ArgumentType.Literal("fail"), argQuestId);
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
MinecraftServer.getCommandManager().register(new DebugQuestCommand());
|
||||
}
|
||||
|
||||
private void defaultHandler(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
|
||||
player.sendMessage("Debug Quest commands:");
|
||||
player.sendMessage("/debug_quest list - List all received quests");
|
||||
player.sendMessage("/debug_quest completed - List all completed, cancelled and failed quests");
|
||||
player.sendMessage("/debug_quest details <questId> - View quest details");
|
||||
player.sendMessage("/debug_quest complete <questId> - Force complete quest");
|
||||
player.sendMessage("/debug_quest cancel <questId> - Force cancel quest");
|
||||
player.sendMessage("/debug_quest fail <questId> - Force fail quest");
|
||||
}
|
||||
|
||||
private void listAllReceivedQuests(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
|
||||
var output = Component.text()
|
||||
.append(Component.text("Received quests(%s): %s"));
|
||||
|
||||
// TODO
|
||||
|
||||
player.sendMessage(output.build());
|
||||
}
|
||||
|
||||
private void listAllCompletedQuests(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
|
||||
var outputCompleted = Component.text()
|
||||
.append(Component.text("Completed quests(%s): %s"));
|
||||
|
||||
// TODO
|
||||
|
||||
player.sendMessage(outputCompleted.build());
|
||||
|
||||
var outputCancelled = Component.text()
|
||||
.append(Component.text("Cancelled quests(%s): %s"));
|
||||
|
||||
// TODO
|
||||
|
||||
player.sendMessage(outputCancelled.build());
|
||||
|
||||
var outputFailed = Component.text()
|
||||
.append(Component.text("Failed quests(%s): %s"));
|
||||
|
||||
// TODO
|
||||
|
||||
player.sendMessage(outputFailed.build());
|
||||
}
|
||||
|
||||
private void viewQuestDetails(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
var questId = ctx.get(argQuestId);
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void completeQuest(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
var questId = ctx.get(argQuestId);
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void cancelQuest(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
var questId = ctx.get(argQuestId);
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void failQuest(CommandSender sender, CommandContext ctx) {
|
||||
var player = (Player) sender;
|
||||
var service = PlayerContext.of(player, PlayerQuestContext.class);
|
||||
var questId = ctx.get(argQuestId);
|
||||
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package ru.dragonestia.msb3.api.player.defaults;
|
||||
|
||||
import ru.dragonestia.msb3.api.player.MsbPlayer;
|
||||
import ru.dragonestia.msb3.api.player.PlayerContext;
|
||||
|
||||
public class PlayerQuestContext extends PlayerContext {
|
||||
|
||||
public PlayerQuestContext(MsbPlayer player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user