The-Cat-Town-Craft / Carpet-TCTC-Addition

A fabric-carpet extension mod. It offers some interesting features.
https://www.curseforge.com/minecraft/mc-mods/carpet-tctc-addition
GNU Lesser General Public License v3.0
30 stars 4 forks source link

[Bug] freecam功能漏洞使玩家可以在多人游戏中传送 #12

Closed Glucy-2 closed 1 year ago

Glucy-2 commented 1 year ago

Minecraft Version

1.19.3

Carpet TCTC Addition Version

2.0.185+94d5321

Description

在多人游戏中,玩家使用freecam功能,处于旁观者模式时重进多人游戏服务器,玩家会以生存模式登录在之前以旁观者模式下线的位置,这相当于玩家进行了传送

To Reproduce

开启一个包含Carpet-TCTC-Addition的服务器,玩家进入并使用freecam功能,处于旁观者模式时重进,玩家会以生存模式登录在之前以旁观者模式下线的位置

Expected behavior

玩家在旁观者模式下线并重新上线时以旁观者模式登录,退出freecam功能时回到上次进入freecam的位置,或上线时直接以生存模式登录原来进入freecam的位置

Log

No response

Latest CI build tested

Hendrix-Shen commented 1 year ago

若 server.properties 中 force-gamemode 选项为 true,则会导致此问题。

Glucy-2 commented 1 year ago

那能否在force-gamemode选项为true时,玩家重新登录服务器回到原来的位置?也许更改player.dat也许可以实现

Hendrix-Shen commented 1 year ago

未来版本将会实现此功能。

Hendrix-Shen commented 1 year ago

研究了下,个人比较倾向于在玩家处于Freecam模式下时,登录不强制变更游戏模式。因为如果玩家登录服务器加载地形会有一段无法操作的空窗期,如果玩家被拉回的位置不安全,则可能导致玩家受伤/死亡的情况,所以应该给玩家一个自行选择的权利。

Hendrix-Shen commented 1 year ago

目前特性为force-gamemode=true时,按照关闭freecam流程处理,即当规则freecamRestoreLocation启用时,重新上线后以正确的游戏模式以及开启freecam前的位置登录

Hendrix-Shen commented 1 year ago

尝试使用此版本2.0.187+340ae0f