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 io.ib67.sfcraft.util.SFConsts;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.*;
|
||||||
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.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(MinecraftServer.class)
|
@Mixin(MinecraftServer.class)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import net.minecraft.network.ClientConnection;
|
|||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.ServerMetadata;
|
import net.minecraft.server.ServerMetadata;
|
||||||
import net.minecraft.server.network.ServerHandshakeNetworkHandler;
|
import net.minecraft.server.network.ServerHandshakeNetworkHandler;
|
||||||
|
import org.spongepowered.asm.mixin.Debug;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
@@ -13,6 +14,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
@Mixin(ServerHandshakeNetworkHandler.class)
|
@Mixin(ServerHandshakeNetworkHandler.class)
|
||||||
|
@Debug(export = true)
|
||||||
public abstract class ServerHandshakeNetworkHandlerMixin {
|
public abstract class ServerHandshakeNetworkHandlerMixin {
|
||||||
@Shadow
|
@Shadow
|
||||||
@Final
|
@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;"))
|
@Redirect(method = "onHandshake", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;getServerMetadata()Lnet/minecraft/server/ServerMetadata;"))
|
||||||
public ServerMetadata getMetadata(MinecraftServer instance) {
|
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.Inject;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import io.ib67.sfcraft.callback.SFCallbacks;
|
|
||||||
import io.ib67.sfcraft.inject.MinecraftServerSupplier;
|
import io.ib67.sfcraft.inject.MinecraftServerSupplier;
|
||||||
import io.ib67.sfcraft.util.Helper;
|
import io.ib67.sfcraft.util.Helper;
|
||||||
import io.ib67.sfcraft.ServerModule;
|
import io.ib67.sfcraft.ServerModule;
|
||||||
import io.ib67.sfcraft.config.ConfigResources;
|
import io.ib67.sfcraft.config.ConfigResources;
|
||||||
import io.ib67.sfcraft.inject.ConfigResource;
|
import io.ib67.sfcraft.inject.ConfigResource;
|
||||||
import io.ib67.sfcraft.inject.ConfigRoot;
|
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.nio.file.Path;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class MotdModule extends ServerModule {
|
public class MotdModule extends ServerModule {
|
||||||
@Inject
|
@Inject
|
||||||
@@ -29,11 +24,6 @@ public class MotdModule extends ServerModule {
|
|||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
motd = getMotd(configRoot);
|
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
|
@Override
|
||||||
|
|||||||
Reference in new issue
Block a user