我目前正在尝试制作一个简单的起始客户端 mod,并正在寻找如何以玩家身份发送命令。
这是我目前的代码:
@Override
public void onInitialize()
{
ClientReceiveMessageEvents.GAME.register((message, overlay) ->
{
if (message.contains(Text.literal("vote party"))){
MinecraftClient mc = MinecraftClient.getInstance();
CommandManager commandManager = mc.player.getServer().getCommandManager();
commandManager.execute(new ParseResults<ServerCommandSource>(mc.player.getCommandSource()), "vp");
// mc.inGameHud.getChatHud().addMessage(message);
}
});
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
LOGGER.info("Hello Fabric world!");
}
这是实现 ModInitializer 的主类的内部。
一切似乎都有效。我添加了 addMessage 来检查它是否做了任何事情。但是,我无法开始工作的 commandManager.execute() 部分。它要求一个 ParseResults。从我所看到的情况来看,我可以通过使用 mc.player.getCommandSource() 来通过播放器。但无论我以何种方式尝试格式化该行。它一直显示我给它错误值的相同错误。