Fix: motd showing incorrect version
This commit is contained in:
1 parent
2ed077ceeb
commit
a733806f6e
3 files changed
+9
-15
No files matched your search
@@ -4,10 +4,7 @@ import io.ib67.sfcraft.util.MixinHelper;
|
||||
import io.ib67.sfcraft.util.SFConsts;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Constant;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyConstant;
|
||||
import org.spongepowered.asm.mixin.injection.*;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(MinecraftServer.class)
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraft.network.ClientConnection;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.ServerMetadata;
|
||||
import net.minecraft.server.network.ServerHandshakeNetworkHandler;
|
||||
import org.spongepowered.asm.mixin.Debug;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
@@ -13,6 +14,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
@Mixin(ServerHandshakeNetworkHandler.class)
|
||||
@Debug(export = true)
|
||||
public abstract class ServerHandshakeNetworkHandlerMixin {
|
||||
@Shadow
|
||||
@Final
|
||||
@@ -20,6 +22,11 @@ public abstract class ServerHandshakeNetworkHandlerMixin {
|
||||
|
||||
@Redirect(method = "onHandshake", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;getServerMetadata()Lnet/minecraft/server/ServerMetadata;"))
|
||||
public ServerMetadata getMetadata(MinecraftServer instance) {
|
||||
return SFCallbacks.MOTD.invoker().onMotd(instance,connection);
|
||||
var result = SFCallbacks.MOTD.invoker().onMotd(instance,connection);
|
||||
if(result == null) {
|
||||
return instance.getServerMetadata();
|
||||
}else{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,19 +3,14 @@ package io.ib67.sfcraft.module;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provides;
|
||||
import com.google.inject.Singleton;
|
||||
import io.ib67.sfcraft.callback.SFCallbacks;
|
||||
import io.ib67.sfcraft.inject.MinecraftServerSupplier;
|
||||
import io.ib67.sfcraft.util.Helper;
|
||||
import io.ib67.sfcraft.ServerModule;
|
||||
import io.ib67.sfcraft.config.ConfigResources;
|
||||
import io.ib67.sfcraft.inject.ConfigResource;
|
||||
import io.ib67.sfcraft.inject.ConfigRoot;
|
||||
import net.minecraft.network.ClientConnection;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.ServerMetadata;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Optional;
|
||||
|
||||
public class MotdModule extends ServerModule {
|
||||
@Inject
|
||||
@@ -29,11 +24,6 @@ public class MotdModule extends ServerModule {
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
motd = getMotd(configRoot);
|
||||
SFCallbacks.MOTD.register(this::onMotd);
|
||||
}
|
||||
|
||||
private ServerMetadata onMotd(MinecraftServer minecraftServer, ClientConnection clientConnection) {
|
||||
return minecraftServer.getServerMetadata(); // it works, but who knows why?
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user