HyCodeYourTale
classpublicPriority 3

ConnectedBlocksModule

com.hypixel.hytale.server.core.universe.world.connectedblocks.ConnectedBlocksModule

extends JavaPlugin

0

Methods

0

Public Methods

1

Fields

1

Constructors

Constants

PluginManifestMANIFEST= PluginManifest.corePlugin(ConnectedBlocksModule.class) .depends(EntityModule.class) ....

Constructors

public
ConnectedBlocksModule(JavaPluginInit init)

Fields

Private/Package Fields (1)

privateConnectedBlocksModule instance

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.core.universe.world.connectedblocks;

import com.hypixel.hytale.assetstore.AssetRegistry;
import com.hypixel.hytale.assetstore.event.LoadedAssetsEvent;
import com.hypixel.hytale.assetstore.map.BlockTypeAssetMap;
import com.hypixel.hytale.common.plugin.PluginManifest;
import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
import com.hypixel.hytale.server.core.modules.entity.EntityModule;
import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import javax.annotation.Nonnull;

public class ConnectedBlocksModule extends JavaPlugin {
   public static final PluginManifest MANIFEST = PluginManifest.corePlugin(ConnectedBlocksModule.class)
      .depends(EntityModule.class)
      .depends(InteractionModule.class)
      .build();
   private static ConnectedBlocksModule instance;

   public static ConnectedBlocksModule get() {
      return instance;
   }

   public ConnectedBlocksModule(@Nonnull JavaPluginInit init) {
      super(init);
      instance = this;
   }

