Floodgate icon indicating copy to clipboard operation
Floodgate copied to clipboard

Hope to support online mode

Open MC-Nirvana opened this issue 2 weeks ago • 19 comments

中文版 我的服务器是Online模式的Velocity多服务器集群,目前想在服务器中安装一些优化Bedrock玩家游戏体验的插件(比如Bedrock风格的自定义菜单,优化Bedrock体验的TPA等),但这些插件都有一个共同点那就是强制要求服务器安装FloodGate,但如果我安装了FloodGate,那么Bedrock玩家将无法使用正版登录(除非使用Player Link绑定账户),我希望可以根据入口端的Geyser插件来判断登录模式(在我的场景下,也就是在将Velocity端的Geyser设置为online模式,并且安装了floodgate后,玩家进入服务器时依旧需要通过弹出来的Microsoft账户登录窗口来使用已经购买了Minecraft Java Edition的Microsoft账户进行登录,而不是直接进入服务器。我个人认为,既然Geyser的config.yml中已经设定了auth-type: online,那么就不应该强制要求在安装Floodgate后直接进入服务器。)

我的后端子服务器版本:Paper 1.21.10 我的velocity版本:3.4.0 我的geyser版本:Build #999 我的floodgate版本:Build #121 我的操作系统版本:debian 13(docker)

English version My server is a Velocity multi server cluster in online mode. Currently, I want to install some plugins to optimize the gaming experience of Bedrock players on the server (such as custom menus in Bedrock style, TPA to optimize Bedrock experience, etc.), but these plugins all have one thing in common, which is to force the server to install FloodGate. However, if I install FloodGate, Bedrock players will not be able to use legitimate login (unless they bind their accounts with Player Link). I hope to determine the login mode based on the Geyser plugin on the portal (in my scenario, when setting Geyser on the Velocity side to online mode and installing FloodGate, players will enter the server). You still need to use the Microsoft account login window that pops up to use the Microsoft account that has already purchased Minecraft Java Edition Log in to the account instead of directly accessing the server. I personally believe that since auth-type: online has already been set in Geyser's config.yml, it should not be mandatory to enter the server directly after installing Floodgate

My sub-server version:Paper 1.21.10 My velocity version:3.4.0 My geyser version:Build #999 My floodgate version:Build #121 My system verison:debian 13(docker)

MC-Nirvana avatar Dec 03 '25 17:12 MC-Nirvana

auth-type: floodgate and install the floodgate plugin, should remove the requirement for bedrock players to login as a java account

rtm516 avatar Dec 03 '25 22:12 rtm516

auth-type: floodgate and install the floodgate plugin, should remove the requirement for bedrock players to login as a java account

中文版 为什么要这样做呢?如果必须这样的话我建议把FloodGate中的Bedrock体验优化部分(也就是FloodGate API)剥离出来单独做成一个插件。不然online模式下的服务器会有一定的风险。(众所周知,Minecraft Bedrock Edition与Java Edition的购买方式不同,Java Edition是购买账号的正版授权,而Bedrock是购买游戏本体。正是因为如此,Bedrock Edition存在破解的版本,那些破解掉游戏本体的人只需要一个Microsoft账户(无论你是否购买了对应平台的Minecraft Bedrock Edition)即可登录并正常游戏。)而这就出现了风险。  现在的问题是,我的服务器是Online模式的Velocity多服务器集群,并且安装了Geyser来支持Bedrock玩家进入服务器游玩(验证与Java Edition一致,需要购买了Minecraft Java Edition的Microsoft账户)。但部分操作体验(比如/tpa、/tpahere和服务器的部分箱子菜单)需要专门的插件进行体验优化(也就是专门制作一个Bedrock Form)但这些插件无一例外都调用了FloodGate API,可我如果在后端服务器和Velocity代理端安装了FloodGate,Bedrock玩家将可以直接进入而不需要购买了Minecraft Java Edition的Microsoft账户,这有一定的风险。但如果不装FloodGate,这些优化Bedrock玩家体验的插件我将无法安装。因为它们的必须的依赖是FloodGate。

