Minecraft Forge 1.8.9自定义命令参数实现求助
Minecraft Forge 1.8.9 自定义带字符串参数的命令实现方法
1. 创建命令类
新建类继承CommandBase,这是Forge自定义命令的基础类:
import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.util.ChatComponentText; public class CommandSetText extends CommandBase { // 返回命令名称(不含前缀/) @Override public String getName() { return "settext"; } // 返回命令使用提示 @Override public String getCommandUsage(ICommandSender sender) { return "/settext <文本内容>"; } // 设置命令权限等级,0为普通玩家可执行 @Override public int getRequiredPermissionLevel() { return 0; } // 命令执行逻辑 @Override public void execute(ICommandSender sender, String[] args) throws CommandException { // 校验参数数量 if (args.length < 1) { sender.addChatMessage(new ChatComponentText("用法错误:" + getCommandUsage(sender))); return; } // 拼接参数为完整字符串(支持带空格的文本) StringBuilder textBuilder = new StringBuilder(); for (String arg : args) { textBuilder.append(arg).append(" "); } String inputText = textBuilder.toString().trim(); // 这里添加你的自定义业务逻辑,比如存储文本、反馈结果等 sender.addChatMessage(new ChatComponentText("你输入的文本:" + inputText)); } }
2. 注册命令
在Mod主类的初始化方法中完成命令注册:
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.client.ClientCommandHandler; @Mod(modid = YourMod.MODID, name = YourMod.NAME, version = YourMod.VERSION) public class YourMod { public static final String MODID = "yourmodid"; public static final String NAME = "你的模组名称"; public static final String VERSION = "1.0"; @Mod.Instance(MODID) public static YourMod instance; // 注册客户端命令 @Mod.EventHandler public void init(FMLInitializationEvent event) { ClientCommandHandler.instance.registerCommand(new CommandSetText()); } // 注册服务端命令(如需跨端使用) @Mod.EventHandler public void serverStarting(FMLServerStartingEvent event) { event.registerServerCommand(new CommandSetText()); } }
关键说明
- 若需要支持带空格的文本输入,必须手动拼接
args数组元素,因为Forge默认按空格分割参数。 getRequiredPermissionLevel返回值:0为普通玩家权限,2为管理员权限,可按需调整。- 同时注册客户端和服务端命令,能让命令在单人模式和多人服务器中都生效。
内容的提问来源于stack exchange,提问作者vaclavak
相关产品推荐
相关产品推荐