   @Override
   protected void setup() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.StackOverflowError
      //   at java.base/java.lang.ThreadLocal$ThreadLocalMap.getEntry(ThreadLocal.java:491)
      //   at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:186)
      //   at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:171)
      //   at org.jetbrains.java.decompiler.main.DecompilerContext.getCurrentContext(DecompilerContext.java:67)
      //   at org.jetbrains.java.decompiler.main.DecompilerContext.getStructContext(DecompilerContext.java:137)
      //   at org.jetbrains.java.decompiler.struct.gen.generics.GenericType.getGenericSuperType(GenericType.java:667)
      //   at org.jetbrains.java.decompiler.modules.decompiler.exps.InvocationExprent.lambda$isMappingInBounds$18(InvocationExprent.java:1608)
      //   at org.jetbrains.java.decompiler.modules.decompiler.exps.InvocationExprent.lambda$isMappingInBounds$19(InvocationExprent.java:1648)
      //
      // Bytecode:
      // 00: ldc com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockTemplateAsset
      // 02: new com/hypixel/hytale/assetstore/map/DefaultAssetMap
      // 05: dup
      // 06: invokespecial com/hypixel/hytale/assetstore/map/DefaultAssetMap.<init> ()V
      // 09: invokestatic com/hypixel/hytale/server/core/asset/HytaleAssetStore.builder (Ljava/lang/Class;Lcom/hypixel/hytale/assetstore/AssetMap;)Lcom/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder;
      // 0c: ldc "Item/CustomConnectedBlockTemplates"
      // 0e: invokevirtual com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder.setPath (Ljava/lang/String;)Lcom/hypixel/hytale/assetstore/AssetStore$Builder;
      // 11: checkcast com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder
      // 14: invokedynamic apply ()Ljava/util/function/Function; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ (Ljava/lang/Object;)Ljava/lang/Object;, com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockTemplateAsset.getId ()Ljava/lang/String;, (Lcom/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockTemplateAsset;)Ljava/lang/String; ]
      // 19: invokevirtual com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder.setKeyFunction (Ljava/util/function/Function;)Lcom/hypixel/hytale/assetstore/AssetStore$Builder;
      // 1c: checkcast com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder
      // 1f: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockTemplateAsset.CODEC Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec;
      // 22: invokevirtual com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder.setCodec (Lcom/hypixel/hytale/assetstore/codec/AssetCodec;)Lcom/hypixel/hytale/assetstore/AssetStore$Builder;
      // 25: checkcast com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder
      // 28: invokevirtual com/hypixel/hytale/server/core/asset/HytaleAssetStore$Builder.build ()Lcom/hypixel/hytale/server/core/asset/HytaleAssetStore;
      // 2b: invokestatic com/hypixel/hytale/assetstore/AssetRegistry.register (Lcom/hypixel/hytale/assetstore/AssetStore;)Lcom/hypixel/hytale/assetstore/AssetStore;
      // 2e: pop
      // 2f: aload 0
      // 30: invokevirtual com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlocksModule.getEventRegistry ()Lcom/hypixel/hytale/event/EventRegistry;
      // 33: ldc com/hypixel/hytale/assetstore/event/LoadedAssetsEvent
      // 35: ldc com/hypixel/hytale/server/core/asset/type/blocktype/config/BlockType
      // 37: invokedynamic accept ()Ljava/util/function/Consumer; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ (Ljava/lang/Object;)V, com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlocksModule.onBlockTypesChanged (Lcom/hypixel/hytale/assetstore/event/LoadedAssetsEvent;)V, (Lcom/hypixel/hytale/assetstore/event/LoadedAssetsEvent;)V ]
      // 3c: invokevirtual com/hypixel/hytale/event/EventRegistry.register (Ljava/lang/Class;Ljava/lang/Object;Ljava/util/function/Consumer;)Lcom/hypixel/hytale/event/EventRegistration;
      // 3f: pop
      // 40: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomTemplateConnectedBlockPattern.CODEC Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 43: ldc "Custom"
      // 45: ldc com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockPattern
      // 47: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockPattern.CODEC Lcom/hypixel/hytale/codec/builder/BuilderCodec;
      // 4a: invokevirtual com/hypixel/hytale/codec/lookup/CodecMapCodec.register (Ljava/lang/String;Ljava/lang/Class;Lcom/hypixel/hytale/codec/Codec;)Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 4d: pop
      // 4e: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 51: ldc "CustomTemplate"
      // 53: ldc com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomTemplateConnectedBlockRuleSet
      // 55: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomTemplateConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/builder/BuilderCodec;
      // 58: invokevirtual com/hypixel/hytale/codec/lookup/CodecMapCodec.register (Ljava/lang/String;Ljava/lang/Class;Lcom/hypixel/hytale/codec/Codec;)Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 5b: pop
      // 5c: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 5f: ldc "Stair"
      // 61: ldc com/hypixel/hytale/server/core/universe/world/connectedblocks/builtin/StairConnectedBlockRuleSet
      // 63: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/builtin/StairConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/builder/BuilderCodec;
      // 66: invokevirtual com/hypixel/hytale/codec/lookup/CodecMapCodec.register (Ljava/lang/String;Ljava/lang/Class;Lcom/hypixel/hytale/codec/Codec;)Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 69: pop
      // 6a: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 6d: ldc "Roof"
      // 6f: ldc com/hypixel/hytale/server/core/universe/world/connectedblocks/builtin/RoofConnectedBlockRuleSet
      // 71: getstatic com/hypixel/hytale/server/core/universe/world/connectedblocks/builtin/RoofConnectedBlockRuleSet.CODEC Lcom/hypixel/hytale/codec/builder/BuilderCodec;
      // 74: invokevirtual com/hypixel/hytale/codec/lookup/CodecMapCodec.register (Ljava/lang/String;Ljava/lang/Class;Lcom/hypixel/hytale/codec/Codec;)Lcom/hypixel/hytale/codec/lookup/CodecMapCodec;
      // 77: pop
      // 78: return
   }

   private static void onBlockTypesChanged(@Nonnull LoadedAssetsEvent<String, BlockType, BlockTypeAssetMap<String, BlockType>> event) {
      for (BlockType blockType : event.getLoadedAssets().values()) {
         ConnectedBlockRuleSet ruleSet = blockType.getConnectedBlockRuleSet();
         if (ruleSet != null) {
            ruleSet.updateCachedBlockTypes(blockType, event.getAssetMap());
         }
      }
   }
}