English version Why do we have to do this? If necessary, I suggest separating the Bedrock experience optimization part (i.e. FloodGate API) from FloodGate and creating a separate plugin. Otherwise, servers in online mode may pose certain risks. As is well known, the purchase methods for Minecraft Bedrock Edition and Java Edition are different. Java Edition is the legitimate authorization for purchasing accounts, while Bedrock is the purchase of the game itself. That's why Bedrock Edition has cracked versions, and those who crack the game only need a Microsoft account (regardless of whether you have purchased the corresponding platform's Minecraft Bedrock Edition) to log in and play normally. )And this creates a risk. The current issue is that my server is a Velocity multi server cluster in online mode, and Geyser is installed to support Bedrock players to enter the server for gameplay (verification is consistent with Java Edition, requiring a Microsoft account to purchase Minecraft Java Edition). But some operational experiences (such as/tpa,/tphere, and some box menus on the server) require specialized plugins for experience optimization (that is, creating a Bedrock Form specifically), but these plugins all call the FloodGate API without exception. However, if I install FloodGate on the backend server and Velocity agent, Bedrock players will be able to directly enter without purchasing a Microsoft account for Minecraft Java Edition, which carries certain risks. But without installing FloodGate, I won't be able to install these plugins that optimize the Bedrock player experience. Because their essential dependency is FloodGate.

MC-Nirvana avatar Dec 03 '25 22:12 MC-Nirvana

auth-type: floodgate and install the floodgate plugin, should remove the requirement for bedrock players to login as a java account

中文版 我自然知道将auth-type的值设置为floodgate以激活FloodGate登录模式,但是我的需求仅仅是使用依赖它的那些Bedrock体验优化插件,而并非FloodGate的登录模式。

English version I naturally know to set the auth type value to floodgate to activate the floodgate login mode, but my requirement is only to use the Bedrock experience optimization plugins that depend on it, not the floodgate login mode.

MC-Nirvana avatar Dec 03 '25 22:12 MC-Nirvana

Can we please use DeepL: https://www.deepl.com/en/translator

SleepyPopp avatar Dec 03 '25 23:12 SleepyPopp

We can’t really comprehend what you’re saying.

SleepyPopp avatar Dec 03 '25 23:12 SleepyPopp

Also, floodgate isn’t needed for bedrock crossplay, geyser handles that.

SleepyPopp avatar Dec 03 '25 23:12 SleepyPopp

But if the plugins require floodgate then you have to use the floodgate auth mode

rtm516 avatar Dec 03 '25 23:12 rtm516

In summary, you want plugins that utilize the Floodgate API to work even without Floodgate, or with Floodgate and Geyser while online mode is enabled. Is that correct?

While we cannot solve all use cases of other plugins expecting players to authenticate with Floodgate installed, we have a merge planned where Floodgate will be built into Geyser. When this happens, even if you're not using the Floodgate authentication type, the API should still work. However, this will take some time before it is implemented, and we ask for your patience as we work towards that goal.

Camotoy avatar Dec 03 '25 23:12 Camotoy

As an alternative while we work on that, Floodgate's config has a require-link section under player-link that forces players to join the server linked, which should satisfy your needs.

Camotoy avatar Dec 03 '25 23:12 Camotoy

In summary, you want plugins that utilize the Floodgate API to work even without Floodgate, or with Floodgate and Geyser while online mode is enabled. Is that correct?

While we cannot solve all use cases of other plugins expecting players to authenticate with Floodgate installed, we have a merge planned where Floodgate will be built into Geyser. When this happens, even if you're not using the Floodgate authentication type, the API should still work. However, this will take some time before it is implemented, and we ask for your patience as we work towards that goal.

中文版 可以这么理解(你们如果看不懂翻译后的英文,可以直接把中文原文翻译一下。我是用AI翻译的)。 我的诉求就是在启用Geyser的online模式且安装有FloodGate的情况下,不要直接登录到游戏(也就是不要使用Bedrock的账户)。并且还有一个问题,如果按你们的规划FloodGate API要集成到Geyser,那么像我这种Velocity服务器集群该怎么办?Velocity代理和后端服务器都需要安装Geyser吗?

