AssetTypeRegistry class

Пакет: com.hypixel.hytale.builtin.asseteditor

Файл: com/hypixel/hytale/builtin/asseteditor/AssetTypeRegistry.java

Поля (4)

МодификаторыТипИмя
final HytaleLogger LOGGER
List var1
String var2
AssetTypeHandler var4

Методы (8)

МодификаторыВозвратСигнатура
public AssetTypeHandler getAssetTypeHandlerAssetTypeHandler getAssetTypeHandler(String var1)
if if(var4 == null)
if if(var3 != -1)
public boolean isPathInAssetTypeFolderboolean isPathInAssetTypeFolder(@Nonnull Path var1)
public void registerAssetTypevoid registerAssetType(@Nonnull AssetTypeHandler var1)
public void sendPacketvoid sendPacket(@Nonnull EditorClient var1)
public void setupPacketvoid setupPacket()
public void unregisterAssetTypevoid unregisterAssetType(@Nonnull AssetTypeHandler var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.asseteditor;

class="kw">import com.hypixel.hytale.builtin.asseteditor.assettypehandler.AssetTypeHandler;
class="kw">import com.hypixel.hytale.common.util.PathUtil;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorAssetType;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorPopupNotificationType;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorSetupAssetTypes;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.nio.file.Path;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class AssetTypeRegistry {
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   class="kw">private class="kw">final ConcurrentHashMap<String, AssetTypeHandler> assetTypeHandlers = new ConcurrentHashMap<>();
   class="kw">private AssetEditorSetupAssetTypes setupPacket;

   class="kw">public AssetTypeRegistry() {
   }

   @Nonnull
   class="kw">public Map<String, AssetTypeHandler> getRegisteredAssetTypeHandlers() {
      class="kw">return this.assetTypeHandlers;
   }

   class="kw">public void registerAssetType(@Nonnull AssetTypeHandler var1) {
      if (this.assetTypeHandlers.putIfAbsent(var1.getConfig().id, var1) != null) {
         throw new IllegalArgumentException("An asset type with id '" + var1.getConfig().id + "' is already registered");
      }
   }

   class="kw">public void unregisterAssetType(@Nonnull AssetTypeHandler var1) {
      this.assetTypeHandlers.remove(var1.getConfig().id);
   }

   class="kw">public AssetTypeHandler getAssetTypeHandler(String var1) {
      class="kw">return this.assetTypeHandlers.get(var1);
   }

   @Nullable
   class="kw">public AssetTypeHandler getAssetTypeHandlerForPath(@Nonnull Path var1) {
      String var2 = PathUtil.getFileExtension(var1);
      if (var2.isEmpty()) {
         class="kw">return null;
      }

      for (AssetTypeHandler var4 : this.assetTypeHandlers.values()) {
         if (var4.getConfig().fileExtension.equalsIgnoreCase(var2) && var1.startsWith(var4.getConfig().path)) {
            class="kw">return var4;
         }
      }

      class="kw">return null;
   }

   class="kw">public boolean isPathInAssetTypeFolder(@Nonnull Path var1) {
      for (AssetTypeHandler var3 : this.assetTypeHandlers.values()) {
         if (var1.startsWith(var3.getRootPath()) && !var1.equals(var3.getRootPath())) {
            class="kw">return true;
         }
      }

      class="kw">return false;
   }

   @Nullable
   class="kw">public AssetTypeHandler tryGetAssetTypeHandler(@Nonnull Path var1, @Nonnull EditorClient var2, int var3) {
      AssetTypeHandler var4 = this.getAssetTypeHandlerForPath(var1);
      if (var4 == null) {
         LOGGER.at(Level.WARNING).log("Invalid asset type for %s", var1);
         if (var3 != -1) {
            var2.sendFailureReply(var3, Message.translation("server.assetEditor.messages.invalidAssetType"));
         } else {
            var2.sendPopupNotification(AssetEditorPopupNotificationType.Error, Message.translation("server.assetEditor.messages.invalidAssetType"));
         }

         class="kw">return null;
      } else {
         class="kw">return var4;
      }
   }

   class="kw">public void sendPacket(@Nonnull EditorClient var1) {
      var1.getPacketHandler().write(this.setupPacket);
   }

   class="kw">public void setupPacket() {
      List var1 = new ObjectArrayList();

      for (AssetTypeHandler var3 : this.assetTypeHandlers.values()) {
         var1.add(var3.getConfig());
      }

      this.setupPacket = new AssetEditorSetupAssetTypes(var1.toArray(AssetEditorAssetType[]::new));
   }
}