Initial 1.21.3 changes for mod platforms

This commit is contained in:
onebeastchris 2024-10-25 02:15:51 +08:00
parent e17ad64d8c
commit 1a04aa6ea6
11 changed files with 32 additions and 22 deletions

View file

@ -32,7 +32,7 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer;
import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.GeyserImpl;
import org.geysermc.geyser.command.CommandRegistry; import org.geysermc.geyser.command.CommandRegistry;
import org.geysermc.geyser.command.CommandSourceConverter; import org.geysermc.geyser.command.CommandSourceConverter;
@ -80,7 +80,7 @@ public class GeyserFabricBootstrap extends GeyserModBootstrap implements ModInit
var sourceConverter = CommandSourceConverter.layered( var sourceConverter = CommandSourceConverter.layered(
CommandSourceStack.class, CommandSourceStack.class,
id -> getServer().getPlayerList().getPlayer(id), id -> getServer().getPlayerList().getPlayer(id),
Player::createCommandSourceStack, ServerPlayer::createCommandSourceStack,
() -> getServer().createCommandSourceStack(), // NPE if method reference is used, since server is not available yet () -> getServer().createCommandSourceStack(), // NPE if method reference is used, since server is not available yet
ModCommandSource::new ModCommandSource::new
); );

View file

@ -23,8 +23,8 @@
"geyser.mixins.json" "geyser.mixins.json"
], ],
"depends": { "depends": {
"fabricloader": ">=0.15.11", "fabricloader": ">=0.16.7",
"fabric": "*", "fabric": "*",
"minecraft": ">=1.21" "minecraft": ">=1.21.2"
} }
} }

View file

@ -26,7 +26,7 @@
package org.geysermc.geyser.platform.neoforge; package org.geysermc.geyser.platform.neoforge;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer;
import net.neoforged.bus.api.EventPriority; import net.neoforged.bus.api.EventPriority;
import net.neoforged.fml.ModContainer; import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod; import net.neoforged.fml.common.Mod;
@ -72,7 +72,7 @@ public class GeyserNeoForgeBootstrap extends GeyserModBootstrap {
var sourceConverter = CommandSourceConverter.layered( var sourceConverter = CommandSourceConverter.layered(
CommandSourceStack.class, CommandSourceStack.class,
id -> getServer().getPlayerList().getPlayer(id), id -> getServer().getPlayerList().getPlayer(id),
Player::createCommandSourceStack, ServerPlayer::createCommandSourceStack,
() -> getServer().createCommandSourceStack(), () -> getServer().createCommandSourceStack(),
ModCommandSource::new ModCommandSource::new
); );
@ -104,7 +104,9 @@ public class GeyserNeoForgeBootstrap extends GeyserModBootstrap {
} }
private void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) { private void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
GeyserModUpdateListener.onPlayReady(event.getEntity()); if (event.getEntity() instanceof ServerPlayer player) {
GeyserModUpdateListener.onPlayReady(player);
}
} }
@Override @Override

View file