English version It can be understood in this way (if you don't understand the translated English, you can directly translate the original Chinese text. I used AI to translate it).

My appeal is not to log in to the game directly when Geyser's online mode is enabled and FloodGate is installed (that is, don't use Bedrock's account). And there is another question. If FloodGate API is to be integrated into Geyser according to your plan, what should be done with a Velocity server cluster like me? Do both Velocity proxy and back-end server need to install Geyser?

MC-Nirvana avatar Dec 03 '25 23:12 MC-Nirvana

When running a Java Edition Proxy like Velocity, Geyser cannot be installed on back-end servers. Using Camotoy's suggestion of setting require-link in your Floodgate config will satisfy your requirements (see config here: https://github.com/GeyserMC/Floodgate/blob/master/core/src/main/resources/config.yml#L32). With this enabled, Bedrock players will be unable to join your server without linking a Minecraft: Java Edition account.

Kas-tle avatar Dec 03 '25 23:12 Kas-tle

中文版

既然Geyser有auth-type这个选项,那么当这个选项的值为online且安装FloodGate时,bedrock玩家进入服务器应该依旧需要登录Java Edition账户并使用Java Edition账户进入游戏。而不是直接以Bedrock账户(ID前带“.”的ID进入游戏。这样既可以解决那些使用了floodgate api的插件的使用问题,也解决了在online服务器上使用floodgate后bedrock玩家无需购买了Java edition的Microsoft账户即可进入服务器的风险。

English version Since Geyser has the auth-type option, when the value of this option is online and FloodGate is installed, bedrock players should still need to log in to the Java Edition account and use the Java Edition account to enter the game to enter the server. Instead of directly using the Bedrock account (with "." in front of ID) The ID enters the game. This can not only solve the problem of using the plug-in using floodgate api, but also solve the risk that bedrock players can enter the server without purchasing a Microsoft account of Java edition after using floodgate on the online server.

MC-Nirvana avatar Dec 03 '25 23:12 MC-Nirvana

This can not only solve the problem of using the plug-in using floodgate api, but also solve the risk that bedrock players can enter the server without purchasing a Microsoft account of Java edition after using floodgate on the online server.

With require-link enabled and auth-type: floodgate, players will not be allowed to join without a linked Java Edition account, and will join under their Java Edition username and UUID.

Kas-tle avatar Dec 03 '25 23:12 Kas-tle

This can not only solve the problem of using the plug-in using floodgate api, but also solve the risk that bedrock players can enter the server without purchasing a Microsoft account of Java edition after using floodgate on the online server.

With require-link enabled and auth-type: floodgate, players will not be allowed to join without a linked Java Edition account, and will join under their Java Edition username and UUID.

中文版 这个我试了下,要求使用Global Link。这个在我的环境下不太合适。而不使用Global Link的话,Bedrock玩家无法登录服务器(提示如下:[07:53:57 INFO] [geyser]: MCNirvana 已因 floodgate.core.not_linked https://link.geysermc.org/ 与 Java 服务器断开了连接)

English version I tried this, and it requires using Global Link. This isn't quite suitable for my environment. Without Global Link, Bedrock players cannot log into the server (with the following message: [07:53:57 INFO] [geyser]: MCNirvana has disconnected from the Java server due to floodgate.core.not_linkedhttps://link.geysermc.org/).

MC-Nirvana avatar Dec 03 '25 23:12 MC-Nirvana

Global Linking is not strictly required for this feature. However, to setup local linking with require-link, you would need a separate server linked to the same self-hosted linking database for the sole purpose of allowing players to join and link their accounts. This is admittedly not an ideal solution, and as Camotoy has previously stated, should be addressed in the future by the Floodgate rewrite. This is, however, a long term project with no projected completion date as of now.

Kas-tle avatar Dec 04 '25 00:12 Kas-tle

Global Linking is not strictly required for this feature. However, to setup local linking with require-link, you would need a separate server linked to the same self-hosted linking database for the sole purpose of allowing players to join and link their accounts. This is admittedly not an ideal solution, and as Camotoy has previously stated, should be addressed in the future by the Floodgate rewrite. This is, however, a long term project with no projected completion date as of now.

中文版 实际上经过测试,会卡在link的步骤中,因为其中一个步骤是需要bedrock账户输入对应的命令,但如果开启了require-link,则bedrock玩家因无法进入服务器从而无法输入这个命令完成link。

English version In practice, testing reveals that the process gets stuck at the linking step. This occurs because one of the steps requires a Bedrock account to enter a specific command. However, if require-link is enabled, Bedrock players cannot access the server and thus cannot enter this command to complete the linking process.

MC-Nirvana avatar Dec 04 '25 00:12 MC-Nirvana

In practice, testing reveals that the process gets stuck at the linking step. This occurs because one of the steps requires a Bedrock account to enter a specific command. However, if require-link is enabled, Bedrock players cannot access the server and thus cannot enter this command to complete the linking process.

We are aware of this limitation. This is why I stated in my response that when using require-link and local linking together, a separate server (e.g. a void world) without require-link would need to be run exclusively for handling linking.

Kas-tle avatar Dec 04 '25 02:12 Kas-tle

In practice, testing reveals that the process gets stuck at the linking step. This occurs because one of the steps requires a Bedrock account to enter a specific command. However, if require-link is enabled, Bedrock players cannot access the server and thus cannot enter this command to complete the linking process.

We are aware of this limitation. This is why I stated in my response that when using require-link and local linking together, a separate server (e.g. a void world) without require-link would need to be run exclusively for handling linking.

中文版 不过这样操作的话,会很麻烦(无论是从玩家方面还是维护方面都一样)。因此我还是希望FloodGate现版本(在开发组实现将Floodgate API集成到Geyser之前)允许online模式登录(这样既可以使用Microsoft账户直接登录Java Edition的游戏账号,也可以使用那些依赖FloodGate API的服务器插件)

并且我还有一个疑问,如果未来开发组真的将FloodGate API集成到Geyser中了,那么Velocity或BungeeCord服务器集群该怎么使用呢?据我所知那些依赖FloodGate的插件无一例外全是Spigot插件(也就是说需要安装在后端子服务器上而并非安装在Velocity、BungeeCord上)。那么这种情况我们这些用户又该如何解决这个问题呢?

English version However, implementing this approach would be quite cumbersome (both for players and maintenance). Therefore, I still hope that the current version of FloodGate (before the development team integrates the FloodGate API into Geyser) will allow online mode login. This would enable direct login to Java Edition game accounts using Microsoft accounts, as well as support for server plugins that rely on the FloodGate API.

Additionally, I have a question: if the development team does integrate the FloodGate API into Geyser in the future, how should Velocity or BungeeCord server clusters be used? To my knowledge, all plugins that rely on FloodGate are exclusively Spigot plugins (meaning they must be installed on the backend server rather than on Velocity or BungeeCord). In such a scenario, how should we users resolve this issue?

MC-Nirvana avatar Dec 04 '25 18:12 MC-Nirvana

In practice, testing reveals that the process gets stuck at the linking step. This occurs because one of the steps requires a Bedrock account to enter a specific command. However, if require-link is enabled, Bedrock players cannot access the server and thus cannot enter this command to complete the linking process.

We are aware of this limitation. This is why I stated in my response that when using require-link and local linking together, a separate server (e.g. a void world) without require-link would need to be run exclusively for handling linking.

中文版 不过这样操作的话,会很麻烦(无论是从玩家方面还是维护方面都一样)。因此我还是希望FloodGate现版本(在开发组实现将Floodgate API集成到Geyser之前)允许online模式登录(这样既可以使用Microsoft账户直接登录Java Edition的游戏账号,也可以使用那些依赖FloodGate API的服务器插件)

并且我还有一个疑问,如果未来开发组真的将FloodGate API集成到Geyser中了,那么Velocity或BungeeCord服务器集群该怎么使用呢?据我所知那些依赖FloodGate的插件无一例外全是Spigot插件(也就是说需要安装在后端子服务器上而并非安装在Velocity、BungeeCord上)。那么这种情况我们这些用户又该如何解决这个问题呢?

English version However, implementing this approach would be quite cumbersome (both for players and maintenance). Therefore, I still hope that the current version of FloodGate (before the development team integrates the FloodGate API into Geyser) will allow online mode login. This would enable direct login to Java Edition game accounts using Microsoft accounts, as well as support for server plugins that rely on the FloodGate API.

Additionally, I have a question: if the development team does integrate the FloodGate API into Geyser in the future, how should Velocity or BungeeCord server clusters be used? To my knowledge, all plugins that rely on FloodGate are exclusively Spigot plugins (meaning they must be installed on the backend server rather than on Velocity or BungeeCord). In such a scenario, how should we users resolve this issue?

MC-Nirvana avatar Dec 04 '25 19:12 MC-Nirvana