diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/IgnoreService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/IgnoreService.java index ac642d35c..0071b9e20 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/IgnoreService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/IgnoreService.java @@ -7,12 +7,12 @@ public interface IgnoreService { CompletableFuture isIgnored(UUID requester, UUID target); - CompletableFuture ignore(UUID requester, UUID target); + void ignore(UUID requester, UUID target); - CompletableFuture ignoreAll(UUID requester); + void ignoreAll(UUID requester); - CompletableFuture unIgnore(UUID requester, UUID target); + void unIgnore(UUID requester, UUID target); - CompletableFuture unIgnoreAll(UUID requester); + void unIgnoreAll(UUID requester); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreCommand.java index f7f7b0a3c..9ce5b959c 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreCommand.java @@ -1,6 +1,7 @@ package com.eternalcode.core.feature.ignore; import com.eternalcode.annotations.scan.command.DescriptionDocs; +import com.eternalcode.commons.scheduler.Scheduler; import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.notice.NoticeService; import com.eternalcode.core.user.User; @@ -19,11 +20,13 @@ class IgnoreCommand { private final IgnoreService ignoreService; private final NoticeService noticeService; + private final Scheduler scheduler; @Inject - IgnoreCommand(IgnoreService ignoreService, NoticeService noticeService) { + IgnoreCommand(IgnoreService ignoreService, NoticeService noticeService, Scheduler scheduler) { this.ignoreService = ignoreService; this.noticeService = noticeService; + this.scheduler = scheduler; } @Execute @@ -48,10 +51,9 @@ void ignore(@Context User sender, @Arg User target) { return; } - this.ignoreService.ignore(senderUuid, targetUuid).thenAccept(cancelled -> { - if (cancelled) { - return; - } + + this.scheduler.run(() -> { + this.ignoreService.ignore(senderUuid, targetUuid); this.noticeService.create() .player(senderUuid) @@ -62,21 +64,19 @@ void ignore(@Context User sender, @Arg User target) { }); } + @Execute(name = "-all", aliases = "*") @DescriptionDocs(description = "Ignore all players") void ignoreAll(@Context User sender) { UUID senderUuid = sender.getUniqueId(); - this.ignoreService.ignoreAll(senderUuid).thenAccept(cancelled -> { - if (cancelled) { - return; - } + this.ignoreService.ignoreAll(senderUuid); + + this.noticeService.create() + .player(senderUuid) + .notice(translation -> translation.privateChat().ignoreAll()) + .send(); - this.noticeService.create() - .player(senderUuid) - .notice(translation -> translation.privateChat().ignoreAll()) - .send(); - }); } } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreServiceImpl.java index 501d36a68..f72c61e40 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreServiceImpl.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreServiceImpl.java @@ -7,7 +7,7 @@ import com.eternalcode.core.feature.ignore.event.UnIgnoreEvent; import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.injector.annotations.component.Service; - +import com.eternalcode.core.util.FutureHandler; import java.util.UUID; import java.util.concurrent.CompletableFuture; @@ -29,45 +29,46 @@ public CompletableFuture isIgnored(UUID requester, UUID target) { } @Override - public CompletableFuture ignore(UUID requester, UUID target) { + public void ignore(UUID requester, UUID target) { IgnoreEvent event = this.caller.callEvent(new IgnoreEvent(requester, target)); if (event.isCancelled()) { - return CompletableFuture.completedFuture(false); + return; } - return this.ignoreRepository.ignore(requester, target).thenApply(unused -> true); + this.ignoreRepository.ignore(requester, target).thenApply(unused -> FutureHandler.whenSuccess(null)); } @Override - public CompletableFuture ignoreAll(UUID requester) { + public void ignoreAll(UUID requester) { IgnoreAllEvent event = this.caller.callEvent(new IgnoreAllEvent(requester)); if (event.isCancelled()) { - return CompletableFuture.completedFuture(false); + return; } - return this.ignoreRepository.ignoreAll(requester).thenApply(unused -> true); + this.ignoreRepository.ignoreAll(requester).thenApply(unused -> FutureHandler.whenSuccess(null)); } @Override - public CompletableFuture unIgnore(UUID requester, UUID target) { + public void unIgnore(UUID requester, UUID target) { UnIgnoreEvent event = this.caller.callEvent(new UnIgnoreEvent(requester, target)); if (event.isCancelled()) { - return CompletableFuture.completedFuture(false); + return; } - return this.ignoreRepository.unIgnore(requester, target).thenApply(unused -> true); + + this.ignoreRepository.unIgnore(requester, target).thenApply(unused -> FutureHandler.whenSuccess(null)); } @Override - public CompletableFuture unIgnoreAll(UUID requester) { + public void unIgnoreAll(UUID requester) { UnIgnoreAllEvent event = this.caller.callEvent(new UnIgnoreAllEvent(requester)); if (event.isCancelled()) { - return CompletableFuture.completedFuture(false); + return; } - return this.ignoreRepository.unIgnoreAll(requester).thenApply(unused -> true); - } + this.ignoreRepository.unIgnoreAll(requester).thenApply(unused -> FutureHandler.whenSuccess(null)); + } } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/UnIgnoreCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/UnIgnoreCommand.java index 1e704d940..6f0aa1b49 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/UnIgnoreCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/UnIgnoreCommand.java @@ -1,6 +1,7 @@ package com.eternalcode.core.feature.ignore; import com.eternalcode.annotations.scan.command.DescriptionDocs; +import com.eternalcode.commons.scheduler.Scheduler; import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.notice.NoticeService; import com.eternalcode.core.user.User; @@ -19,11 +20,13 @@ class UnIgnoreCommand { private final IgnoreService ignoreService; private final NoticeService noticeService; + private final Scheduler scheduler; @Inject - public UnIgnoreCommand(IgnoreService ignoreService, NoticeService noticeService) { + public UnIgnoreCommand(IgnoreService ignoreService, NoticeService noticeService, Scheduler scheduler) { this.ignoreService = ignoreService; this.noticeService = noticeService; + this.scheduler = scheduler; } @Execute @@ -48,10 +51,9 @@ void ignore(@Context User sender, @Arg User target) { return; } - this.ignoreService.unIgnore(senderUuid, targetUuid).thenAccept(cancelled -> { - if (cancelled) { - return; - } + + this.scheduler.run(() -> { + this.ignoreService.unIgnore(senderUuid, targetUuid); this.noticeService.create() .player(senderUuid) @@ -67,16 +69,12 @@ void ignore(@Context User sender, @Arg User target) { void unIgnoreAll(@Context User sender) { UUID senderUuid = sender.getUniqueId(); - this.ignoreService.unIgnoreAll(senderUuid).thenAccept(cancelled -> { - if (cancelled) { - return; - } + this.ignoreService.unIgnoreAll(senderUuid); - this.noticeService.create() - .player(senderUuid) - .notice(translation -> translation.privateChat().unIgnoreAll()) - .send(); - }); - } + this.noticeService.create() + .player(senderUuid) + .notice(translation -> translation.privateChat().unIgnoreAll()) + .send(); + } }