Realms data fetch stuff (#1966)

* Realms data fetch stuff

Signed-off-by: liach <liach@users.noreply.github.com>

* missed this name

* Update mappings/net/minecraft/client/realms/gui/FetchTask.mapping

Co-authored-by: liach <liach@users.noreply.github.com>
This commit is contained in:
liach 2021-01-21 17:33:20 -06:00 committed by GitHub
parent ade9c3ded9
commit 13663d73cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,7 @@
CLASS net/minecraft/class_5782 net/minecraft/client/realms/gui/BasicFetchRateLimiter
COMMENT An operational rate limiter.
FIELD field_28449 period Ljava/time/Duration;
FIELD field_28450 clock Ljava/util/function/Supplier;
FIELD field_28451 lastRun Ljava/time/Instant;
METHOD <init> (Ljava/time/Duration;)V
ARG 1 period

View File

@ -0,0 +1,2 @@
CLASS net/minecraft/class_5783 net/minecraft/client/realms/gui/DummyFetchRateLimiter
COMMENT A fetch rate limiter that does nothing.

View File

@ -0,0 +1,8 @@
CLASS net/minecraft/class_5785 net/minecraft/client/realms/gui/FetchRateLimiter
COMMENT A fetch rate limiter allows tracking the period of realms data fetcher
COMMENT tasks even when the fetcher has stopped running. It prevents spamming
COMMENT rate-limited fetches.
METHOD method_33421 onRun ()V
COMMENT Notifies the tracker that the tracked task is run.
METHOD method_33422 getRemainingPeriod ()J
COMMENT Returns the time left before the next scheduled run of the tracked task.

View File

@ -0,0 +1,22 @@
CLASS net/minecraft/class_5784 net/minecraft/client/realms/gui/FetchTask
COMMENT A task for {@link RealmsDataFetcher} that runs at a fixed interval. It
COMMENT optionally supports rate limits and stops when the fetcher is stopped.
FIELD field_28452 condition Ljava/util/function/BooleanSupplier;
FIELD field_28453 rateLimiter Lnet/minecraft/class_5785;
FIELD field_28454 period Ljava/time/Duration;
FIELD field_28455 command Ljava/lang/Runnable;
METHOD <init> (Ljava/lang/Runnable;Ljava/time/Duration;Ljava/util/function/BooleanSupplier;Lnet/minecraft/class_5785;)V
ARG 1 command
ARG 2 period
ARG 3 condition
ARG 4 rateLimiter
METHOD method_33418 createRateLimited (Ljava/lang/Runnable;Ljava/time/Duration;Ljava/util/function/BooleanSupplier;)Lnet/minecraft/class_5784;
ARG 0 command
ARG 1 period
ARG 2 condition
METHOD method_33419 schedule (Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledFuture;
ARG 1 scheduler
METHOD method_33420 create (Ljava/lang/Runnable;Ljava/time/Duration;Ljava/util/function/BooleanSupplier;)Lnet/minecraft/class_5784;
ARG 0 command
ARG 1 period
ARG 2 condition

View File

@ -20,6 +20,12 @@ CLASS net/minecraft/class_4360 net/minecraft/client/realms/gui/RealmsDataFetcher
FIELD field_19657 liveStatsScheduledFuture Ljava/util/concurrent/ScheduledFuture;
FIELD field_19658 unreadNewsScheduledFuture Ljava/util/concurrent/ScheduledFuture;
FIELD field_19659 fetchStatus Ljava/util/Map;
FIELD field_28446 client Lnet/minecraft/class_310;
FIELD field_28447 realms Lnet/minecraft/class_4341;
FIELD field_28448 persistence Lnet/minecraft/class_4432;
METHOD <init> (Lnet/minecraft/class_310;Lnet/minecraft/class_4341;)V
ARG 1 client
ARG 2 realms
METHOD method_21073 isStopped ()Z
METHOD method_21074 removeItem (Lnet/minecraft/class_4877;)V
ARG 1 server
@ -41,6 +47,11 @@ CLASS net/minecraft/class_4360 net/minecraft/client/realms/gui/RealmsDataFetcher
METHOD method_21099 scheduleTasks ()V
METHOD method_21100 cancelTasks ()V
METHOD method_21101 isActive ()Z
METHOD method_33412 updateServerList ()V
METHOD method_33413 updatePendingInvites ()V
METHOD method_33414 updateTrialAvailability ()V
METHOD method_33415 updateLiveStats ()V
METHOD method_33416 updateNews ()V
CLASS class_4364 Task
FIELD field_19664 SERVER_LIST Lnet/minecraft/class_4360$class_4364;
FIELD field_19665 PENDING_INVITE Lnet/minecraft/class_4360$class_4364;

View File

@ -4,6 +4,9 @@ CLASS net/minecraft/class_4432 net/minecraft/client/realms/util/RealmsPersistenc
METHOD method_21550 writeFile (Lnet/minecraft/class_4432$class_4433;)V
ARG 0 data
METHOD method_25279 getFile ()Ljava/io/File;
METHOD method_33423 load ()Lnet/minecraft/class_4432$class_4433;
METHOD method_33424 save (Lnet/minecraft/class_4432$class_4433;)V
ARG 1 data
CLASS class_4433 RealmsPersistenceData
FIELD field_20209 newsLink Ljava/lang/String;
FIELD field_20210 hasUnreadNews Z