Skip to content

Commit 65e237a

Browse files
committed
fix MixinScreen
1 parent 766abfc commit 65e237a

File tree

6 files changed

+23
-20
lines changed
  • src/main/java/com/plusls/xma/compat/gui/screen
  • xaero_map_addition-compat-mc1_15/src/main/java/com/plusls/xma/compat/mixin/compat/screen
  • xaero_map_addition-compat-mc1_16/src/main/java/com/plusls/xma/compat/mixin/compat/screen
  • xaero_map_addition-compat-mc1_17/src/main/java/com/plusls/xma/compat/mixin/compat/screen
  • xaero_map_addition-compat-mc1_18/src/main/java/com/plusls/xma/compat/mixin/compat/screen

6 files changed

+23
-20
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
org.gradle.jvmargs=-Xmx4G
33
minecraft_version=1.18.2
44
loader_version=0.13.3
5-
mod_version=0.2
5+
mod_version=0.2.1
66
pre_release=alpha
77
maven_group=com.plusls
88
archives_base_name=xaero-map-addition

src/main/java/com/plusls/xma/compat/gui/screen/CompatScreen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
import net.minecraft.client.gui.components.AbstractWidget;
44

55
public interface CompatScreen {
6-
<T extends AbstractWidget> T addAbstractWidget(T abstractWidget);
6+
AbstractWidget addAbstractWidget(AbstractWidget abstractWidget);
77
}

xaero_map_addition-compat-mc1_15/src/main/java/com/plusls/xma/compat/mixin/compat/screen/MixinScreen.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@
99
@Mixin(Screen.class)
1010
public abstract class MixinScreen implements CompatScreen {
1111

12-
// 不知道为什么,如果不加前缀会自动帮我mapping,然而这里不存在mapping
1312
@Shadow
14-
protected abstract <T extends AbstractWidget> T shadow$addButton(T abstractWidget);
13+
protected abstract AbstractWidget addButton(AbstractWidget abstractWidget);
1514

1615
@Override
17-
public <T extends AbstractWidget> T addAbstractWidget(T abstractWidget) {
18-
return shadow$addButton(abstractWidget);
16+
public AbstractWidget addAbstractWidget(AbstractWidget abstractWidget) {
17+
return addButton(abstractWidget);
1918
}
2019
}

xaero_map_addition-compat-mc1_16/src/main/java/com/plusls/xma/compat/mixin/compat/screen/MixinScreen.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@
22

33
import com.plusls.xma.compat.gui.screen.CompatScreen;
44
import net.minecraft.client.gui.components.AbstractWidget;
5+
import net.minecraft.client.gui.components.events.GuiEventListener;
56
import net.minecraft.client.gui.screens.Screen;
67
import org.spongepowered.asm.mixin.Mixin;
78
import org.spongepowered.asm.mixin.Shadow;
89

910
@Mixin(Screen.class)
1011
public abstract class MixinScreen implements CompatScreen {
1112

13+
// mojang mappings 这里显示是泛型
14+
// yarn: protected Element addDrawableChild(Element drawableElement)
15+
// 如果采用泛型会在编译时类型擦除成 Object,然后无法匹配上方法导致 shadow 失败
1216
@Shadow
13-
protected abstract <T extends AbstractWidget> T addButton(T abstractWidget);
17+
protected abstract AbstractWidget addButton(AbstractWidget guiEventListener);
1418

1519
@Override
16-
public <T extends AbstractWidget> T addAbstractWidget(T abstractWidget) {
20+
public AbstractWidget addAbstractWidget(AbstractWidget abstractWidget) {
1721
return addButton(abstractWidget);
1822
}
1923
}

xaero_map_addition-compat-mc1_17/src/main/java/com/plusls/xma/compat/mixin/compat/screen/MixinScreen.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22

33
import com.plusls.xma.compat.gui.screen.CompatScreen;
44
import net.minecraft.client.gui.components.AbstractWidget;
5-
import net.minecraft.client.gui.components.Widget;
65
import net.minecraft.client.gui.components.events.GuiEventListener;
7-
import net.minecraft.client.gui.narration.NarratableEntry;
86
import net.minecraft.client.gui.screens.Screen;
97
import org.spongepowered.asm.mixin.Mixin;
108
import org.spongepowered.asm.mixin.Shadow;
119

1210
@Mixin(Screen.class)
1311
public abstract class MixinScreen implements CompatScreen {
1412

13+
// mojang mappings 这里显示是泛型
14+
// yarn: protected Element addDrawableChild(Element drawableElement)
15+
// 如果采用泛型会在编译时类型擦除成 Object,然后无法匹配上方法导致 shadow 失败
1516
@Shadow
16-
protected abstract <T extends GuiEventListener & Widget & NarratableEntry> T addRenderableWidget(T guiEventListener);
17-
17+
protected abstract GuiEventListener addRenderableWidget(GuiEventListener guiEventListener);
1818

1919
@Override
20-
public <T extends AbstractWidget> T addAbstractWidget(T abstractWidget) {
21-
return addRenderableWidget(abstractWidget);
20+
public AbstractWidget addAbstractWidget(AbstractWidget abstractWidget) {
21+
return (AbstractWidget) addRenderableWidget(abstractWidget);
2222
}
2323
}

xaero_map_addition-compat-mc1_18/src/main/java/com/plusls/xma/compat/mixin/compat/screen/MixinScreen.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22

33
import com.plusls.xma.compat.gui.screen.CompatScreen;
44
import net.minecraft.client.gui.components.AbstractWidget;
5-
import net.minecraft.client.gui.components.Widget;
65
import net.minecraft.client.gui.components.events.GuiEventListener;
7-
import net.minecraft.client.gui.narration.NarratableEntry;
86
import net.minecraft.client.gui.screens.Screen;
97
import org.spongepowered.asm.mixin.Mixin;
108
import org.spongepowered.asm.mixin.Shadow;
119

1210
@Mixin(Screen.class)
1311
public abstract class MixinScreen implements CompatScreen {
1412

13+
// mojang mappings 这里显示是泛型
14+
// yarn: protected Element addDrawableChild(Element drawableElement)
15+
// 如果采用泛型会在编译时类型擦除成 Object,然后无法匹配上方法导致 shadow 失败
1516
@Shadow
16-
protected abstract <T extends GuiEventListener & Widget & NarratableEntry> T addRenderableWidget(T guiEventListener);
17-
17+
protected abstract GuiEventListener addRenderableWidget(GuiEventListener guiEventListener);
1818

1919
@Override
20-
public <T extends AbstractWidget> T addAbstractWidget(T abstractWidget) {
21-
return addRenderableWidget(abstractWidget);
20+
public AbstractWidget addAbstractWidget(AbstractWidget abstractWidget) {
21+
return (AbstractWidget) addRenderableWidget(abstractWidget);
2222
}
2323
}

0 commit comments

Comments
 (0)