Skip to content

Commit a8c1768

Browse files
committed
chore: remove TODO comment, add nullability annotations
Signed-off-by: TTtie <me@tttie.cz>
1 parent b198c33 commit a8c1768

File tree

7 files changed

+34
-8
lines changed

7 files changed

+34
-8
lines changed

core/src/main/java/dev/pgm/community/serverlinks/ServerLinksConfig.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
import java.util.Map;
1313
import java.util.Objects;
1414
import org.bukkit.configuration.Configuration;
15+
import org.jetbrains.annotations.NotNullByDefault;
16+
import org.jetbrains.annotations.Nullable;
1517

18+
@NotNullByDefault
1619
public class ServerLinksConfig extends FeatureConfigImpl {
1720
private static final String KEY = "server-links";
1821
private static final String LINKS_KEY = "links";
@@ -21,13 +24,14 @@ public class ServerLinksConfig extends FeatureConfigImpl {
2124
private static final String LINK_CUSTOM_TEXT_KEY = "text";
2225
private static final String LINK_URI_KEY = "uri";
2326

24-
private List<ServerLink> links;
27+
private @Nullable List<ServerLink> links;
2528

2629
public ServerLinksConfig(Configuration config) {
2730
super(KEY, config);
2831
}
2932

3033
public List<ServerLink> getLinks() {
34+
assert links != null;
3135
return links;
3236
}
3337

core/src/main/java/dev/pgm/community/serverlinks/ServerLinksFeature.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
import org.bukkit.entity.Player;
1010
import org.bukkit.event.EventHandler;
1111
import org.bukkit.event.player.PlayerJoinEvent;
12+
import org.jetbrains.annotations.NotNullByDefault;
1213

14+
@NotNullByDefault
1315
public class ServerLinksFeature extends FeatureBase {
1416
private static final ServerLinksPlatform PLATFORM = Platform.get(ServerLinksPlatform.class);
1517

core/src/main/java/dev/pgm/community/serverlinks/types/ServerLink.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.net.URI;
44
import net.kyori.adventure.text.Component;
5+
import org.jetbrains.annotations.NotNullByDefault;
6+
import org.jetbrains.annotations.Nullable;
57

68
/**
79
* Represents a Minecraft server link.
@@ -10,4 +12,6 @@
1012
* @param customText The custom text for the server link, or null if builtinType is set.
1113
* @param uri The URI of the server link.
1214
*/
13-
public record ServerLink(ServerLinkBuiltinType builtinType, Component customText, URI uri) {}
15+
@NotNullByDefault
16+
public record ServerLink(
17+
@Nullable ServerLinkBuiltinType builtinType, @Nullable Component customText, URI uri) {}

core/src/main/java/dev/pgm/community/serverlinks/types/ServerLinkBuiltinType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package dev.pgm.community.serverlinks.types;
22

3+
import org.jetbrains.annotations.NotNullByDefault;
4+
35
/**
46
* Represents a built-in server link type that will be auto-translated by the Minecraft client and
57
* possibly have special functionality. Keep in sync with Paper's org.bukkit.ServerLinks.Type.
68
*/
9+
@NotNullByDefault
710
public enum ServerLinkBuiltinType {
811
REPORT_BUG,
912
COMMUNITY_GUIDELINES,

platform/platform-modern/src/main/java/dev/pgm/community/platform/modern/feature/serverlinks/ModernServerLinksPlatform.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010
import org.bukkit.ServerLinks;
1111
import org.bukkit.craftbukkit.CraftServerLinks;
1212
import org.bukkit.entity.Player;
13+
import org.jetbrains.annotations.NotNullByDefault;
1314

1415
@Supports(PAPER)
16+
@NotNullByDefault
1517
public class ModernServerLinksPlatform implements ServerLinksFeature.ServerLinksPlatform {
1618
@Override
1719
public void sendToPlayer(Player player, List<ServerLink> serverLinks) {
@@ -24,6 +26,7 @@ private ServerLinks toPlatformServerLinks(List<ServerLink> links) {
2426
if (link.builtinType() != null) {
2527
bukkitLinks.addLink(toBukkitType(link.builtinType()), link.uri());
2628
} else {
29+
assert link.customText() != null;
2730
bukkitLinks.addLink(link.customText(), link.uri());
2831
}
2932
}

platform/platform-sportpaper/src/main/java/dev/pgm/community/platform/sportpaper/features/serverlinks/SpServerLinksPlatform.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
import dev.pgm.community.util.Supports;
88
import java.util.List;
99
import org.bukkit.entity.Player;
10+
import org.jetbrains.annotations.NotNullByDefault;
1011

1112
@Supports(SPORTPAPER)
13+
@NotNullByDefault
1214
public class SpServerLinksPlatform implements ServerLinksFeature.ServerLinksPlatform {
1315
private static final boolean HAS_VIA = hasVia();
1416

platform/platform-sportpaper/src/main/java/dev/pgm/community/platform/sportpaper/features/serverlinks/ViaServerLinks.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.pgm.community.platform.sportpaper.features.serverlinks;
22

3+
import static tc.oc.pgm.util.Assert.assertNotNull;
4+
35
import com.viaversion.nbt.tag.Tag;
46
import com.viaversion.viaversion.api.Via;
57
import com.viaversion.viaversion.api.connection.UserConnection;
@@ -15,7 +17,9 @@
1517
import net.kyori.adventure.text.Component;
1618
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
1719
import org.bukkit.entity.Player;
20+
import org.jetbrains.annotations.NotNullByDefault;
1821

22+
@NotNullByDefault
1923
public class ViaServerLinks {
2024
private static final Protocol<?, ?, ?, ?> serverLinkProtocol = findServerLinkProtocol();
2125

@@ -37,12 +41,12 @@ private static PacketWrapper createPacket(UserConnection conn, List<ServerLink>
3741
var packetType = packetTypes.get(State.PLAY).typeByName("SERVER_LINKS");
3842
PacketWrapper packet = PacketWrapper.create(packetType, conn);
3943
packet.write(Types.VAR_INT, links.size());
40-
// TODO: is there a better way to do this?
4144
for (ServerLink link : links) {
4245
packet.write(Types.BOOLEAN, link.builtinType() != null);
4346
if (link.builtinType() != null) {
4447
packet.write(Types.VAR_INT, link.builtinType().ordinal());
4548
} else {
49+
assert link.customText() != null;
4650
packet.write(Types.TAG, toViaTag(link.customText()));
4751
}
4852
packet.write(Types.STRING, link.uri().toString());
@@ -52,13 +56,17 @@ private static PacketWrapper createPacket(UserConnection conn, List<ServerLink>
5256
}
5357

5458
private static Tag toViaTag(Component component) {
55-
return JsonNbtConverter.toNbt(
56-
JsonParser.parseString(GsonComponentSerializer.gson().serialize(component)));
59+
return assertNotNull(
60+
JsonNbtConverter.toNbt(
61+
JsonParser.parseString(GsonComponentSerializer.gson().serialize(component))),
62+
"Component -> NBT conversion failed");
5763
}
5864

5965
private static Protocol<?, ?, ?, ?> findServerLinkProtocol() {
60-
return Via.getManager()
61-
.getProtocolManager()
62-
.getProtocol(/* to */ ProtocolVersion.v1_21, /* from */ ProtocolVersion.v1_20_5);
66+
return assertNotNull(
67+
Via.getManager()
68+
.getProtocolManager()
69+
.getProtocol(/* to */ ProtocolVersion.v1_21, /* from */ ProtocolVersion.v1_20_5),
70+
"ViaVersion v1.20.5 -> v1.21 protocol was not found");
6371
}
6472
}

0 commit comments

Comments
 (0)