mirror of
https://github.com/TheWhiteDog9487/ServerAddressSpaceFix.git
synced 2024-11-23 21:27:04 +08:00
0.2.1
时间:2024 10 30 主要内容: 加大剂量, 1. 以前不会对服务器列表中已经保存的服务器地址进行处理,现在只要模组处于启用状态会直接对所有地址进行消除空格替换,确保不留死角。 说人话:未安装或未启用本模组时添加的服务器地址如果有空格,在启用本模组之后会在打开“多人游戏”窗口时被处理掉。
This commit is contained in:
parent
7e6b5bea64
commit
cb7a0f57e3
@ -1,12 +0,0 @@
|
|||||||
package xyz.thewhitedog9487.mixin.client;
|
|
||||||
|
|
||||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
|
||||||
import net.minecraft.client.network.ServerInfo;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
|
||||||
|
|
||||||
@Mixin(net.minecraft.client.gui.screen.multiplayer.DirectConnectScreen.class)
|
|
||||||
public interface DirectConnectScreenAccessor {
|
|
||||||
@Accessor("addressField")
|
|
||||||
TextFieldWidget Mixin_GetAddressField();
|
|
||||||
}
|
|
@ -1,14 +1,15 @@
|
|||||||
package xyz.thewhitedog9487.mixin.client;
|
package xyz.thewhitedog9487.mixin.client;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.screen.multiplayer.AddServerScreen;
|
||||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||||
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.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import xyz.thewhitedog9487.Settings;
|
import xyz.thewhitedog9487.Settings;
|
||||||
|
|
||||||
@Mixin(net.minecraft.client.gui.screen.multiplayer.AddServerScreen.class)
|
@Mixin(AddServerScreen.class)
|
||||||
public class MixinAddServerScreen {
|
public class MixinAddServerScreen {
|
||||||
@Redirect(method = "addAndClose", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/TextFieldWidget;getText()Ljava/lang/String;", ordinal = 1))
|
@Redirect(method = "addAndClose", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/TextFieldWidget;getText()Ljava/lang/String;", ordinal = 1))
|
||||||
private String trimGetText(TextFieldWidget instance) {
|
private String trimGetText(TextFieldWidget instance) {
|
||||||
if( !Settings.ModEnabled ) { return instance.getText(); }
|
if( Settings.ModEnabled == false ) { return instance.getText(); }
|
||||||
return instance.getText().replace(" ", "");}}
|
else return instance.getText().replace(" ", "");}}
|
@ -1,16 +1,23 @@
|
|||||||
package xyz.thewhitedog9487.mixin.client;
|
package xyz.thewhitedog9487.mixin.client;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.screen.multiplayer.DirectConnectScreen;
|
||||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import xyz.thewhitedog9487.Settings;
|
import xyz.thewhitedog9487.Settings;
|
||||||
|
|
||||||
@Mixin(net.minecraft.client.gui.screen.multiplayer.DirectConnectScreen.class)
|
@Mixin(DirectConnectScreen.class)
|
||||||
|
interface DirectConnectScreenAccessor {
|
||||||
|
@Accessor("addressField")
|
||||||
|
TextFieldWidget Mixin_GetAddressField();}
|
||||||
|
|
||||||
|
@Mixin(DirectConnectScreen.class)
|
||||||
public class MixinDirectConnectScreen {
|
public class MixinDirectConnectScreen {
|
||||||
@Redirect(method = "saveAndClose", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/TextFieldWidget;getText()Ljava/lang/String;"))
|
@Redirect(method = "saveAndClose", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/TextFieldWidget;getText()Ljava/lang/String;"))
|
||||||
private String trimGetText(TextFieldWidget instance) {
|
private String trimGetText(TextFieldWidget instance) {
|
||||||
if( !Settings.ModEnabled ) { return instance.getText(); }
|
if( Settings.ModEnabled == false ) { return instance.getText(); }
|
||||||
String trimmedText = instance.getText().replace(" ", "");
|
String trimmedText = instance.getText().replace(" ", "");
|
||||||
((DirectConnectScreenAccessor) this).Mixin_GetAddressField().setText(trimmedText);
|
((DirectConnectScreenAccessor) this).Mixin_GetAddressField().setText(trimmedText);
|
||||||
return trimmedText;}}
|
return trimmedText;}}
|
@ -0,0 +1,19 @@
|
|||||||
|
package xyz.thewhitedog9487.mixin.client;
|
||||||
|
|
||||||
|
import net.minecraft.client.network.ServerInfo;
|
||||||
|
import org.objectweb.asm.Opcodes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
import xyz.thewhitedog9487.Settings;
|
||||||
|
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
|
||||||
|
@Mixin(ServerInfo.class)
|
||||||
|
public class MixinServerInfo {
|
||||||
|
@Redirect(method = "<init>", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/network/ServerInfo;address:Ljava/lang/String;"))
|
||||||
|
private void RemoveSpace_Write(ServerInfo original, String value) {
|
||||||
|
if( Settings.ModEnabled == false ) {
|
||||||
|
original.address = value;
|
||||||
|
return; }
|
||||||
|
else { original.address = value.replace(" ", ""); } }}
|
@ -1,11 +1,12 @@
|
|||||||
{
|
{
|
||||||
"required": true,
|
"required": true,
|
||||||
"package": "xyz.thewhitedog9487.mixin.client",
|
"package": "xyz.thewhitedog9487.mixin.client",
|
||||||
"compatibilityLevel": "JAVA_17",
|
"compatibilityLevel": "JAVA_21",
|
||||||
"client": [
|
"client": [
|
||||||
"DirectConnectScreenAccessor",
|
"DirectConnectScreenAccessor",
|
||||||
"MixinAddServerScreen",
|
"MixinAddServerScreen",
|
||||||
"MixinDirectConnectScreen"
|
"MixinDirectConnectScreen",
|
||||||
|
"MixinServerInfo"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"required": true,
|
"required": true,
|
||||||
"package": "xyz.thewhitedog9487.mixin",
|
"package": "xyz.thewhitedog9487.mixin",
|
||||||
"compatibilityLevel": "JAVA_17",
|
"compatibilityLevel": "JAVA_21",
|
||||||
"mixins": [],
|
"mixins": [],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
Loading…
Reference in New Issue
Block a user