我的世界服务器想只给别人tp权限,最靠谱的做法是使用权限插件(比如LuckPerms)单独赋予该玩家对应权限节点,而不是直接给他OP。这样既能保留传送功能,又不会让玩家摸到管理权限,下面从权限来源、具体命令、常见坑位和取消方法一条条说清楚。
我的世界服务器怎么只给别人tp权限?先搞懂权限从哪来
很多服务器新手容易把“tp权限”和“OP权限”混为一谈,tp只是众多命令中的一个权限点,要给玩家单独开放它,首先要搞清楚你的服务器权限体系长什么样。
- 原版OP权限:全套命令权限,给某个玩家OP之后,他连
/ban、/gamemode甚至/stop都能用,完全不受控。 - 权限组插件:比如LuckPerms、GroupManager,可以做到只给某个玩家“tp”这一个节点,其他管理命令一概不给。
- 命令方块或后台控制台:只能由服主主动执行tp操作,玩家自己没法触发,这不叫“给权限”。
行业共识认为,使用权限插件比直接给OP更安全,这是绝大多数长期运营的服务器都在用的方案。
原版命令下给玩家tp权限的限制
如果你的服务器是纯原版,没有装任何插件,那“只给某个人tp权限”基本做不到,原版服务器只有OP和非OP两种状态,没有中间选项,你当然可以让你朋友用OP,但他同时也能看到服务器里所有玩家坐标、踢人、改游戏模式,所以想要精准控制,第一步就是装权限插件,这也是很多服主问“我的世界服务器怎么做传送权限”时,得到的答案都是“先装LuckPerms”的原因。
我的世界服务器给玩家tp权限的常用命令与操作步骤
这一部分直接上实操,以下命令适用于Java版Spigot/Paper类服务器,根据你用的插件不同,有两种主流方案。
用LuckPerms只给某个玩家tp权限
LuckPerms是目前最流行的权限管理插件,支持单玩家权限覆盖,假设你已经装好LuckPerms,在游戏内或控制台执行:
/lp user 玩家名 permission set minecraft.command.tp true
这条命令的意思是:给指定玩家单独开通原版 /tp 命令的权限,这个权限节点允许他传送到任意在线玩家或坐标,注意这里不用给小写“tp”误写成大写,权限节点全部小写。
完整操作路径:
- 输入
/lp user 玩家名 permission set minecraft.command.tp true - 输入
/lp sync让权限立即生效 - 让玩家退出并重新进入服务器
- 让玩家在聊天框输入
/tp 你的游戏ID测试
如果玩家能成功传送,说明权限已经给到位,如果提示“你没有权限”,再检查两点:一是服务端是否装了Essentials,二是权限是否被插件冲突覆盖。
这里插一句:很多服主问“我的世界服务器op怎么给传送权限”,其实用LuckPerms给权限节点就行了,根本不需要碰OP。
用EssentialsX给玩家tp权限
如果你服务器安装的是EssentialsX,/tp 这个命令实际上是被Essentials接管的,你需要给的不是原版节点,而是Essentials的权限节点:
essentials.tp:允许使用/tpessentials.tp.others:允许传送到其他玩家身边
给单个玩家添加权限,用GroupManager或LuckPerms区别不大,以LuckPerms为例:
/lp user 玩家名 permission set essentials.tp true/lp user 玩家名 permission set essentials.tp.others true
如果用的是GroupManager,则命令为:
/manuaddp 玩家名 essentials.tp/manuaddp 玩家名 essentials.tp.others
注意,当Essentials和原版tp命令冲突时,玩家输入的 /tp 会优先被Essentials处理,所以只给原版节点是不够的,必须把Essentials对应的节点也加上。
我的世界服务器只给某个玩家tp权限,如何避免误给OP
很多新手服主嫌麻烦,直接 /op 玩家名 然后跟玩家说“你去用/tp吧”,这等于把你的服务器钥匙也交出去了,正确做法是让这个玩家的权限与OP彻底隔离。
创建独立权限组并只加入一个玩家
如果你以后可能会给更多人开tp权限,推荐单独建一个权限组,以LuckPerms为例:
- 创建权限组:
/lp creategroup tper - 给这个组添加tp权限:
/lp group tper permission set minecraft.command.tp true
- 把玩家加进组:
/lp user 玩家名 parent add tper - 检查玩家权限:
/lp user 玩家名 info
这样这个玩家只继承“tper”组的权限,如果你已经在组里配置了其他基础权限(比如聊天、进服),也不会受影响,以后想加人,直接把他加入这个组就行。
验证权限是否真的只包含tp
在游戏内执行:
/lp user 玩家名 checkpermission minecraft.command.tp
返回 true 就说明tp权限已生效,想检测他能不能用别的管理命令,就输入:
/lp user 玩家名 checkpermission minecraft.command.ban
正常应该返回 false,如果返回 true,说明玩家仍继承了其他权限组的OP权限,需要排查他所在的权限组是否被授予了过大的权限。
我的世界服务器做传送权限时容易踩的坑
给tp权限看起来简单,但我在很多服务器后台见过因为权限配置错误导致的奇葩问题,比较常见的有这么几个:
- 权限节点拼错:
minecraft.command.tp和minecraft.command.to不一样,别凭印象打。 - 版本差异:Java原版在1.12、1.16、1.20等版本中tp权限节点基本稳定,但某些Mod服(Forge/Fabric)的权限API不同,可能需要给mod自己的传送权限节点。
- 插件指令优先级:如果同时装了Essentials和LuckPerms,玩家输入
/tp时命令会被Essentials截胡,你必须把essentials.tp也加上才能生效。 - 只给tp权限但没有给“传送到别人身边”的权限:在原版节点下其实没这个问题,但在Essentials里,
essentials.tp只能让玩家传送,不能传送到别人,需要额外加essentials.tp.others。
如果你只是想开放一个公共传送点,比如让玩家在主城之间飞来飞去,那完全不需要给个人tp权限,直接在传送点位置放命令方块,或者在服务器安装传送门插件,让玩家踩踏板触发 /tp 更安全,这种场景下,个人tp权限反而容易出乱子。
我的世界服务器给别人tp权限后如何取消
取消权限和给权限一样简单,关键是别漏掉两个地方:权限节点和权限组。
- 单玩家节点取消:
/lp user 玩家名 unset minecraft.command.tp - 从权限组移除:
/lp user 玩家名 parent remove tper - 如果是Essentials节点:
/lp user 玩家名 unset essentials.tp - 最后执行
/lp sync并让玩家重进。
取消完之后也要用 checkpermission 验证一下,确保玩家真的没有tp权限了,这一步很重要,因为有些权限组继承关系会把节点重新带回来。
所以回头看,我的世界服务器怎么只给别人tp权限?答案就是:用权限插件精确分配,而不是整体放权。 这个逻辑适合所有面向朋友开放的私人服务器:对方想要传送功能,你就给他传送功能,其他什么都不给,只要权限节点清晰,服务器后期出问题的概率会低很多。
我的世界服务器怎么只给别人tp权限?常见问题解答
给了tp权限是不是等于给了OP?
不等于,OP是服务器最高权限,能执行所有命令,tp权限只是单独允许使用 /tp 这一个命令,用LuckPerms给玩家 minecraft.command.tp 节点后,玩家不能执行 /ban、/gamemode、/stop 等管理指令,只有输入 /op 玩家名 才算是真正给了OP。
玩家拿到tp权限后怎么用?
玩家只需在聊天框输入 /tp 目标玩家ID,就能传送到目标身边,如果服务器装有Essentials,则可能需要使用 /tp 或 /tpa,具体看服务器指令接管情况,权限生效时,玩家会看到白色或黄色提示,告知传送成功,没有权限时,系统会返回“你没有权限执行此命令”。
tp权限节点在不同版本服务器上一样吗?
原版Java服务端从1.12到现在,tp命令的权限节点基本保持为 minecraft.command.tp,但Mod服和装了传送插件的服务端会有自己的节点,例如Essentials使用的是 essentials.tp,最稳妥的办法是装好LuckPerms后,让玩家试用一次,再根据后台日志判断实际调用了哪个命令的权限。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/742434.html





