Skip to content

Commit

Permalink
Build SearchFilter directly in CommandLineArgs
Browse files Browse the repository at this point in the history
Null check on isFiltered method.
  • Loading branch information
replydev committed Feb 22, 2023
1 parent cc362a1 commit 2de4731
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 28 deletions.
15 changes: 9 additions & 6 deletions src/main/java/me/replydev/qubo/CommandLineArgs.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.experimental.NonFinal;
import me.replydev.utils.IpList;
import me.replydev.utils.PortList;
import me.replydev.utils.SearchFilter;
import org.apache.commons.cli.*;

@Value
Expand All @@ -14,9 +15,7 @@ public class CommandLineArgs {
PortList portRange;
boolean skipCommon;
int timeout;
String filterVersion;
String filterMotd;
int filterPlayers;
SearchFilter searchFilter;
int count;

@NonFinal
Expand All @@ -35,9 +34,13 @@ public CommandLineArgs(String[] command) throws NumberFormatException {
skipCommon = !cmd.hasOption("all");
timeout = Integer.parseInt(cmd.getOptionValue("t"));

filterVersion = cmd.getOptionValue("v", null);
filterMotd = cmd.getOptionValue("m", null);
filterPlayers = Integer.parseInt(cmd.getOptionValue("o", "0"));
searchFilter =
SearchFilter
.builder()
.version(cmd.getOptionValue("v", null))
.motd(cmd.getOptionValue("m", null))
.minimumPlayers(Integer.parseInt(cmd.getOptionValue("o", "0")))
.build();

count = Integer.parseInt(cmd.getOptionValue("c", "1"));
}
Expand Down
13 changes: 11 additions & 2 deletions src/main/java/me/replydev/qubo/PingRunnable.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package me.replydev.qubo;

import java.io.IOException;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import lombok.Builder;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -64,10 +65,18 @@ private boolean isFiltered(ServerResponse serverResponse) {
return true;
}

if (serverResponse.getDescription().getText().contains(filter.getMotd())) {
if (
serverResponse
.getDescription()
.getText()
.contains(Optional.ofNullable(filter.getMotd()).orElse(""))
) {
return true;
}

return serverResponse.getVersion().getName().contains(filter.getVersion());
return serverResponse
.getVersion()
.getName()
.contains(Optional.ofNullable(filter.getVersion()).orElse(""));
}
}
14 changes: 1 addition & 13 deletions src/main/java/me/replydev/qubo/QuboInstance.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import lombok.extern.slf4j.Slf4j;
import me.replydev.utils.IpList;
import me.replydev.utils.PortList;
import me.replydev.utils.SearchFilter;
import org.replydev.mcping.PingOptions;

@Slf4j
Expand Down Expand Up @@ -43,21 +42,10 @@ public class QuboInstance {
@Getter
private final AtomicInteger unfilteredFoundServers;

@Getter
private final SearchFilter filter;

public QuboInstance(CommandLineArgs commandLineArgs) {
this.commandLineArgs = commandLineArgs;
this.foundServers = new AtomicInteger();
this.unfilteredFoundServers = new AtomicInteger();

SearchFilter filter = new SearchFilter();

if (commandLineArgs.getFilterPlayers() != 0) filter.setMinimumPlayers(commandLineArgs.getFilterPlayers());
if (commandLineArgs.getFilterMotd() != null) filter.setMotd(commandLineArgs.getFilterMotd());
if (commandLineArgs.getFilterVersion() != null) filter.setMotd(commandLineArgs.getFilterVersion());

this.filter = filter;
}

public void run() {
Expand Down Expand Up @@ -108,7 +96,7 @@ private boolean checkServersExecutor() throws InterruptedException, NumberFormat
.foundServers(foundServers)
.unfilteredFoundServers(unfilteredFoundServers)
.count(commandLineArgs.getCount())
.filter(filter)
.filter(commandLineArgs.getSearchFilter())
.build();

checkService.execute(pingJob);
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/me/replydev/utils/SearchFilter.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package me.replydev.utils;

import lombok.Getter;
import lombok.Setter;
import lombok.Builder;
import lombok.Value;

/**
* @author Swofty#0001
*/
@Getter
@Setter
@Value
@Builder
public class SearchFilter {
private int minimumPlayers = -1;
private String version = null;
private String motd = null;

int minimumPlayers;
String version;
String motd;
}

0 comments on commit 2de4731

Please # to comment.