Advertisement
YTMango

KubeJS 1.20.1 entity registration script

Dec 18th, 2023
672
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.41 KB | Source Code | 0 0
  1. const $DeferredRegister = Java.loadClass('dev.architectury.registry.registries.DeferredRegister')
  2. const $Registry = Java.loadClass('net.minecraft.core.registries.Registries')
  3. const $EntityTypeBuilder = Java.loadClass('net.minecraft.world.entity.EntityType$Builder')
  4. const $MobCategory = Java.loadClass('net.minecraft.world.entity.MobCategory')
  5. const $Arrow = Java.loadClass('net.minecraft.world.entity.projectile.Arrow')
  6. //Create the deferred register, so that the entity can be registered
  7. const ENTITIES = $DeferredRegister.create('kubejs', $Registry.ENTITY_TYPE)
  8. //Use the existing Arrow entity registry and name it "dummy"
  9. const DUMMY_ENTITY = () => $EntityTypeBuilder.of((entityType, level) => new $Arrow(entityType, level), $MobCategory.MISC).sized(0.5, 0.5).build('dummy')
  10. //Pass it to a global variable so that the client can read it and make an entity renderer
  11. global.ENTITY = {
  12.     DUMMY: ENTITIES['register(java.lang.String,java.util.function.Supplier)']('dummy', DUMMY_ENTITY)
  13. }
  14. StartupEvents.init(event => {
  15.     ENTITIES.register()
  16.     if (!Platform.isClientEnvironment()) return;
  17.     const $TippableArrowRenderer = Java.loadClass('net.minecraft.client.renderer.entity.TippableArrowRenderer')
  18.     const $EntityRendererRegistry = Java.loadClass('dev.architectury.registry.client.level.entity.EntityRendererRegistry')
  19.     $EntityRendererRegistry.register(global.ENTITY.DUMMY, (context) => new $TippableArrowRenderer(context))
  20. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement