Made matchmaker null safe, bump the version

This commit is contained in:
Tracker-Friendly 2025-02-27 17:06:16 +00:00
parent 4368601532
commit c7b36aadca
2 changed files with 24 additions and 13 deletions

View File

@ -2,6 +2,6 @@
org.gradle.jvmargs=-Xmx1G
org.gradle.parallel=true
# Properties
mod_version=1.1.0
mod_version=1.1.1
maven_group=arzumify.presence
archives_base_name=presence

View File

@ -25,26 +25,37 @@ public class MatchMaker<P extends Presence<P>, T extends PresenceProvider<P>> {
}
public Set<T> Search(T match, Channel channel) {
Set<T> matches = new HashSet<>();
Set<Vec2i> presenceChunks = match.presence().GetCollisionChunks();
if (!Collections.disjoint(presenceChunks, channels.get(channel).keySet())) {
presenceChunks.retainAll(channels.get(channel).keySet());
for (Vec2i chunk : presenceChunks) {
for (T matching : channels.get(channel).get(chunk)) {
if (match != matching) {
if (match.presence().Matches(matching.presence())) {
matches.add(matching);
var matches = new HashSet<T>();
var presenceChunks = match.presence().GetCollisionChunks();
var chunks = channels.get(channel);
if (chunks != null) {
if (!Collections.disjoint(presenceChunks, chunks.keySet())) {
presenceChunks.retainAll(chunks.keySet());
for (Vec2i chunk : presenceChunks) {
if (chunks.get(chunk) != null) {
for (T matching : chunks.get(chunk)) {
if (match != matching) {
if (match.presence().Matches(matching.presence())) {
matches.add(matching);
}
}
}
}
}
}
return matches;
} else {
return null;
}
return matches;
}
public void Remove(T match, Channel channel) {
for (Vec2i chunk : match.presence().GetChunks()) {
channels.get(channel).get(chunk).remove(match);
if (channels.get(channel) != null) {
if (channels.get(channel).get(chunk) != null) {
channels.get(channel).get(chunk).remove(match);
}
}
}
}
}
}