Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mclich

Members
  • Joined

  • Last visited

Everything posted by mclich

  1. Oh, i thought DistExecutor.runWhenOn can be called not depending on logical side. Thanks for information, i'll try fix it
  2. I also tried it. Instead of world.getServer().getPlayerList().respawn(player, false) i tried DistExecutor.unsafeRunWhenOn(Dist.CLIENT, ()->()->Minecraft.getInstance().player.respawn()) but it actually did nothing
  3. Sorry for not responding for a while. Here is my repo: https://github.com/mclich/ElderNorseGods.git A little update: the strange thing is that even an exception occurs, player will be teleported to spawn point anyway, but after that player just cannot move, break blocks or do any other action. Main camera still moves, but it looks like it "stuck" inside players head
  4. So as i understand the exception occurs when game tries to delete player from the chunk, but can not find it there: public void removePlayer(SectionPos p_219367_1_, ServerPlayerEntity p_219367_2_) { long i = p_219367_1_.chunk().toLong(); ObjectSet<ServerPlayerEntity> objectset = this.playersPerChunk.get(i); objectset.remove(p_219367_2_); if (objectset.isEmpty()) { this.playersPerChunk.remove(i); this.naturalSpawnChunkCounter.update(i, Integer.MAX_VALUE, false); this.playerTicketManager.update(i, Integer.MAX_VALUE, false); } } objectset.remove(p_219367_2_) that line actually throws NullPointerException, am i right?
  5. [17:29:37] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception net.minecraft.crash.ReportedException: Ticking player at net.minecraft.network.NetworkSystem.tick(NetworkSystem.java:137) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:865) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:787) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.tickServer(IntegratedServer.java:78) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:642) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_291] {} Caused by: java.lang.NullPointerException at net.minecraft.world.server.TicketManager.removePlayer(TicketManager.java:227) ~[forge:?] {re:classloading} at net.minecraft.world.server.ChunkManager.updatePlayerStatus(ChunkManager.java:843) ~[forge:?] {re:classloading} at net.minecraft.world.server.ChunkManager.removeEntity(ChunkManager.java:982) ~[forge:?] {re:classloading} at net.minecraft.world.server.ServerChunkProvider.removeEntity(ServerChunkProvider.java:454) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.removeEntityComplete(ServerWorld.java:905) ~[forge:?] {re:classloading} at net.minecraft.world.server.ServerWorld.removeEntity(ServerWorld.java:951) ~[forge:?] {re:classloading} at net.minecraft.world.server.ServerWorld.removePlayer(ServerWorld.java:968) ~[forge:?] {re:classloading} at net.minecraft.server.management.PlayerList.respawn(PlayerList.java:411) ~[forge:?] {re:classloading} at com.mclich.engmod.item.TotemOfAbyssItem.activateTotem(TotemOfAbyssItem.java:72) ~[?:?] {re:classloading} at com.mclich.engmod.item.TotemOfAbyssItem.inventoryTick(TotemOfAbyssItem.java:58) ~[?:?] {re:classloading} at net.minecraft.item.ItemStack.inventoryTick(ItemStack.java:434) ~[forge:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack} at net.minecraft.entity.player.PlayerInventory.tick(PlayerInventory.java:238) ~[forge:?] {re:classloading} at net.minecraft.entity.player.PlayerEntity.aiStep(PlayerEntity.java:487) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2158) ~[forge:?] {re:classloading} at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:223) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.entity.player.ServerPlayerEntity.doTick(ServerPlayerEntity.java:404) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.network.play.ServerPlayNetHandler.tick(ServerPlayNetHandler.java:207) ~[forge:?] {re:classloading} at net.minecraft.network.NetworkManager.tick(NetworkManager.java:226) ~[forge:?] {re:classloading} at net.minecraft.network.NetworkSystem.tick(NetworkSystem.java:134) ~[forge:?] {re:classloading} ... 6 more
  6. I have an item (basically totem), that will teleport player to its spawnpoint after fell in void. I use PlayerList#respawn method to teleport player back, but it throws NullPointerException. The code is below: private void activateTotem(World world, ServerPlayerEntity player, ItemStack itemStack) { player.fallDistance=0F; ItemStack totem=itemStack.copy(); Minecraft minecraft=Minecraft.getInstance(); if(world.dimension()==World.END) player.moveTo(100.5F, 49F, 0.5F); else player=world.getServer().getPlayerList().respawn(player, false); if(minecraft.gameMode.getPlayerMode().isSurvival()) itemStack.shrink(1); DistExecutor.unsafeRunWhenOn(Dist.CLIENT, ()->()->minecraft.gameRenderer.displayItemActivation(totem)); minecraft.particleEngine.createTrackingEmitter(player, ParticleTypes.PORTAL, 40); world.playSound((PlayerEntity)null, player.blockPosition(), SoundEvents.TOTEM_USE, SoundCategory.PLAYERS, 2F, 1F); player.playSound(SoundEvents.TOTEM_USE, 2F, 1F); } Is there any errors or am i just do something wrong?
  7. A little update: i discovered that GameRenderer#renderConfusionOverlay just renders a nausea texture, not an actual distortion, which is not what i needed. I found information about EntityRenderer#setupCameraTransform, but it's not currently available in 1.16.5 forge version. In previous versions it looks like this: f2 = this.mc.thePlayer.prevTimeInPortal + (this.mc.thePlayer.timeInPortal - this.mc.thePlayer.prevTimeInPortal) * par1; if (f2 > 0.0F) { byte b0 = 20; if (this.mc.thePlayer.isPotionActive(Potion.confusion)) { b0 = 7; } float f3 = 5.0F / (f2 * f2 + 5.0F) - f2 * 0.04F; f3 *= f3; GL11.glRotatef(((float)this.rendererUpdateCount + par1) * (float)b0, 0.0F, 1.0F, 1.0F); GL11.glScalef(1.0F / f3, 1.0F, 1.0F); GL11.glRotatef(-((float)this.rendererUpdateCount + par1) * (float)b0, 0.0F, 1.0F, 1.0F); } As i understand, an actual distortion is caused by GL11 static methods. I tried to experiment with those methods and some render events to make nausea distortion effect, but it works not as i expected and still doesn't make what i want. Is there any EntityRenderer#setupCameraTransform method, but available in 1.16.5 forge version? Or maybe am i doing something wrong?
  8. Is there way to use non-static methods? Maybe there is another anotation which looks at all methods?
  9. I commented line which was creating event: //this.renderOverlay(new RenderTickEvent(Phase.END, 10F)); but it still doesn't work. My effect code actually do nothing now, and my createOverlay method is never called Already read the most of it
  10. That is exactly what you have said previously I passed Phase.END to event constructor, so i guess there is no need in this
  11. Effect class: @EventBusSubscriber(modid=ElderNorseGods.MOD_ID, bus=EventBusSubscriber.Bus.MOD) public class DrunkennessEffect extends Effect { public static final String ID="drunkenness"; public static final int COLOR=0xf0c02c; private float deformation=1F; public DrunkennessEffect() { super(EffectType.HARMFUL, DrunkennessEffect.COLOR); this.addAttributeModifier(Attributes.MOVEMENT_SPEED, "1f8955f0-2985-4658-9dd8-0eb83fe32283", -0.05D, AttributeModifier.Operation.MULTIPLY_TOTAL); this.addAttributeModifier(Attributes.ATTACK_SPEED, "490e03c0-319b-4b22-b094-a98636fa6a4a", -0.05D, AttributeModifier.Operation.MULTIPLY_TOTAL); this.addAttributeModifier(Attributes.ATTACK_DAMAGE, "9855509b-0900-48de-a4b0-82eefaa24d62", 0.1D, AttributeModifier.Operation.MULTIPLY_TOTAL); } @Override public boolean isDurationEffectTick(int duration, int amplifier) { this.deformation=this.deformation==1F?3F:1F; this.renderOverlay(new RenderTickEvent(Phase.END, 10F)); return false; } @SubscribeEvent public void renderOverlay(RenderTickEvent event) { this.createOverlay(); } @SuppressWarnings("deprecation") private void createOverlay() { ElderNorseGods.LOGGER.info("createOverlay"); Minecraft minecraft=Minecraft.getInstance(); int i = minecraft.getWindow().getGuiScaledWidth(); int j = minecraft.getWindow().getGuiScaledHeight(); double d0 = MathHelper.lerp((double)deformation, 2.0D, 1.0D); float f = 0.2F * deformation; float f1 = 0.4F * deformation; float f2 = 0.2F * deformation; double d1 = (double)i * d0; double d2 = (double)j * d0; double d3 = ((double)i - d1) / 2.0D; double d4 = ((double)j - d2) / 2.0D; RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE); RenderSystem.color4f(f, f1, f2, 1.0F); minecraft.getTextureManager().bind(new ResourceLocation("minecraft", "textures/misc/nausea.png")); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuilder(); bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX); bufferbuilder.vertex(d3, d4 + d2, -90.0D).uv(0.0F, 1.0F).endVertex(); bufferbuilder.vertex(d3 + d1, d4 + d2, -90.0D).uv(1.0F, 1.0F).endVertex(); bufferbuilder.vertex(d3 + d1, d4, -90.0D).uv(1.0F, 0.0F).endVertex(); bufferbuilder.vertex(d3, d4, -90.0D).uv(0.0F, 0.0F).endVertex(); tessellator.end(); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.defaultBlendFunc(); RenderSystem.disableBlend(); RenderSystem.depthMask(true); RenderSystem.enableDepthTest(); } } Logs: [18:41:35] [Server thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID ada9d733-775c-491b-9cb2-7b4d0883f163 [18:41:35] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception net.minecraft.crash.ReportedException: Ticking player at net.minecraft.network.NetworkSystem.tick(NetworkSystem.java:137) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:865) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:787) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.tickServer(IntegratedServer.java:78) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:642) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_291] {} Caused by: java.lang.IllegalStateException: Rendersystem called from wrong thread at com.mojang.blaze3d.systems.RenderSystem.assertThread(RenderSystem.java:76) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at com.mojang.blaze3d.platform.GlStateManager._disableDepthTest(GlStateManager.java:182) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at com.mojang.blaze3d.systems.RenderSystem.disableDepthTest(RenderSystem.java:192) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at com.mclich.engmod.effect.DrunkennessEffect.createOverlay(DrunkennessEffect.java:73) ~[?:?] {re:classloading} at com.mclich.engmod.effect.DrunkennessEffect.renderOverlay(DrunkennessEffect.java:55) ~[?:?] {re:classloading} at com.mclich.engmod.effect.DrunkennessEffect.isDurationEffectTick(DrunkennessEffect.java:48) ~[?:?] {re:classloading} at net.minecraft.potion.EffectInstance.tick(EffectInstance.java:141) ~[forge:?] {re:classloading,xf:fml:forge:potion} at net.minecraft.entity.LivingEntity.tickEffects(LivingEntity.java:671) ~[forge:?] {re:classloading} at net.minecraft.entity.LivingEntity.baseTick(LivingEntity.java:386) ~[forge:?] {re:classloading} at net.minecraft.entity.Entity.tick(Entity.java:386) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2113) ~[forge:?] {re:classloading} at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:223) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.entity.player.ServerPlayerEntity.doTick(ServerPlayerEntity.java:404) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.network.play.ServerPlayNetHandler.tick(ServerPlayNetHandler.java:207) ~[forge:?] {re:classloading} at net.minecraft.network.NetworkManager.tick(NetworkManager.java:226) ~[forge:?] {re:classloading} at net.minecraft.network.NetworkSystem.tick(NetworkSystem.java:134) ~[forge:?] {re:classloading} ... 6 more AL lib: (EE) alc_cleanup: 1 device not closed
  12. Well, i tried that, but i'm still getting the same error: IllegalStateException("Rendersystem called from wrong thread")
  13. I actually tried nothing, i mean i don't even know where i can find method that creates potion particles in Forge library. Effect#applyEffectTick has two args: LivingEntity and int, and there is no such method in LivingEntity class. The only method i know and can use is World#addParticle, but if i use this method, potion particles from my effect and vanilla effects don't mix in one color, but they should do, so that is the issue. I aslo don't know what ParticleType should i use: ENTITY_EFFECT or AMBIENT_ENTITY_EFFECT, i don't know what is the difference between them
  14. So i just need to call my overlay method inside that event listener? Like this e.g.? @SubscribeEvent public void renderOverlay(RenderTickEvent event) { if(event.phase==Phase.END) { this.createOverlay(); } } Sorry if i am asking obvious things, but i don't understand at all how this should works since RenderTickEvent is called after renderConfusionOverlay. To create overlay in game, i need to manually call my renderOverlay method?
  15. Seems it won't help much in my case. I mean what i want to do is just make my own renderConfusionOverlay method, since i cannot use renderConfusionOverlay implementation because it needs to be called in a specific thread
  16. In that case what method should i call in Effect#applyEffectTick to spawn them? I tried to find out in game files, but found nothing
  17. Hello. In my mod i created my own Effect and registered it. What i want this effect to do when applying on player is create screen overlay animation, similar to Nausea Effect (or Confusion Effect). I've done some researching in game files and discovered renderConfusionOverlay method in GameRenderer class. This method is private, so i just copy-pasted it in my applyEffectTick method, but it didn't work. That method used some RenderSystem static methods inside itself, and they throwed IllegalStateException("Rendersystem called from wrong thread") when i tried to use them in my files. So that is the problem. Is there any way to implement such kind of an animation since renderConfusionOverlay doesn't work?
  18. I have similar question, but in my case i am curious how to make effect produce less particles than usual, like particles from invisibility effect (their number is less comparing to other effects). Is there any way to achieve that?
  19. Oh, it is just personal thing. I always use class name with its static fields (as well as this with non-static fields), even inside that class. It is easier for me to read my own code like this Jeez, it is finally working! Thank you so much, you are a legend
  20. Of course i'm not. My DeferredRegister and its RegistryObjects are in one class, i just showed my container declaration line In my BreweryBlock class i have overrided AbstractBlock#use method: @Override public ActionResultType use(BlockState blockState, World world, BlockPos blockPos, PlayerEntity player, Hand hand, BlockRayTraceResult blockRayTrace) { if(world.isClientSide()) return ActionResultType.SUCCESS; else { TileEntity tileEntity=world.getBlockEntity(blockPos); if(tileEntity instanceof BreweryTileEntity) { player.openMenu((BreweryTileEntity)tileEntity) } return ActionResultType.CONSUME; } } I know that there is a way to open gui with NetworkHooks#openGui, but i don't actually know what is the difference between it and PlayerEntity#openMenu method
  21. Seems the problem is with data field. In my registry file my container is registred like this: public static final RegistryObject<ContainerType<BreweryContainer>> BREWERY_CONTAINER=ENGContainers.CONTAINERS.register(BreweryBlock.ID, ()->IForgeContainerType.create(BreweryContainer::new)); IForgeContainerType#create by default returns null as PacketBuffer, so data field in my container constructor is null: public interface IContainerFactory<T extends Container> extends ContainerType.IFactory<T> { T create(int windowId, PlayerInventory inv, PacketBuffer data); @Override default T create(int p_create_1_, PlayerInventory p_create_2_) { return create(p_create_1_, p_create_2_, null); } }
  22. This line: this(windowId, playerInventory.player.getCommandSenderWorld().getBlockEntity(data.readBlockPos()), playerInventory, playerInventory.player);
  23. So i changed my constructors a little bit, here is the code: public BreweryContainer(int windowId, PlayerInventory playerInventory, PacketBuffer data) { this(windowId, playerInventory.player.getCommandSenderWorld().getBlockEntity(data.readBlockPos()), playerInventory, playerInventory.player); } public BreweryContainer(int windowId, TileEntity tileEntity, PlayerInventory playerInventory, PlayerEntity player) { super(ENGContainers.BREWERY_CONTAINER.get(), windowId); if(tileEntity!=null&&tileEntity instanceof BreweryTileEntity) this.tileEntity=(BreweryTileEntity)tileEntity; if(this.tileEntity!=null) { //if(!this.tileEntity.getLevel().isClientSide()) this.recipes=this.tileEntity.getLevel().getRecipeManager().getAllRecipesFor(ENGRecipeTypes.getBrewingType()); this.tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY).ifPresent ( itemHandler-> { this.addSlot(new BottleSlot(itemHandler, 0, 35, 17)); this.addSlot(new BottleSlot(itemHandler, 1, 58, 17)); this.addSlot(new BottleSlot(itemHandler, 2, 81, 17)); this.addSlot(new FuelSlot(itemHandler, 3, 58, 53)); this.addSlot(new IngredientSlot(itemHandler, 4, 16, 53)); this.addSlot(new ResultSlot(itemHandler, 5, 140, 35)); } ); } for(int i=0; i<3; ++i) { for(int j=0; j<9; ++j) { this.addSlot(new Slot(playerInventory, j+i*9+9, 8+j*18, 84+i*18)); } } for(int k=0; k<9; ++k) { this.addSlot(new Slot(playerInventory, k, 8+k*18, 142)); } } However, i still have NullPointerException: [18:11:58] [Render thread/FATAL] [minecraft/ThreadTaskExecutor]: Error executing task on Client java.lang.NullPointerException: null at com.mclich.engmod.block.container.BreweryContainer.<init>(BreweryContainer.java:34) ~[main/:?] {re:classloading} at net.minecraftforge.fml.network.IContainerFactory.create(IContainerFactory.java:34) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading} at net.minecraft.inventory.container.ContainerType.create(ContainerType.java:47) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.gui.ScreenManager$IScreenFactory.fromPacket(ScreenManager.java:115) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.ScreenManager.lambda$create$0(ScreenManager.java:43) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_291] {} at net.minecraft.client.gui.ScreenManager.create(ScreenManager.java:43) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.network.play.ClientPlayNetHandler.handleOpenScreen(ClientPlayNetHandler.java:1052) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.network.play.server.SOpenWindowPacket.handle(SOpenWindowPacket.java:41) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading} at net.minecraft.network.play.server.SOpenWindowPacket.handle(SOpenWindowPacket.java:14) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading} at net.minecraft.network.PacketThreadUtil.lambda$ensureRunningOnSameThread$0(PacketThreadUtil.java:19) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading} at net.minecraft.util.concurrent.ThreadTaskExecutor.doRunTask(ThreadTaskExecutor.java:136) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.util.concurrent.RecursiveEventLoop.doRunTask(RecursiveEventLoop.java:22) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading} at net.minecraft.util.concurrent.ThreadTaskExecutor.pollTask(ThreadTaskExecutor.java:109) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.util.concurrent.ThreadTaskExecutor.runAllTasks(ThreadTaskExecutor.java:97) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.Minecraft.runTick(Minecraft.java:947) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:607) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_291] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_291] {} at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_291] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:108) [forge-1.16.5-36.2.2_mapped_official_1.16.5-recomp.jar:?] {}
  24. Isn't it an automatic process? What should i pass in constructor in that case?

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.