Grasscutter 命令实践手册:7 个高频场景与 3 步自定义扩展
Grasscutter 命令实践手册7 个高频场景与 3 步自定义扩展【免费下载链接】GrasscutterA server software reimplementation for a certain anime game.项目地址: https://gitcode.com/GitHub_Trending/gr/GrasscutterGrasscutter 命令是私服管理员每天打交道最多的东西给角色发满命、把玩家扔到指定坐标、封掉捣乱的号甚至给服务器加一条只属于自己的指令。读完这篇你会知道每条命令要填什么参数、谁有资格用哪条命令、报错时去哪儿查最后还能自己动手写一个新命令。第一步用 /help 确认你能用哪些命令在开始之前先搞清楚一件事Grasscutter 的命令分两个入口——游戏内聊天框和服务器控制台就是你运行服务器的那个终端。控制台输入的命令不受任何权限限制而游戏内输入的命令会先过一道权限检查。打开权限清单最简单的方式就是/help这个命令只会列出你当前账号有权使用的命令每条都带上用法示例、别名和所需的权限节点。想看某一条的细节/help give权限的本质是一串字符串叫权限节点保存在账号数据里规则很简单节点为空 谁都能用比如/help、/kick对自己操作的部分* 通配一切通过控制台account create建出来的账号会自动带上支持通配匹配比如player.*覆盖所有player.开头的节点-xxx前缀表示显式拒绝优先级高于通配普通账号还有一组内置的默认节点所以不是所有命令都对玩家关闭几个高频命令对应的权限节点如下第一个列是对自己用第二个列是对别人用想做的事对自己的节点对他人操作时另需发物品/giveplayer.giveplayer.give.others传送/tpplayer.teleportplayer.teleport.others改天气/weatherplayer.weatherplayer.weather.others踢人/kick无需server.kick封禁/ban无需server.ban 注意这些前缀只是命令作者的命名习惯不是内置角色。服务器里不存在叫admin的等级有的只是你账号里那串节点列表。如何一步给玩家开权限/permission命令本身要求你拥有permission节点操作对象必须是一个玩家。它的子命令只有四个add、remove、clear、list。先锁定目标再开权限/target 123456 /permission add player.give之后这条会话里所有命令都默认作用于 123456。也可以一条搞定/permission 123456 add player.give。想看他现在有什么用/permission list收回就remove清空就clear。 小技巧后面填 UID 或账号名都行目标解析时两者都会查。一行命令发角色、武器和圣遗物/give别名g、item、giveitem是出场率最高的命令参数顺序不固定靠前缀区分lv等级、r精炼、x数量、c命座、sl天赋等级。发一个 90 级满命、天赋 10 级的旅行者角色 ID 也可以用 4 位短号如 10002 代替 10000002/give 10000002 lv90 c6 sl10发一把 90 级 5 精炼武器/give 11502 lv90 r5 x1圣遗物多一段参数等级后跟主属性 ID再跟若干副属性 ID,次数。这条会给你一套 20 级、主属性 1004、副属性 1012 洗 3 次、1022 洗 2 次的圣遗物/give 15001 lv20 1004 1012,3 1022,2懒得一个个发有四个关键词直接打包/give avatars lv90 c6 # 全部角色默认满命 /give weapons lv90 r5 # 全部武器每种最多 5 把 /give mats x999 # 全部材料各 999 个 /give all lv90 # 上面三样全都要给别人发东西时记得检查自己有没有player.give.others这个节点否则会收到权限提示。如何用 tp 命令把玩家传送到指定坐标传送语法是x y z加一个可选的场景 ID/tp 1148 1236 1905 10001前三个数是坐标最后一个是场景 ID不写就留在当前场景。成功执行后你会收到包含昵称、坐标和场景 ID 的确认消息。想把别人传走而不是自己在参数里加一个UID即可它会顶掉默认目标/tp 123456 1148 1236 1905 10001顺带把场景里最常用的两个小功能也说了/weather可以接受天气数字 ID 和气候类型词比如降雨类关键词不带参数时查询当前天气/heal和/killall这类保命、清怪命令对玩家自己开放具体用法/help里都有。管理员三件套踢人、封号、建账号这三条命令都是控制台友好型前两条也支持游戏内使用需要server.kick/server.ban节点。踢人最干净的一条/kick 123456封禁接受两个可选参数结束时间Unix 时间戳和原因。不传时间默认封到 2051190000大约 2035 年即永久/ban 123456 2051190000 挂机刷资源被封的账号会立刻掉线。解封是对称操作用/unban。/account是纯控制台命令游戏里输入会被拒。建号一行account create testplayer 123456新建账号会自动带上*节点等于出厂就是全权限管理员。配套子命令还有delete删账号、list列出所有账号账号多时会跑一会儿、resetpass重置密码需要在配置里先打开EXPERIMENTAL_RealPassword。一条命令是怎么执行到生效的看懂下面这 6 步前面所有为什么提示权限不足为什么要求目标在线的报错你就都明白了消息按空格切开第一个词小写后当作标签去命令表里查处理器查不到会再试一遍别名表扫描参数里的UID谁出现命令作用对象就换成谁单独出现表示不要目标没有时依次回退你在聊天里的人 →/target设过的目标 → 你自己控制台则无默认目标权限检查先比对命令的permission节点如果操作对象不是你还要再过一道permissionTargeted节点校验目标约束有的命令要求目标必须在线如/give、/ban有的要求必须离线调用处理器的execute执行标注了threading true的命令如/give会开线程跑不卡主循环调试时你还会在日志里看到命令被谁执行、带了什么参数——前提是配置里SERVER下的logCommands打开了控制台和游戏内输入都会落日志。三步写出一条自定义命令整个系统就是注解 接口 注册表扩一条命令不需要动框架写命令类实现CommandHandler接口写一个execute方法。类上挂Command注解声明label命令名、aliases别名、usage/help展示的用法、permission/permissionTargeted两个权限节点、threading是否异步跑注册把类放进项目里会被启动扫描自动注册走插件的话在你的Plugin子类onEnable()里调CommandMap.getInstance().registerCommand(mycommand, new MyCommand())手动登记发提示execute里用CommandHandler.sendMessage/sendTranslatedMessage回话参数解析失败时调sendUsageMessage把用法甩给玩家权限、目标解析、UID、在线检查这些全都白送你只写业务逻辑。参考实现直接翻 src/main/java/emu/grasscutter/command/commands/ 里任何一个文件插件侧的结构见 src/main/java/emu/grasscutter/plugin/仓库根目录的plugin-schema.json是插件元数据的格式说明。常见报错往哪儿查看到的提示含义处理unknown command标签和别名都没匹配上/help里核对拼写很多命令有别名permission error缺权限节点/help 命令看它要哪个节点/permission add补上invalid uid后面找不到这个 UID/账号确认对方账号存在名字里别带空格need target / need target online命令要求在线目标但没给加UID或先用/target锁定再就是翻日志确认logCommands已开启找到那行Command used by ...参数原样都在。版本与命令的对应关系以源码为准最新状态看 src/main/java/emu/grasscutter/command/ 目录更多上手内容在 docs/README_zh-CN.md想给社区加功能可以读一下 CONTRIBUTING.md。把/help、/give、/tp这三条练熟日常私服管理基本就够用了剩下的命令都遵循同一套目标 权限节点的规矩照着/help的输出抄参数就行。【免费下载链接】GrasscutterA server software reimplementation for a certain anime game.项目地址: https://gitcode.com/GitHub_Trending/gr/Grasscutter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考