let me turn this into a plugin

This commit is contained in:
kento2 2026-02-15 10:35:57 +01:00
parent 145a3116bc
commit 5a4ae1b7f1
4 changed files with 35 additions and 8 deletions

View file

@ -2,9 +2,6 @@ package de.kentoj.scrow.friends;
import de.kentoj.scrow.services.friends.FriendRequest;
import de.kentoj.scrow.services.friends.Friendship;
import de.kentoj.scrow.util.pair.Tuple2;
import org.bson.codecs.OverridableUuidRepresentationUuidCodec;
import org.bson.types.ObjectId;
import org.jetbrains.annotations.NotNull;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@ -17,17 +14,22 @@ public interface FriendshipService {
/**
* @param initiator id of player who wished to end the friendship
* @param other id of the player the initiator wants to end the friendship with
* @param other id of the player the initiator wants to end the friendship with
* @return true on success, false if no such friendship existed.
*/
Mono<@NotNull Boolean> endFriendship(Tuple2<UUID, UUID> playerIds);
Mono<@NotNull Boolean> endFriendship(UUID initiator, UUID other);
Flux<@NotNull FriendRequest> getIncomingFriendRequests(UUID playerId);
Flux<@NotNull FriendRequest> getOutgoingFriendRequests(UUID playerId);
/**
* @param initiator id of player sending the friend request
* @param to id of the player the initiator wants to befriend
* @param to id of the player the initiator wants to befriend
* @return true on success, false if already requested
*/
Mono<@NotNull Boolean> sendFriendRequest(UUID initiator, UUID to);
Mono<@NotNull Friendship> acceptFriendRequest(ObjectId objectId);
Mono<@NotNull Friendship> acceptFriendRequest(UUID from, UUID to);
Mono<@NotNull Friendship> denyFriendRequest(UUID from, UUID to);
}

View file

@ -26,7 +26,7 @@ public class BsonFriendship implements Friendship {
) {
Preconditions.checkArgument(playerIds.getFirst() != playerIds.getSecond());
this.id = id;
this.playerIds = toOrderedTuple(playerIds);
this.playerIds = FriendshipUtils.toOrderedTuple(playerIds);
this.createdAt = createdAt;
}