Skip to content

Commit 9b7efdb

Browse files
committed
Fix casting and wildcard for converting server info. Improve code
1 parent b89b057 commit 9b7efdb

File tree

10 files changed

+37
-22
lines changed

10 files changed

+37
-22
lines changed

bungee/src/main/java/com/github/fernthedev/fernapi/server/bungee/BungeeInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import java.util.stream.Collectors;
2424

2525
public class BungeeInterface implements MethodInterface<ProxiedPlayer, CommandSender> {
26-
private FernBungeeAPI fernBungeeAPI;
26+
private final FernBungeeAPI fernBungeeAPI;
2727
private final Logger abstractLogger;
2828
private final IFConsole<CommandSender> console;
2929

bungee/src/main/java/com/github/fernthedev/fernapi/server/bungee/network/BungeeNetworkHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ public IServerInfo getServer(String name) {
2828
}
2929

3030
@Override
31-
public IServerInfo toServer(ServerInfo server) {
32-
return new BungeeServerInfo(server);
31+
public IServerInfo toServer(Object server) {
32+
if (!(server instanceof ServerInfo)) throw new IllegalArgumentException("Server data " + server + " is not an instance of " + ServerInfo.class.getName());
33+
return new BungeeServerInfo((ServerInfo) server);
3334
}
3435
}

bungee/src/main/java/com/github/fernthedev/fernapi/server/bungee/network/BungeeServerInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class BungeeServerInfo implements IServerInfo {
1414

1515
@NonNull
16-
private ServerInfo serverInfo;
16+
private final ServerInfo serverInfo;
1717

1818
/**
1919
* Get the name of this server.

core/src/main/java/com/github/fernthedev/fernapi/universal/handlers/NetworkHandler.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,22 @@ public interface NetworkHandler<T> {
1111

1212
IServerInfo getServer(String name);
1313

14-
IServerInfo toServer(T server);
14+
/**
15+
* Converts server-specific ServerInfo
16+
* into a cross-server compatible abstracted
17+
* instance
18+
*
19+
* @param server server instance
20+
* @return abstract server data
21+
*/
22+
IServerInfo toServer(Object server);
23+
24+
/**
25+
* Convenience method for type-checking
26+
* @param server type checked server
27+
* @return abstract server data
28+
*/
29+
default IServerInfo toServerTyped(T server) {
30+
return toServer(server);
31+
}
1532
}

spigot/src/main/java/com/github/fernthedev/fernapi/server/spigot/network/SpigotNetworkHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public boolean isRegistered(Object sender) {
1818
}
1919

2020
@Getter
21-
private SpigotServerInfo serverInfo = new SpigotServerInfo(Bukkit.getServer());
21+
private final SpigotServerInfo serverInfo = new SpigotServerInfo(Bukkit.getServer());
2222

2323
@Override
2424
public Map<String, IServerInfo> getServers() {
@@ -39,7 +39,7 @@ public IServerInfo getServer(String name) {
3939
}
4040

4141
@Override
42-
public IServerInfo toServer(Server server) {
42+
public IServerInfo toServer(Object server) {
4343
return serverInfo;
4444
}
4545
}

spigot/src/main/java/com/github/fernthedev/fernapi/server/spigot/network/SpigotServerInfo.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,15 @@
4646
public class SpigotServerInfo implements Server, IServerInfo {
4747

4848
@NonNull
49-
private Server server;
49+
private final Server server;
50+
51+
private final InetSocketAddress address;
5052

5153
public SpigotServerInfo(@NonNull Server server) {
5254
this.server = server;
5355
address = new InetSocketAddress(server.getPort());
5456
}
5557

56-
private final InetSocketAddress address;
57-
58-
5958

6059
/**
6160
* Get the name of this server.

sponge/src/main/java/com/github/fernthedev/fernapi/server/sponge/network/SpongeNetworkHandler.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,11 @@ public boolean isRegistered(Object sender) {
1515
return true;
1616
}
1717

18-
private SpongeServerInfo serverInfo = new SpongeServerInfo(Sponge.getServer());
18+
private final SpongeServerInfo serverInfo = new SpongeServerInfo(Sponge.getServer());
1919

2020
@Override
2121
public Map<String, IServerInfo> getServers() {
22-
Map<String, IServerInfo> map = new HashMap<>();
23-
24-
25-
return map;
22+
return new HashMap<>();
2623
}
2724

2825
@Override
@@ -35,7 +32,7 @@ public IServerInfo getServer(String name) {
3532
}
3633

3734
@Override
38-
public IServerInfo toServer(Server server) {
35+
public IServerInfo toServer(Object server) {
3936
return serverInfo;
4037
}
4138
}

sponge/src/main/java/com/github/fernthedev/fernapi/server/sponge/network/SpongeServerInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class SpongeServerInfo implements IServerInfo {
1414

1515
@NonNull
16-
private Server server;
16+
private final Server server;
1717

1818
private final InetSocketAddress address = Sponge.getServer().getBoundAddress().get();
1919

velocity/src/main/java/com/github/fernthedev/fernapi/server/velocity/interfaces/VelocityServerInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class VelocityServerInfo implements RegisteredServer, IServerInfo {
2525

2626
@NonNull
27-
private RegisteredServer serverInfo;
27+
private final RegisteredServer serverInfo;
2828

2929
/**
3030
* Get the name of this server.

velocity/src/main/java/com/github/fernthedev/fernapi/server/velocity/network/VelocityNetworkHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public boolean isRegistered(Object sender) {
1919
}
2020

2121
@NonNull
22-
private FernVelocityAPI plugin;
22+
private final FernVelocityAPI plugin;
2323

2424
@Override
2525
public Map<String, IServerInfo> getServers() {
@@ -35,7 +35,8 @@ public IServerInfo getServer(String name) {
3535
}
3636

3737
@Override
38-
public IServerInfo toServer(ServerConnection server) {
39-
return new VelocityServerInfo(server.getServer());
38+
public IServerInfo toServer(Object server) {
39+
if (!(server instanceof ServerConnection)) throw new IllegalArgumentException("Server data " + server + " is not an instance of " + ServerConnection.class.getName());
40+
return new VelocityServerInfo(((ServerConnection) server).getServer());
4041
}
4142
}

0 commit comments

Comments
 (0)