AnchorActionModule class

Пакет: com.hypixel.hytale.server.core.modules.anchoraction

Файл: com/hypixel/hytale/server/core/modules/anchoraction/AnchorActionModule.java

extends: JavaPlugin

Поля (9)

МодификаторыТипИмя
final PluginManifest MANIFEST
instance
Ref var2
Store var3
String var3
var3
World var4
BsonDocument var4
AnchorActionHandler var5

Методы (9)

МодификаторыВозвратСигнатура
static AnchorActionModule getAnchorActionModule get()
abstract void handlevoid handle(@Nonnull PlayerRef var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3)
if if(var2 != null)
if if(var5 == null)
public void registervoid register(@Nonnull String var1, @Nonnull AnchorActionHandler var2)
public void registervoid register(@Nonnull String var1, @Nonnull AnchorActionModule.WorldThreadAnchorActionHandler var2)
abstract super super(var1)
public boolean tryHandleboolean tryHandle(@Nonnull PlayerRef var1, @Nonnull String var2)
public void unregistervoid unregister(@Nonnull String var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.anchoraction;

class="kw">import com.hypixel.hytale.common.plugin.PluginManifest;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.BsonUtil;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonDocument;

class="kw">public class AnchorActionModule class="kw">extends JavaPlugin {
   class="kw">public class="kw">static class="kw">final PluginManifest MANIFEST = PluginManifest.corePlugin(AnchorActionModule.class).build();
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   class="kw">private class="kw">static AnchorActionModule instance;
   class="kw">private class="kw">final Map<String, AnchorActionHandler> handlers = new ConcurrentHashMap<>();

   class="kw">public class="kw">static AnchorActionModule get() {
      class="kw">return instance;
   }

   class="kw">public AnchorActionModule(@Nonnull JavaPluginInit var1) {
      super(var1);
      instance = this;
   }

   class="kw">public void register(@Nonnull String var1, @Nonnull AnchorActionHandler var2) {
      this.handlers.put(var1, var2);
   }

   class="kw">public void register(@Nonnull String var1, @Nonnull AnchorActionModule.WorldThreadAnchorActionHandler var2) {
      this.register(var1, var1x -> {
         Ref var2 = var1x.getReference();
         if (var2 != null) {
            Store var3 = var2.getStore();
            World var4 = var3.getExternalData().getWorld();
            var4.execute(() -> {
               if (var2.isValid()) {
                  var2.handle(var1x, var2, var3);
               }
            });
         }
      });
   }

   class="kw">public void unregister(@Nonnull String var1) {
      this.handlers.remove(var1);
   }

   class="kw">public boolean tryHandle(@Nonnull PlayerRef var1, @Nonnull String var2) {
      String var3 = null;

      try {
         BsonDocument var4 = BsonUtil.parseWithMaxDepth(var2);
         if (!var4.containsKey("action")) {
            class="kw">return false;
         }

         var3 = var4.getString("action").getValue();
         AnchorActionHandler var5 = this.handlers.get(var3);
         if (var5 == null) {
            class="kw">return false;
         }

         var5.handle(var1);
         class="kw">return true;
      } catch (Exception var6) {
         ((HytaleLogger.Api)((HytaleLogger.Api)LOGGER.atWarning()).withCause(var6))
            .log("Failed to handle anchor action '%s' for player %s", var3, var1.getUuid());
         class="kw">return false;
      }
   }

   @FunctionalInterface
   class="kw">public class="kw">interface WorldThreadAnchorActionHandler {
      void handle(@Nonnull PlayerRef var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3);
   }
}