RateKickingConnection.java
net.minecraft.network.RateKickingConnection
信息
- 全限定名:net.minecraft.network.RateKickingConnection
- 类型:public class
- 包:net.minecraft.network
- 源码路径:src/main/java/net/minecraft/network/RateKickingConnection.java
- 起始行号:L9
- 继承:Connection
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L10 - 说明:
TODO
- 类型:
-
EXCEED_REASON- 类型:
Component - 修饰符:
private static final - 源码定位:
L11 - 说明:
TODO
- 类型:
-
rateLimitPacketsPerSecond- 类型:
int - 修饰符:
private final - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public RateKickingConnection(int rateLimitPacketsPerSecond) @ L14
- 构造器名:RateKickingConnection
- 源码定位:L14
- 修饰符:public
参数:
- rateLimitPacketsPerSecond: int
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected void tickSecond() @ L19
- 方法名:tickSecond
- 源码定位:L19
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
代码
public class RateKickingConnection extends Connection {
private static final Logger LOGGER = LogUtils.getLogger();
private static final Component EXCEED_REASON = Component.translatable("disconnect.exceeded_packet_rate");
private final int rateLimitPacketsPerSecond;
public RateKickingConnection(int rateLimitPacketsPerSecond) {
super(PacketFlow.SERVERBOUND);
this.rateLimitPacketsPerSecond = rateLimitPacketsPerSecond;
}
@Override
protected void tickSecond() {
super.tickSecond();
float averageReceivedPackets = this.getAverageReceivedPackets();
if (averageReceivedPackets > this.rateLimitPacketsPerSecond) {
LOGGER.warn("Player exceeded rate-limit (sent {} packets per second)", averageReceivedPackets);
this.send(new ClientboundDisconnectPacket(EXCEED_REASON), PacketSendListener.thenRun(() -> this.disconnect(EXCEED_REASON)));
this.setReadOnly();
}
}
}引用的其他类
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
PacketSendListener.thenRun()
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
Component.translatable()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ClientboundDisconnectPacket()
- 引用位置: