Ban class
Пакет: com.hypixel.hytale.server.core.modules.accesscontrol.ban
Файл: com/hypixel/hytale/server/core/modules/accesscontrol/ban/Ban.java
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Duration |
var1 |
|
long |
var2 |
|
BsonValue |
var3 |
|
Ban |
var4 |
|
long |
var4 |
|
BsonValue |
var5 |
|
long |
var6 |
|
Message |
var8 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var3 == null) |
|
|
if if(this.expiresOn == null) |
public |
boolean |
isInEffectboolean isInEffect() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.accesscontrol.ban;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import java.time.Duration;
class="kw">import java.time.Instant;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;
class="kw">public class="kw">final class Ban {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<Ban> CODEC = BuilderCodec.builder(Ban.class, Ban::new)
.append(new KeyedCodec<>("Target", Codec.UUID_STRING), (var0, var1) -> var0.target = var1, var0 -> var0.target)
.addValidator(Validators.nonNull())
.add()
.<UUID>append(new KeyedCodec<>("By", Codec.UUID_STRING), (var0, var1) -> var0.by = var1, var0 -> var0.by)
.addValidator(Validators.nonNull())
.add()
.<Instant>append(new KeyedCodec<>("Timestamp", Codec.INSTANT), (var0, var1) -> var0.timestamp = var1, var0 -> var0.timestamp)
.addValidator(Validators.nonNull())
.add()
.append(new KeyedCodec<>("ExpiresOn", Codec.INSTANT), (var0, var1) -> var0.expiresOn = var1, var0 -> var0.expiresOn)
.add()
.append(new KeyedCodec<>("Reason", Codec.STRING), (var0, var1) -> var0.reason = var1, var0 -> var0.reason)
.add()
.append(
new KeyedCodec<>("Metadata", Codec.BSON_DOCUMENT),
(var0, var1) -> var0.metadata = var1 == null ? new BsonDocument() : var1,
var0 -> var0.metadata.isEmpty() ? null : var0.metadata
)
.add()
.build();
class="kw">private UUID target;
class="kw">private UUID by;
class="kw">private Instant timestamp;
@Nullable
class="kw">private Instant expiresOn;
@Nullable
class="kw">private String reason;
@Nonnull
class="kw">private BsonDocument metadata = new BsonDocument();
class="kw">private Ban() {
}
class="kw">public Ban(@Nonnull UUID var1, @Nonnull UUID var2, @Nonnull Instant var3, @Nullable Instant var4, @Nullable String var5) {
this.target = var1;
this.by = var2;
this.timestamp = var3;
this.expiresOn = var4;
this.reason = var5;
}
@Nonnull
class="kw">public UUID getTarget() {
class="kw">return this.target;
}
@Nonnull
class="kw">public UUID getBy() {
class="kw">return this.by;
}
@Nonnull
class="kw">public Instant getTimestamp() {
class="kw">return this.timestamp;
}
@Nullable
class="kw">public Instant getExpiresOn() {
class="kw">return this.expiresOn;
}
@Nullable
class="kw">public String getReason() {
class="kw">return this.reason;
}
@Nullable
class="kw">public <T> T getMetadata(@Nonnull KeyedCodec<T> var1) {
class="kw">return var1.getOrNull(this.metadata);
}
@Nullable
class="kw">public <T> T getMetadata(@Nonnull String var1, @Nonnull Codec<T> var2) {
BsonValue var3 = this.metadata.get(var1);
class="kw">return var3 == null ? null : var2.decode(var3);
}
@Nonnull
class="kw">public <T> Ban withMetadata(@Nonnull KeyedCodec<T> var1, @Nullable T var2) {
class="kw">return this.withMetadata(var1.getKey(), var1.getChildCodec(), var2);
}
@Nonnull
class="kw">public <T> Ban withMetadata(@Nonnull String var1, @Nonnull Codec<T> var2, @Nullable T var3) {
Ban var4 = new Ban(this.target, this.by, this.timestamp, this.expiresOn, this.reason);
var4.metadata = this.metadata.clone();
if (var3 == null) {
var4.metadata.remove(var1);
class="kw">return var4;
}
BsonValue var5 = var2.encode(var3);
if (!var5.isNull() && !(var5 class="kw">instanceof BsonDocument var6 && var6.isEmpty())) {
var4.metadata.put(var1, var5);
} else {
var4.metadata.remove(var1);
}
class="kw">return var4;
}
class="kw">public boolean isInEffect() {
class="kw">return this.expiresOn == null || this.expiresOn.isAfter(Instant.now());
}
@Nonnull
class="kw">public Message getDisconnectReason() {
if (this.expiresOn == null) {
class="kw">return this.reason == null
? Message.translation("client.general.disconnect.banned.permanent")
: Message.translation("client.general.disconnect.banned.permanent.withReason").param("reason", this.reason);
}
Duration var1 = Duration.between(Instant.now(), this.expiresOn);
long var2 = var1.toDaysPart();
long var4 = var1.toHoursPart();
long var6 = var1.toMinutesPart();
Message var8 = this.reason == null
? Message.translation("client.general.disconnect.banned.timed")
: Message.translation("client.general.disconnect.banned.timed.withReason").param("reason", this.reason);
class="kw">return var8.param("days", var2).param("hours", var4).param("mins", var6);
}
}