55import it .unimi .dsi .fastutil .objects .Object2ObjectArrayMap ;
66import it .unimi .dsi .fastutil .objects .Object2ObjectMap ;
77import lombok .NonNull ;
8- import org . bukkit . plugin . Plugin ;
8+ import lombok . extern . slf4j . Slf4j ;
99import org .jetbrains .annotations .NotNull ;
1010import org .jetbrains .annotations .Nullable ;
11- import org .slf4j .Logger ;
1211import studio .o7 .octopus .plugin .api .Octopus ;
1312import studio .o7 .octopus .plugin .api .listener .Listener ;
1413import studio .o7 .octopus .plugin .observer .EmptyObserver ;
2221import java .util .UUID ;
2322import java .util .concurrent .atomic .AtomicReference ;
2423
24+ @ Slf4j (topic = "OctopusPlugin" )
2525public final class OctopusImpl implements Octopus {
2626 private static final EmptyObserver EMPTY_OBSERVER = new EmptyObserver ();
2727
2828 private final OctopusGrpc .OctopusStub stub = OctopusSDK .stub ();
2929 private final OctopusGrpc .OctopusBlockingStub blockingStub = OctopusSDK .blockingStub ();
3030 private final Object2ObjectMap <UUID , Pair <Listener , StreamObserver <ListenMessage >>> listeners = new Object2ObjectArrayMap <>();
3131
32- private final Logger logger ;
33-
34- public OctopusImpl (Plugin plugin ) {
35- logger = plugin .getSLF4JLogger ();
36- }
37-
3832 @ Override
3933 public @ NotNull Collection <Entry > get (@ NonNull String keyPattern , boolean includeExpired , @ Nullable Instant createdRangeStart , @ Nullable Instant createdRangeEnd ) {
4034 var builder = GetRequest .newBuilder ();
@@ -58,33 +52,35 @@ public void registerListener(@NonNull Listener listener) {
5852 var observer = stub .listen (new StreamObserver <>() {
5953 @ Override
6054 public void onNext (EventCall value ) {
61- try {
62- var request = requestRef .get ();
63- if (request == null ) return ;
55+ var start = System .currentTimeMillis ();
56+ var request = requestRef .get ();
57+ if (request == null ) return ;
58+
59+ listener .onCall (value .getObject ());
6460
65- listener .onCall (value .getObject ());
61+ var msg = ListenMessage .newBuilder ()
62+ .setCallback (value )
63+ .build ();
6664
67- var msg = ListenMessage .newBuilder ()
68- .setCallback (value )
69- .build ();
65+ request = requestRef .get ();
66+ if (request == null ) return ;
7067
71- request .onNext (msg );
72- } catch (Exception e ) {
73- logger .error (e .getMessage (), e );
74- }
68+ request .onNext (msg );
69+ log .debug ("Finished EventCall `{}` in {}ms" , value .getCallId (), System .currentTimeMillis () - start );
7570 }
7671
7772 @ Override
7873 public void onError (Throwable t ) {
7974 requestRef .set (null );
80- logger .error ("Cannot call event on listener {} with key-pattern {}" , listener .getListenerUniqueId (), listener .getKeyPattern (), t );
75+ log .error ("Cannot call event on listener {} with key-pattern {}" , listener .getListenerUniqueId (), listener .getKeyPattern (), t );
8176 unregisterListener (listener );
8277 }
8378
8479 @ Override
8580 public void onCompleted () {
8681 requestRef .set (null );
8782 unregisterListener (listener );
83+ log .debug ("Completed listener `{}`" , listener .getListenerUniqueId ());
8884 }
8985 });
9086
0 commit comments