Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NeoForge Platform Support #3781

Merged
merged 49 commits into from
Feb 23, 2024
Merged

NeoForge Platform Support #3781

merged 49 commits into from
Feb 23, 2024

Conversation

Redned235
Copy link
Member

@Redned235 Redned235 commented May 20, 2023

Adds support for Geyser to run on the Forge platform.

Additionally, these changes require that we bump the Java version project-wide from 16 to 17, meaning that this should not be merged until after 1.20 is released, as we are not planning to bump the version any earlier than that.

Things left to do:

@onebeastchris
Copy link
Member

This will close #2502

@@ -42,4 +42,4 @@ public abstract class PathPackCodec extends PackCodec {
*/
@NonNull
public abstract Path path();
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:(

@Konicai Konicai added the PR: Feature When a PR implements a new feature label Jun 18, 2023
@Atten007
Copy link

Atten007 commented Aug 7, 2023

Is this still being worked on? Or can this be closed? I need to have a Geyser Jar for Forge.

@toinouH
Copy link
Contributor

toinouH commented Aug 7, 2023

@Atten007 There is no ETA on the merge for now. We have lifes outside of Geyser (sorry ^^).
You can still use Geyser Standalone to work around this like people have been doing this for years now ^^

@Camotoy Camotoy added PR: On hold When a PR is on hold like if it requires a dependency to be updated first Waiting For Minecraft Update When a PR or issue likely won't be resolved before the next Minecraft update. labels Aug 31, 2023
@Camotoy
Copy link
Member

Camotoy commented Aug 31, 2023

This PR will likely remain on hold until post-1.20.2 as we see how the modding community (which we're not really a part of) evolves with the Forge/NeoForge split.

@Konicai Konicai mentioned this pull request Sep 1, 2023
@Konicai Konicai removed the Waiting For Minecraft Update When a PR or issue likely won't be resolved before the next Minecraft update. label Sep 29, 2023
…tform

# Conflicts:
#	.github/workflows/build.yml
#	api/src/main/java/org/geysermc/geyser/api/util/PlatformType.java
#	bootstrap/fabric/src/main/resources/geyser-fabric.mixins.json
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/command/ModCommandSender.java
#	build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts
#	build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts
#	core/src/main/java/org/geysermc/geyser/session/GeyserSession.java
#	gradle.properties
#	gradle/libs.versions.toml
- set custom refmap name
- fixed console commands crashing the server (hasPermission now accepts CommandSourceStack instead of Player)
- Forge wants fastutil relocated, so be it

Current issues:
- ClassNotFound exceptions with classes that are clearly present
Update feature/forge-platform to 1.20.2
…tform

# Conflicts:
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/ModPingPassthrough.java
@onebeastchris onebeastchris changed the title Forge Platform Support NeoForge Platform Support Jan 21, 2024
@onebeastchris onebeastchris added PR: Needs review Indicates that a PR is functional and review-ready. and removed PR: On hold When a PR is on hold like if it requires a dependency to be updated first labels Feb 2, 2024
…tform

# Conflicts:
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/command/GeyserModCommandExecutor.java
#	bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/mixin/client/IntegratedServerMixin.java
- fix duplicate nodes crashing neoforge
- connector -> geyser in GeyserModCommandExecutor
- create command manager early to fix issues with permission gather event
public class GeyserModCompressionDisabler extends ChannelOutboundHandlerAdapter {

@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we can detect a Bedrock player correctly, we could just Mixin where ClientboundLoginCompression is sent and just not send it, instead of this class. Not a stopper for a merge though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A mixin would be cleaner, but I think we'd then have to account for Floodgate and whatever UUID's is then used? Assuming that UUIDs is how we'd identify Bedrock players there.
Furthermore, unlike a mixin, this is less prone to mixin conflicts and version safe; so I personally would leave it at the current solution

@onebeastchris onebeastchris merged commit 97fc2de into master Feb 23, 2024
2 checks passed
@onebeastchris onebeastchris deleted the feature/forge-platform branch February 23, 2024 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: Feature When a PR implements a new feature PR: Needs review Indicates that a PR is functional and review-ready.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants