3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-23 23:00:35 +01:00

Ensure that getting a builder from the ping will produce the same ping.

Dieser Commit ist enthalten in:
Andrew Steinborn 2018-12-29 14:09:30 -05:00
Ursprung 68fde1e795
Commit 5cf96aabdd
3 geänderte Dateien mit 133 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -8,6 +8,7 @@ import com.velocitypowered.api.util.ModInfo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
@ -73,10 +74,32 @@ public final class ServerPing {
+ "version=" + version
+ ", players=" + players
+ ", description=" + description
+ ", favicon='" + favicon + '\''
+ ", favicon=" + favicon
+ ", modinfo=" + modinfo
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ServerPing ping = (ServerPing) o;
return Objects.equals(version, ping.version)
&& Objects.equals(players, ping.players)
&& Objects.equals(description, ping.description)
&& Objects.equals(favicon, ping.favicon)
&& Objects.equals(modinfo, ping.modinfo);
}
@Override
public int hashCode() {
return Objects.hash(version, players, description, favicon, modinfo);
}
/**
* Returns a copy of this {@link ServerPing} instance as a builder so that it can be modified.
* @return a copy of this instance as a {@link Builder}
@ -281,6 +304,23 @@ public final class ServerPing {
+ ", name='" + name + '\''
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Version version = (Version) o;
return protocol == version.protocol && Objects.equals(name, version.name);
}
@Override
public int hashCode() {
return Objects.hash(protocol, name);
}
}
public static final class Players {
@ -321,6 +361,24 @@ public final class ServerPing {
+ ", sample=" + sample
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Players players = (Players) o;
return online == players.online && max == players.max
&& Objects.equals(sample, players.sample);
}
@Override
public int hashCode() {
return Objects.hash(online, max, sample);
}
}
public static final class SamplePlayer {
@ -348,5 +406,22 @@ public final class ServerPing {
+ ", id=" + id
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
SamplePlayer that = (SamplePlayer) o;
return Objects.equals(name, that.name) && Objects.equals(id, that.id);
}
@Override
public int hashCode() {
return Objects.hash(name, id);
}
}
}

Datei anzeigen

@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.gson.annotations.SerializedName;
import java.util.List;
import java.util.Objects;
public final class ModInfo {
@ -33,6 +34,23 @@ public final class ModInfo {
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ModInfo modInfo = (ModInfo) o;
return type.equals(modInfo.type) && modList.equals(modInfo.modList);
}
@Override
public int hashCode() {
return Objects.hash(type, modList);
}
public static final class Mod {
@SerializedName("modid")
@ -59,5 +77,22 @@ public final class ModInfo {
+ ", version='" + version + '\''
+ '}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Mod mod = (Mod) o;
return id.equals(mod.id) && version.equals(mod.version);
}
@Override
public int hashCode() {
return Objects.hash(id, version);
}
}
}

Datei anzeigen

@ -0,0 +1,22 @@
package com.velocitypowered.api.proxy.server;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.ImmutableList;
import com.velocitypowered.api.proxy.server.ServerPing.Players;
import com.velocitypowered.api.proxy.server.ServerPing.SamplePlayer;
import com.velocitypowered.api.proxy.server.ServerPing.Version;
import java.util.UUID;
import net.kyori.text.TextComponent;
import org.junit.jupiter.api.Test;
class ServerPingTest {
@Test
void asBuilderConsistency() {
ServerPing ping = new ServerPing(new Version(404, "1.13.2"),
new Players(1, 1, ImmutableList.of(new SamplePlayer("tuxed", UUID.randomUUID()))),
TextComponent.of("test"), null);
assertEquals(ping, ping.asBuilder().build());
}
}