@ -28,8 +28,8 @@ package org.geysermc.geyser.platform.mod;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOutboundHandlerAdapter; import io.netty.channel.ChannelOutboundHandlerAdapter;
import io.netty.channel.ChannelPromise; import io.netty.channel.ChannelPromise;
import net.minecraft.network.protocol.login.ClientboundGameProfilePacket;
import net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket; import net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket;
import net.minecraft.network.protocol.login.ClientboundLoginFinishedPacket;
/** /**
* Disables the compression packet (and the compression handlers from being added to the pipeline) for Geyser clients * Disables the compression packet (and the compression handlers from being added to the pipeline) for Geyser clients
@ -45,7 +45,7 @@ public class GeyserModCompressionDisabler extends ChannelOutboundHandlerAdapter
Class<?> msgClass = msg.getClass(); Class<?> msgClass = msg.getClass();
// Don't let any compression packet get through // Don't let any compression packet get through
if (!ClientboundLoginCompressionPacket.class.isAssignableFrom(msgClass)) { if (!ClientboundLoginCompressionPacket.class.isAssignableFrom(msgClass)) {
if (ClientboundGameProfilePacket.class.isAssignableFrom(msgClass)) { if (ClientboundLoginFinishedPacket.class.isAssignableFrom(msgClass)) {
// We're past the point that a compression packet can be sent, so we can safely yeet ourselves away // We're past the point that a compression packet can be sent, so we can safely yeet ourselves away
ctx.channel().pipeline().remove(this); ctx.channel().pipeline().remove(this);

View file

@ -25,13 +25,13 @@
package org.geysermc.geyser.platform.mod; package org.geysermc.geyser.platform.mod;
import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer;
import org.geysermc.geyser.Permissions; import org.geysermc.geyser.Permissions;
import org.geysermc.geyser.platform.mod.command.ModCommandSource; import org.geysermc.geyser.platform.mod.command.ModCommandSource;
import org.geysermc.geyser.util.VersionCheckUtils; import org.geysermc.geyser.util.VersionCheckUtils;
public final class GeyserModUpdateListener { public final class GeyserModUpdateListener {
public static void onPlayReady(Player player) { public static void onPlayReady(ServerPlayer player) {
// Should be creating this in the supplier, but we need it for the permission check. // Should be creating this in the supplier, but we need it for the permission check.
// Not a big deal currently because ModCommandSource doesn't load locale, so don't need to try to wait for it. // Not a big deal currently because ModCommandSource doesn't load locale, so don't need to try to wait for it.
ModCommandSource source = new ModCommandSource(player.createCommandSourceStack()); ModCommandSource source = new ModCommandSource(player.createCommandSourceStack());

View file

@ -84,7 +84,7 @@ public class GeyserModWorldManager extends GeyserWorldManager {
} }
Level level = player.level(); Level level = player.level();
if (y < level.getMinBuildHeight()) { if (y < level.getMinY()) {
return 0; return 0;
} }
@ -93,7 +93,7 @@ public class GeyserModWorldManager extends GeyserWorldManager {
return 0; return 0;
} }
int worldOffset = level.getMinBuildHeight() >> 4; int worldOffset = level.getMinY() >> 4;
int chunkOffset = (y >> 4) - worldOffset; int chunkOffset = (y >> 4) - worldOffset;
if (chunkOffset < chunk.getSections().length) { if (chunkOffset < chunk.getSections().length) {
LevelChunkSection section = chunk.getSections()[chunkOffset]; LevelChunkSection section = chunk.getSections()[chunkOffset];

View file

@ -12,7 +12,7 @@ modrinth {
versionNumber.set(projectVersion(project)) versionNumber.set(projectVersion(project))
versionType.set("beta") versionType.set("beta")
changelog.set(System.getenv("CHANGELOG") ?: "") changelog.set(System.getenv("CHANGELOG") ?: "")
gameVersions.addAll("1.21", libs.minecraft.get().version as String) gameVersions.addAll("1.21.2", libs.minecraft.get().version as String)
failSilently.set(true) failSilently.set(true)
syncBodyFrom.set(rootProject.file("README.md").readText()) syncBodyFrom.set(rootProject.file("README.md").readText())

View file

@ -6,6 +6,10 @@ plugins {
id("io.freefair.lombok") id("io.freefair.lombok")
} }
tasks.test {
enabled = false
}
dependencies { dependencies {
constraints { constraints {
implementation(libs.raknet) // Ensure protocol does not override the RakNet version implementation(libs.raknet) // Ensure protocol does not override the RakNet version

@ -1 +1 @@
Subproject commit 93f207e7e9d73f58a7c8902f7deda9dcb0524c8e Subproject commit 4594e8f88738d2e623d0854a8831b9033e60154a

View file

@ -6,7 +6,10 @@ org.gradle.parallel=true
org.gradle.caching=true org.gradle.caching=true
org.gradle.vfs.watch=false org.gradle.vfs.watch=false
# TODO remove once architectury loom updates to 1.8
loom.ignoreDependencyLoomVersionValidation=true
group=org.geysermc group=org.geysermc
id=geyser id=geyser
version=2.4.3-SNAPSHOT version=2.5.0-SNAPSHOT
description=Allows for players from Minecraft: Bedrock Edition to join Minecraft: Java Edition servers. description=Allows for players from Minecraft: Bedrock Edition to join Minecraft: Java Edition servers.

View file

@ -33,12 +33,12 @@ commodore = "2.2"
bungeecord = "a7c6ede" bungeecord = "a7c6ede"
velocity = "3.3.0-SNAPSHOT" velocity = "3.3.0-SNAPSHOT"
viaproxy = "3.3.2-SNAPSHOT" viaproxy = "3.3.2-SNAPSHOT"
fabric-loader = "0.15.11" fabric-loader = "0.16.7"
fabric-api = "0.100.1+1.21" fabric-api = "0.106.1+1.21.3"
neoforge-minecraft = "21.1.1" neoforge-minecraft = "21.3.0-beta"
mixin = "0.8.5" mixin = "0.8.5"
mixinextras = "0.3.5" mixinextras = "0.3.5"
minecraft = "1.21.1" minecraft = "1.21.3"
mockito = "5.+" mockito = "5.+"
# plugin versions # plugin versions
@ -105,7 +105,7 @@ mixinextras = { module = "io.github.llamalad7:mixinextras-common", version.ref =
minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft" } minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft" }
# Check these on https://modmuss50.me/fabric.html # Check these on https://fabricmc.net/develop/
fabric-loader = { group = "net.fabricmc", name = "fabric-loader", version.ref = "fabric-loader" } fabric-loader = { group = "net.fabricmc", name = "fabric-loader", version.ref = "fabric-loader" }
fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version.ref = "fabric-api" } fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version.ref = "fabric-api" }
@ -120,7 +120,8 @@ guava = { group = "com.google.guava", name = "guava", version.ref = "guava" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
junit = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit" } junit = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit" }
minecraftauth = { group = "net.raphimc", name = "MinecraftAuth", version.ref = "minecraftauth" } minecraftauth = { group = "net.raphimc", name = "MinecraftAuth", version.ref = "minecraftauth" }
mcprotocollib = { group = "org.geysermc.mcprotocollib", name = "protocol", version.ref = "mcprotocollib" } #mcprotocollib = { group = "org.geysermc.mcprotocollib", name = "protocol", version.ref = "mcprotocollib" }
mcprotocollib = { group = "com.github.geysermc", name = "mcprotocollib", version = "feature~1.21.2-SNAPSHOT"}
raknet = { group = "org.cloudburstmc.netty", name = "netty-transport-raknet", version.ref = "raknet" } raknet = { group = "org.cloudburstmc.netty", name = "netty-transport-raknet", version.ref = "raknet" }
terminalconsoleappender = { group = "net.minecrell", name = "terminalconsoleappender", version.ref = "terminalconsoleappender" } terminalconsoleappender = { group = "net.minecrell", name = "terminalconsoleappender", version.ref = "terminalconsoleappender" }
velocity-api = { group = "com.velocitypowered", name = "velocity-api", version.ref = "velocity" } velocity-api = { group = "com.velocitypowered", name = "velocity-api", version.ref = "velocity" }