BanNoticeScreens.java
net.minecraft.client.gui.screens.BanNoticeScreens
信息
- 全限定名:net.minecraft.client.gui.screens.BanNoticeScreens
- 类型:public class
- 包:net.minecraft.client.gui.screens
- 源码路径:src/main/java/net/minecraft/client/gui/screens/BanNoticeScreens.java
- 起始行号:L21
- 职责:
TODO
字段/常量
-
TEMPORARY_BAN_TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
PERMANENT_BAN_TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
NAME_BAN_TITLE- 类型:
Component - 修饰符:
public static final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
SKIN_BAN_TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
SKIN_BAN_DESCRIPTION- 类型:
Component - 修饰符:
private static final - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static ConfirmLinkScreen create(BooleanConsumer callback, BanDetails multiplayerBanned) @ L30
- 方法名:create
- 源码定位:L30
- 返回类型:ConfirmLinkScreen
- 修饰符:public static
参数:
- callback: BooleanConsumer
- multiplayerBanned: BanDetails
说明:
TODO
public static ConfirmLinkScreen createSkinBan(Runnable onClose) @ L41
- 方法名:createSkinBan
- 源码定位:L41
- 返回类型:ConfirmLinkScreen
- 修饰符:public static
参数:
- onClose: Runnable
说明:
TODO
public static ConfirmLinkScreen createNameBan(String name, Runnable onClose) @ L52
- 方法名:createNameBan
- 源码定位:L52
- 返回类型:ConfirmLinkScreen
- 修饰符:public static
参数:
- name: String
- onClose: Runnable
说明:
TODO
private static Component getBannedTitle(BanDetails multiplayerBanned) @ L72
- 方法名:getBannedTitle
- 源码定位:L72
- 返回类型:Component
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
private static Component getBannedScreenText(BanDetails multiplayerBanned) @ L76
- 方法名:getBannedScreenText
- 源码定位:L76
- 返回类型:Component
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
private static Component getBanReasonText(BanDetails multiplayerBanned) @ L85
- 方法名:getBanReasonText
- 源码定位:L85
- 返回类型:Component
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
private static Component getBanStatusText(BanDetails multiplayerBanned) @ L106
- 方法名:getBanStatusText
- 源码定位:L106
- 返回类型:Component
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
private static Component getBanDurationText(BanDetails multiplayerBanned) @ L118
- 方法名:getBanDurationText
- 源码定位:L118
- 返回类型:Component
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
private static boolean isTemporaryBan(BanDetails multiplayerBanned) @ L128
- 方法名:isTemporaryBan
- 源码定位:L128
- 返回类型:boolean
- 修饰符:private static
参数:
- multiplayerBanned: BanDetails
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class BanNoticeScreens {
private static final Component TEMPORARY_BAN_TITLE = Component.translatable("gui.banned.title.temporary").withStyle(ChatFormatting.BOLD);
private static final Component PERMANENT_BAN_TITLE = Component.translatable("gui.banned.title.permanent").withStyle(ChatFormatting.BOLD);
public static final Component NAME_BAN_TITLE = Component.translatable("gui.banned.name.title").withStyle(ChatFormatting.BOLD);
private static final Component SKIN_BAN_TITLE = Component.translatable("gui.banned.skin.title").withStyle(ChatFormatting.BOLD);
private static final Component SKIN_BAN_DESCRIPTION = Component.translatable(
"gui.banned.skin.description", Component.translationArg(CommonLinks.SUSPENSION_HELP)
);
public static ConfirmLinkScreen create(BooleanConsumer callback, BanDetails multiplayerBanned) {
return new ConfirmLinkScreen(
callback,
getBannedTitle(multiplayerBanned),
getBannedScreenText(multiplayerBanned),
CommonLinks.SUSPENSION_HELP,
CommonComponents.GUI_ACKNOWLEDGE,
true
);
}
public static ConfirmLinkScreen createSkinBan(Runnable onClose) {
URI uri = CommonLinks.SUSPENSION_HELP;
return new ConfirmLinkScreen(result -> {
if (result) {
Util.getPlatform().openUri(uri);
}
onClose.run();
}, SKIN_BAN_TITLE, SKIN_BAN_DESCRIPTION, uri, CommonComponents.GUI_ACKNOWLEDGE, true);
}
public static ConfirmLinkScreen createNameBan(String name, Runnable onClose) {
URI uri = CommonLinks.SUSPENSION_HELP;
return new ConfirmLinkScreen(
result -> {
if (result) {
Util.getPlatform().openUri(uri);
}
onClose.run();
},
NAME_BAN_TITLE,
Component.translatable(
"gui.banned.name.description", Component.literal(name).withStyle(ChatFormatting.YELLOW), Component.translationArg(CommonLinks.SUSPENSION_HELP)
),
uri,
CommonComponents.GUI_ACKNOWLEDGE,
true
);
}
private static Component getBannedTitle(BanDetails multiplayerBanned) {
return isTemporaryBan(multiplayerBanned) ? TEMPORARY_BAN_TITLE : PERMANENT_BAN_TITLE;
}
private static Component getBannedScreenText(BanDetails multiplayerBanned) {
return Component.translatable(
"gui.banned.description",
getBanReasonText(multiplayerBanned),
getBanStatusText(multiplayerBanned),
Component.translationArg(CommonLinks.SUSPENSION_HELP)
);
}
private static Component getBanReasonText(BanDetails multiplayerBanned) {
String reasonString = multiplayerBanned.reason();
String reasonMessage = multiplayerBanned.reasonMessage();
if (StringUtils.isNumeric(reasonString)) {
int reasonId = Integer.parseInt(reasonString);
BanReason reason = BanReason.byId(reasonId);
Component reasonText;
if (reason != null) {
reasonText = ComponentUtils.mergeStyles(reason.title(), Style.EMPTY.withBold(true));
} else if (reasonMessage != null) {
reasonText = Component.translatable("gui.banned.description.reason_id_message", reasonId, reasonMessage).withStyle(ChatFormatting.BOLD);
} else {
reasonText = Component.translatable("gui.banned.description.reason_id", reasonId).withStyle(ChatFormatting.BOLD);
}
return Component.translatable("gui.banned.description.reason", reasonText);
} else {
return Component.translatable("gui.banned.description.unknownreason");
}
}
private static Component getBanStatusText(BanDetails multiplayerBanned) {
if (isTemporaryBan(multiplayerBanned)) {
Component banDurationText = getBanDurationText(multiplayerBanned);
return Component.translatable(
"gui.banned.description.temporary",
Component.translatable("gui.banned.description.temporary.duration", banDurationText).withStyle(ChatFormatting.BOLD)
);
} else {
return Component.translatable("gui.banned.description.permanent").withStyle(ChatFormatting.BOLD);
}
}
private static Component getBanDurationText(BanDetails multiplayerBanned) {
Duration banDuration = Duration.between(Instant.now(), multiplayerBanned.expires());
long durationHours = banDuration.toHours();
if (durationHours > 72L) {
return CommonComponents.days(banDuration.toDays());
} else {
return durationHours < 1L ? CommonComponents.minutes(banDuration.toMinutes()) : CommonComponents.hours(banDuration.toHours());
}
}
private static boolean isTemporaryBan(BanDetails multiplayerBanned) {
return multiplayerBanned.expires() != null;
}
}引用的其他类
-
- 引用位置:
构造调用/返回值 - 关联成员:
ConfirmLinkScreen()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BanReason.byId()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
CommonComponents.days(), CommonComponents.hours(), CommonComponents.minutes()
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
Component.literal(), Component.translatable(), Component.translationArg()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ComponentUtils.mergeStyles()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.getPlatform()
- 引用位置: