ResettingWorldTask.java

com.mojang.realmsclient.util.task.ResettingWorldTask

信息

  • 全限定名:com.mojang.realmsclient.util.task.ResettingWorldTask
  • 类型:public abstract class
  • 包:com.mojang.realmsclient.util.task
  • 源码路径:src/main/java/com/mojang/realmsclient/util/task/ResettingWorldTask.java
  • 起始行号:L13
  • 继承:LongRunningTask
  • 职责:

    TODO

字段/常量

  • LOGGER

    • 类型: Logger
    • 修饰符: private static final
    • 源码定位: L14
    • 说明:

      TODO

  • serverId

    • 类型: long
    • 修饰符: private final
    • 源码定位: L15
    • 说明:

      TODO

  • title

    • 类型: Component
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

  • callback

    • 类型: Runnable
    • 修饰符: private final
    • 源码定位: L17
    • 说明:

      TODO

内部类/嵌套类型

构造器

public ResettingWorldTask(long serverId, Component title, Runnable callback) @ L19

  • 构造器名:ResettingWorldTask
  • 源码定位:L19
  • 修饰符:public

参数:

  • serverId: long
  • title: Component
  • callback: Runnable

说明:

TODO

方法

下面的方法块按源码顺序生成。

protected abstract void sendResetRequest(RealmsClient client, long serverId) @ L25

  • 方法名:sendResetRequest
  • 源码定位:L25
  • 返回类型:void
  • 修饰符:protected abstract

参数:

  • client: RealmsClient
  • serverId: long

说明:

TODO

public void run() @ L27

  • 方法名:run
  • 源码定位:L27
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public Component getTitle() @ L64

  • 方法名:getTitle
  • 源码定位:L64
  • 返回类型:Component
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public abstract class ResettingWorldTask extends LongRunningTask {
    private static final Logger LOGGER = LogUtils.getLogger();
    private final long serverId;
    private final Component title;
    private final Runnable callback;
 
    public ResettingWorldTask(long serverId, Component title, Runnable callback) {
        this.serverId = serverId;
        this.title = title;
        this.callback = callback;
    }
 
    protected abstract void sendResetRequest(final RealmsClient client, final long serverId) throws RealmsServiceException;
 
    @Override
    public void run() {
        RealmsClient client = RealmsClient.getOrCreate();
        int i = 0;
 
        while (i < 25) {
            try {
                if (this.aborted()) {
                    return;
                }
 
                this.sendResetRequest(client, this.serverId);
                if (this.aborted()) {
                    return;
                }
 
                this.callback.run();
                return;
            } catch (RetryCallException var4) {
                if (this.aborted()) {
                    return;
                }
 
                pause(var4.delaySeconds);
                i++;
            } catch (Exception var5) {
                if (this.aborted()) {
                    return;
                }
 
                LOGGER.error("Couldn't reset world");
                this.error(var5);
                return;
            }
        }
    }
 
    @Override
    public Component getTitle() {
        return this.title;
    }
}

引用的其他类