SleepStatus.java
net.minecraft.server.players.SleepStatus
信息
- 全限定名:net.minecraft.server.players.SleepStatus
- 类型:public class
- 包:net.minecraft.server.players
- 源码路径:src/main/java/net/minecraft/server/players/SleepStatus.java
- 起始行号:L8
- 职责:
TODO
字段/常量
-
activePlayers- 类型:
int - 修饰符:
private - 源码定位:
L9 - 说明:
TODO
- 类型:
-
sleepingPlayers- 类型:
int - 修饰符:
private - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public boolean areEnoughSleeping(int sleepPercentageNeeded) @ L12
- 方法名:areEnoughSleeping
- 源码定位:L12
- 返回类型:boolean
- 修饰符:public
参数:
- sleepPercentageNeeded: int
说明:
TODO
public boolean areEnoughDeepSleeping(int sleepPercentageNeeded, List<ServerPlayer> players) @ L16
- 方法名:areEnoughDeepSleeping
- 源码定位:L16
- 返回类型:boolean
- 修饰符:public
参数:
- sleepPercentageNeeded: int
- players: List
说明:
TODO
public int sleepersNeeded(int sleepPercentageNeeded) @ L21
- 方法名:sleepersNeeded
- 源码定位:L21
- 返回类型:int
- 修饰符:public
参数:
- sleepPercentageNeeded: int
说明:
TODO
public void removeAllSleepers() @ L25
- 方法名:removeAllSleepers
- 源码定位:L25
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public int amountSleeping() @ L29
- 方法名:amountSleeping
- 源码定位:L29
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean update(List<ServerPlayer> players) @ L33
- 方法名:update
- 源码定位:L33
- 返回类型:boolean
- 修饰符:public
参数:
- players: List
说明:
TODO
代码
public class SleepStatus {
private int activePlayers;
private int sleepingPlayers;
public boolean areEnoughSleeping(int sleepPercentageNeeded) {
return this.sleepingPlayers >= this.sleepersNeeded(sleepPercentageNeeded);
}
public boolean areEnoughDeepSleeping(int sleepPercentageNeeded, List<ServerPlayer> players) {
int deepSleepers = (int)players.stream().filter(Player::isSleepingLongEnough).count();
return deepSleepers >= this.sleepersNeeded(sleepPercentageNeeded);
}
public int sleepersNeeded(int sleepPercentageNeeded) {
return Math.max(1, Mth.ceil(this.activePlayers * sleepPercentageNeeded / 100.0F));
}
public void removeAllSleepers() {
this.sleepingPlayers = 0;
}
public int amountSleeping() {
return this.sleepingPlayers;
}
public boolean update(List<ServerPlayer> players) {
int oldActivePlayers = this.activePlayers;
int oldSleepingPlayers = this.sleepingPlayers;
this.activePlayers = 0;
this.sleepingPlayers = 0;
for (ServerPlayer player : players) {
if (!player.isSpectator()) {
this.activePlayers++;
if (player.isSleeping()) {
this.sleepingPlayers++;
}
}
}
return (oldSleepingPlayers > 0 || this.sleepingPlayers > 0) && (oldActivePlayers != this.activePlayers || oldSleepingPlayers != this.sleepingPlayers);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.ceil()
- 引用位置: