RealmsTermsScreen.java
com.mojang.realmsclient.gui.screens.RealmsTermsScreen
信息
- 全限定名:com.mojang.realmsclient.gui.screens.RealmsTermsScreen
- 类型:public class
- 包:com.mojang.realmsclient.gui.screens
- 源码路径:src/main/java/com/mojang/realmsclient/gui/screens/RealmsTermsScreen.java
- 起始行号:L24
- 继承:RealmsScreen
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L26 - 说明:
TODO
- 类型:
-
TERMS_STATIC_TEXT- 类型:
Component - 修饰符:
private static final - 源码定位:
L27 - 说明:
TODO
- 类型:
-
TERMS_LINK_TEXT- 类型:
Component - 修饰符:
private static final - 源码定位:
L28 - 说明:
TODO
- 类型:
-
lastScreen- 类型:
Screen - 修饰符:
private final - 源码定位:
L30 - 说明:
TODO
- 类型:
-
realmsServer- 类型:
RealmsServer - 修饰符:
private final - 源码定位:
L31 - 说明:
TODO
- 类型:
-
onLink- 类型:
boolean - 修饰符:
private - 源码定位:
L32 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public RealmsTermsScreen(Screen lastScreen, RealmsServer realmsServer) @ L34
- 构造器名:RealmsTermsScreen
- 源码定位:L34
- 修饰符:public
参数:
- lastScreen: Screen
- realmsServer: RealmsServer
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void init() @ L40
- 方法名:init
- 源码定位:L40
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean keyPressed(KeyEvent event) @ L55
- 方法名:keyPressed
- 源码定位:L55
- 返回类型:boolean
- 修饰符:public
参数:
- event: KeyEvent
说明:
TODO
private void agreedToTos() @ L65
- 方法名:agreedToTos
- 源码定位:L65
- 返回类型:void
- 修饰符:private
参数:
- 无
说明:
TODO
public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) @ L76
- 方法名:mouseClicked
- 源码定位:L76
- 返回类型:boolean
- 修饰符:public
参数:
- event: MouseButtonEvent
- doubleClick: boolean
说明:
TODO
public Component getNarrationMessage() @ L87
- 方法名:getNarrationMessage
- 源码定位:L87
- 返回类型:Component
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(GuiGraphicsExtractor graphics, int xm, int ym, float a) @ L92
- 方法名:extractRenderState
- 源码定位:L92
- 返回类型:void
- 修饰符:public
参数:
- graphics: GuiGraphicsExtractor
- xm: int
- ym: int
- a: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class RealmsTermsScreen extends RealmsScreen {
private static final Logger LOGGER = LogUtils.getLogger();
private static final Component TITLE = Component.translatable("mco.terms.title");
private static final Component TERMS_STATIC_TEXT = Component.translatable("mco.terms.sentence.1");
private static final Component TERMS_LINK_TEXT = CommonComponents.space()
.append(Component.translatable("mco.terms.sentence.2").withStyle(Style.EMPTY.withUnderlined(true)));
private final Screen lastScreen;
private final RealmsServer realmsServer;
private boolean onLink;
public RealmsTermsScreen(Screen lastScreen, RealmsServer realmsServer) {
super(TITLE);
this.lastScreen = lastScreen;
this.realmsServer = realmsServer;
}
@Override
public void init() {
int columnWidth = this.width / 4 - 2;
this.addRenderableWidget(
Button.builder(Component.translatable("mco.terms.buttons.agree"), button -> this.agreedToTos())
.bounds(this.width / 4, row(12), columnWidth, 20)
.build()
);
this.addRenderableWidget(
Button.builder(Component.translatable("mco.terms.buttons.disagree"), button -> this.minecraft.setScreen(this.lastScreen))
.bounds(this.width / 2 + 4, row(12), columnWidth, 20)
.build()
);
}
@Override
public boolean keyPressed(KeyEvent event) {
if (event.isEscape()) {
this.minecraft.setScreen(this.lastScreen);
return true;
} else {
return super.keyPressed(event);
}
}
private void agreedToTos() {
RealmsClient client = RealmsClient.getOrCreate();
try {
client.agreeToTos();
this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, new GetServerDetailsTask(this.lastScreen, this.realmsServer)));
} catch (RealmsServiceException var3) {
LOGGER.error("Couldn't agree to TOS", (Throwable)var3);
}
}
@Override
public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) {
if (this.onLink) {
this.minecraft.keyboardHandler.setClipboard(CommonLinks.REALMS_TERMS.toString());
Util.getPlatform().openUri(CommonLinks.REALMS_TERMS);
return true;
} else {
return super.mouseClicked(event, doubleClick);
}
}
@Override
public Component getNarrationMessage() {
return CommonComponents.joinForNarration(super.getNarrationMessage(), TERMS_STATIC_TEXT).append(CommonComponents.SPACE).append(TERMS_LINK_TEXT);
}
@Override
public void extractRenderState(GuiGraphicsExtractor graphics, int xm, int ym, float a) {
super.extractRenderState(graphics, xm, ym, a);
graphics.centeredText(this.font, this.title, this.width / 2, 17, -1);
graphics.text(this.font, TERMS_STATIC_TEXT, this.width / 2 - 120, row(5), -1);
int firstPartWidth = this.font.width(TERMS_STATIC_TEXT);
int x1 = this.width / 2 - 121 + firstPartWidth;
int y1 = row(5);
int x2 = x1 + this.font.width(TERMS_LINK_TEXT) + 1;
int y2 = y1 + 1 + 9;
this.onLink = x1 <= xm && xm <= x2 && y1 <= ym && ym <= y2;
graphics.text(this.font, TERMS_LINK_TEXT, this.width / 2 - 120 + firstPartWidth, row(5), this.onLink ? -9670204 : -13408581);
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
RealmsClient.getOrCreate()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
RealmsLongRunningMcoTaskScreen
- 引用位置:
构造调用 - 关联成员:
RealmsLongRunningMcoTaskScreen()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
GetServerDetailsTask()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Button.builder()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
CommonComponents.joinForNarration(), CommonComponents.space()
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
Component.translatable()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.getPlatform()
- 引用位置: