Jump to content

Recommended Posts

Posted (edited)

Hi,

I've made fading and floating text effect like this:

38622211_439668059856433_3442053363007488000_n.gif.513a2bdafc4d7c5f09fd2ab4c0fb68ba.gif

It's cool, I like how it ended up but... There is framerate issue. When making this, I was at 75FPS cap (VSync) and after unlocking to unlimited FPS, text started moving way too fast.

Here is the code

@SubscribeEvent
public void onRenderOverlayText(RenderGameOverlayEvent.Text event) {
	ScaledResolution sr = event.getResolution();
	EntityPlayer player = Minecraft.getMinecraft().player;
  
	GL11.glPushMatrix();
	GL11.glScalef(1.0F, 1.0F, 1.0F);

	for (int i = 0; i < 12; i++) {
		if (!this.isVisible(i))
			continue;

		this.alpha[i] -= 3;

		this.height[i] += 0.6f;
		if (this.height[i] > 50.0f) {
			this.hide(i);
			continue;
		}

		Minecraft.getMinecraft().fontRenderer.drawStringWithShadow("+" + this.xp[i] + " XP",
				sr.getScaledWidth() / 2 + 50, sr.getScaledHeight() / 2 - this.height[i],
				0xFFFFFF | (this.alpha[i] << 24));

		GL11.glScalef(0.5f, 0.5f, 0.5f);
		Minecraft.getMinecraft().renderEngine.bindTexture(icon);
		this.drawTexturedModalRect((sr.getScaledWidth() / 2 + 32) * 2,
				((sr.getScaledHeight() / 2) - 5 - this.height[i]) * 2, i * 32, (i > 7 ? 1 : 0) * 32, 32, 32);
	}

	GL11.glPopMatrix();
}

 

Is there any way to make this run at same pace? Like deltaTime?

Edited by Oen44
Posted
  On 8/15/2018 at 4:25 PM, Oen44 said:

this.height[i] += 0.6f;

Expand  

You need to multiply this value by the deltaTime between frames (after dividing out the deltaTime at 75 fps).

I'm not sure where you'd get that value, though.

  • Like 1

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
long oldTime = newTime;
long newTime = Minecraft.getMinecraft().getSystemTime();
long deltaTime = newTime - oldTime;

deltaTime ready.

this.alpha[i] -= 0.3 * deltaTime;
this.height[i] += 0.06f * deltaTime;

Calculations ready.

 

Working perfectly :)

Posted

Doing your own delta time works, but there is another more common approach which I figured is worth mentioning. The game logic runs in a loop that "ticks" 20 frames per second. The render refresh rate can vary depending on your monitor, settings and power of your GPU.

 

So whenever you're doing animations in Minecraft you should set the positions and angles based on the game ticks, not the refresh rate. So you would really increment the position every tick rather than every event (which fires at the refresh rate). However, doing that has the side effect that it will look a bit jerky because it will only update position 20 times per second which is a bit less than needed for perception of smooth motion (traditional movie film used 24 fps). So to smooth it out, there is the concept of "partial ticks" that are passed to the rendering methods (and events).

 

So an alternative, arguably more common, way to do animations is to update the position using the ticks plus a bit of adjustment using the partial tick. For example, the game overlay event has a getPartialTicks() method to help with this.

 

Just thought you'd be interested. Point is that partial ticks are used to communicate difference between refresh rate and tick rate and are commonly used to control animation speed.

  • Like 1

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)
  On 8/15/2018 at 6:44 PM, jabelar said:

Doing your own delta time works, but there is another more common approach which I figured is worth mentioning. The game logic runs in a loop that "ticks" 20 frames per second. The render refresh rate can vary depending on your monitor, settings and power of your GPU.

 

So whenever you're doing animations in Minecraft you should set the positions and angles based on the game ticks, not the refresh rate. So you would really increment the position every tick rather than every event (which fires at the refresh rate). However, doing that has the side effect that it will look a bit jerky because it will only update position 20 times per second which is a bit less than needed for perception of smooth motion (traditional movie film used 24 fps). So to smooth it out, there is the concept of "partial ticks" that are passed to the rendering methods (and events).

 

So an alternative, arguably more common, way to do animations is to update the position using the ticks plus a bit of adjustment using the partial tick. For example, the game overlay event has a getPartialTicks() method to help with this.

 

Just thought you'd be interested. Point is that partial ticks are used to communicate difference between refresh rate and tick rate and are commonly used to control animation speed.

Expand  

So how ticks work compared to deltaTime?

Lower FPS (30):

Ticks - text is adapting to FPS and moves slow - not cool

Delta - text is smooth as for such low FPS and stays the same time as with high FPS - what I want

 

Higher FPS (around 600):

Ticks - text is smooth and very fast, again, adapting to FPS - not cool

Delta - text is smooth, perfect pace - what I want

 

Conclusion? Ticks are not good for that kind of animations.

Edited by Oen44
Posted
  On 8/15/2018 at 7:48 PM, Oen44 said:

That doesn't change anything. Ticks are not helpful here, it's just looking bad.

Expand  

Since they happen at a set period of time after each other the game has a deltaTime(partialTicks) variable between each tick that is used for rendering things smoothly. So the game would update the position as to where it should be every tick and then render at that position with the partialTicks. Though your way of doing it works this is just the way minecraft handles these things.

  • Like 1

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted (edited)
  On 8/15/2018 at 8:02 PM, diesieben07 said:

If it looks bad, then you are doing something wrong.

Expand  

All I did was

this.alpha[i] -= (int) (0.4f * event.getPartialTicks());
this.height[i] += 0.1f * event.getPartialTicks();

And it's very slow on low FPS and getting faster with more FPS.

 

  On 8/15/2018 at 8:02 PM, diesieben07 said:

It is a very simple process:

float currentValue = 0
float prevValue = 0

tick() { // 20 times a second, always, that's what ticks are
    prevValue = currentValue;
    currentValue = (currentValue + 1) % 100;
}

render(float partialTicks) {
    float actual = prevValue + (currentValue - prevValue) * partialTicks;
    // render at position actual
}
Expand  

Yeah, no idea where to put prevValue and currentValue. Should I make thread like this?

ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
  @Override
  public void run() {
    prevValue = currentValue;
    currentValue = (currentValue + 1) % 100;
  }
}, 0, 20, TimeUnit.SECONDS);

 

I just want to check how is that going to look like with what you wrote.

The thing is that RenderGameOverlayEvent is executed more times based on FPS so deltaTime is doing something to balance and it's easy to accomplish.

Edited by Oen44
Posted

Maybe this would be clearer. 

 

In a tick handling event like ClientTickEvent, in one phase of that event, you would update the position in a public static field. This would have a very regular steady movement.

 

In the render handling event, you would get the position from that public static field and add a multiple of the partial ticks times the increment. 

 

Note that the tick value can be also updated in other ways. For example, the world keeps track of total time, so you could record the world time when the GUI was just opened and then calculate how many ticks it was open in the render event. 

 

I didn't mean to cause confusion. Just wanted to point out the way Minecraft normally handles the conversion from ticks to render frames for animations.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)
  On 8/15/2018 at 10:01 PM, diesieben07 said:

RenderGameOverlayEvent (careful: this fires many many times every frame!) is the render part in my code. You would need ClientTickEvent (check TickEvent#phase or your code will run twice per tick) for the tick part. 

Expand  

Of course there is TickEvent... I should have think about that before, ohh my.

 

float prevValue;
float currentValue;

@SubscribeEvent
public void onClientTick(ClientTickEvent event) {
	if(event.phase == Phase.END) {
		prevValue = currentValue;
		currentValue = (currentValue + 1) % 100;
	}
}

float actual = prevValue + (currentValue - prevValue) * event.getPartialTicks(); // in RenderGameOverlayEvent.Text

Well... It's not working well. It's starting slow and then goes very fast and then slow again and so on (because of modulo i guess).

Edited by Oen44
Posted

Not quite. If you assign previous value to current value, the increase current value and take modulo, then every once in a while the prev value is going to be way higher. Basically the previous value will roll over to zero one tick after the current value. 

 

What it should be is more like this:

- forget the previous value, you just need current value. So start current value at zero, and keep your line where you add one and do modulo. So current value is going to cycle from 0 to 99 over and over.

- just add partial ticks to current value. That will give the total number of ticks (the current value has the whole number of ticks, plus the partial ticks).

- multiply that result by whatever speed you want.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • So the Ender Dragon in one of my mods is just... not perching, even after the 30 second perch forcing. Is this a bug, or am i doing something wrong? (I also have Ender Catyclysm and YUNG's Better End installed, as well as Epic Fight and other mods)
    • Hi, everyone and thanks for your attention. My problem is that when I log in to my server it restarts, and in the console this comes out: [19:56:04] [Server thread/WARN] [minecraft/MinecraftServer]: Can't keep up! Is the server overloaded? Running 4836ms or 96 ticks behind [19:56:07] [Server thread/ERROR] [ne.mi.fm.lo.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER [19:56:07] [Server thread/ERROR] [ne.mi.ev.EventBus/EVENTBUS]: Exception caught during firing event: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER         Index: 2         Listeners:                 0: HIGHEST                 1: net.minecraftforge.eventbus.EventBus$$Lambda/0x00007f2eccafd700@7ed6262e                 2: ASM: com.dplayend.justleveling.registry.RegistryCommonEvents@24a273e7 onAttackEntity(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 3: HIGH                 4: ASM: dev.shadowsoffire.attributeslib.impl.AttributeEvents@59a96f29 apothCriticalStrike(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 5: NORMAL                 6: ASM: com.bobmowzie.mowziesmobs.server.ServerEventHandler@31d74a8d onLivingHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 7: ASM: com.bobmowzie.mowziesmobs.server.ability.AbilityCommonEventHandler@18ccbfc8 onTakeDamage(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 8: ASM: class com.aetherteam.aether.event.listeners.abilities.WeaponAbilityListener onDartHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 9: ASM: class net.mcreator.callofyucutan.procedures.EntityIsHurtProcedure onEntityAttacked(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 10: ASM: class io.github.edwinmindcraft.apoli.common.ApoliPowerEventHandler onLivingHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 11: ASM: class net.mcreator.sonsofsins.procedures.InstinctHurtProcedure onEntityAttacked(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 12: ASM: class net.mcreator.sonsofsins.procedures.DamagesHurtProcedure onEntityAttacked(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 13: ASM: class net.mcreator.sonsofsins.procedures.DamageCancelPuppetProcedure onEntityAttacked(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 14: ASM: class vectorwing.farmersdelight.common.item.enchantment.BackstabbingEnchantment$BackstabbingEvent onKnifeBackstab(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 15: ASM: com.github.L_Ender.cataclysm.event.ServerEventHandler@7e9c5157 onLivingDamage(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 16: ASM: class twilightforest.events.ToolEvents onKnightmetalToolDamage(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 17: ASM: class twilightforest.events.ToolEvents onMinotaurAxeCharge(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 18: ASM: class twilightforest.events.EntityEvents entityHurts(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 19: ASM: class twilightforest.events.EntityEvents onLivingHurtEvent(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 20: ASM: class net.alshanex.originsoverhaulmod.event.ModEvents$ForgeEvents onLivingHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 21: ASM: class io.redspace.ironsspellbooks.effect.EchoingStrikesEffect createEcho(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 22: ASM: class com.oblivioussp.spartanweaponry.event.CommonEventHandler onLivingHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 23: ASM: class net.arphex.procedures.SpiderShieldProcedure onEntityAttacked(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 24: net.minecraftforge.eventbus.EventBus$$Lambda/0x00007f2eccafd700@14152969                 25: net.minecraftforge.eventbus.EventBus$$Lambda/0x00007f2eccafd700@4f50bf14                 26: ASM: class net.BKTeam.illagerrevolutionmod.Events hurtEntity(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 27: ASM: com.github.alexthe666.iceandfire.event.ServerEvents@74f2d766 onEntityDamage(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 28: LOWEST                 29: ASM: class io.github.edwinmindcraft.apoli.common.ApoliPowerEventHandler livingDamage(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 30: ASM: class net.merchantpug.apugli.ApugliForgeEventHandler onLivingHurt(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V                 31: ASM: dev.shadowsoffire.attributeslib.impl.AttributeEvents@59a96f29 lifeStealOverheal(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)V java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER         at MC-BOOTSTRAP/fmlloader@1.20.1-47.4.0/net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:57)         at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88)         at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120)         at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50)         at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113)         at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219)         at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229)         at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219)         at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135)         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)         at TRANSFORMER/forge@47.4.0/net.minecraftforge.network.simple.SimpleChannel.sendToServer(SimpleChannel.java:87)         at TRANSFORMER/justleveling@1.7/com.dplayend.justleveling.network.ServerNetworking.sendToServer(ServerNetworking.java:36)         at TRANSFORMER/justleveling@1.7/com.dplayend.justleveling.network.packet.common.CounterAttackSP.send(CounterAttackSP.java:51)         at TRANSFORMER/justleveling@1.7/com.dplayend.justleveling.registry.RegistryCommonEvents.lambda$onAttackEntity$8(RegistryCommonEvents.java:315)         at TRANSFORMER/forge@47.4.0/net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:137)         at TRANSFORMER/justleveling@1.7/com.dplayend.justleveling.registry.RegistryCommonEvents.onAttackEntity(RegistryCommonEvents.java:315)         at TRANSFORMER/justleveling@1.7/com.dplayend.justleveling.registry.__RegistryCommonEvents_onAttackEntity_LivingHurtEvent.invoke(.dynamic)         at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73)         at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:315)         at MC-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:296)         at TRANSFORMER/forge@47.4.0/net.minecraftforge.common.ForgeHooks.onLivingHurt(ForgeHooks.java:292)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.player.Player.m_6475_(Player.java:909)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.LivingEntity.m_6469_(LivingEntity.java:1112)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.player.Player.m_6469_(Player.java:840)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.level.ServerPlayer.m_6469_(ServerPlayer.java:695)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_217701_(SonicBoom.java:87)         at java.base/java.util.Optional.ifPresent(Optional.java:178)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_6725_(SonicBoom.java:74)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_6725_(SonicBoom.java:19)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.behavior.Behavior.m_22558_(Behavior.java:66)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.Brain.m_21963_(Brain.java:445)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.ai.Brain.m_21865_(Brain.java:390)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.monster.warden.Warden.m_8024_(Warden.java:311)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.Mob.m_6140_(Mob.java:768)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.LivingEntity.m_8107_(LivingEntity.java:2548)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.Mob.m_8107_(Mob.java:536)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.monster.Monster.m_8107_(Monster.java:42)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2298)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.Mob.m_8119_(Mob.java:337)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.entity.monster.warden.Warden.m_8119_(Warden.java:278)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:694)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.Level.m_46653_(Level.java:479)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661)         at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251)         at java.base/java.lang.Thread.run(Thread.java:1583) [19:56:07] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception net.minecraft.ReportedException: Ticking entity         at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:897) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:lionfishapi.mixins.json:DedicatedServerMixin,pl:mixin:A}         at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at java.lang.Thread.run(Thread.java:1583) ~[?:?] {} Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER         at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:57) ~[fmlloader-1.20.1-47.4.0.jar%2369!/:1.0] {}         at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.10.jar:?] {}         at java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?] {}         at net.minecraftforge.network.simple.SimpleChannel.sendToServer(SimpleChannel.java:87) ~[forge-1.20.1-47.4.0-universal.jar%23240!/:?] {re:mixin,re:classloading}         at com.dplayend.justleveling.network.ServerNetworking.sendToServer(ServerNetworking.java:36) ~[justleveling-forge-1.20.x-v1.7.jar%23203!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.network.packet.common.CounterAttackSP.send(CounterAttackSP.java:51) ~[justleveling-forge-1.20.x-v1.7.jar%23203!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.registry.RegistryCommonEvents.lambda$onAttackEntity$8(RegistryCommonEvents.java:315) ~[justleveling-forge-1.20.x-v1.7.jar%23203!/:forge-1.20.x-v1.7] {re:classloading}         at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:137) ~[forge-1.20.1-47.4.0-universal.jar%23240!/:?] {re:mixin,re:classloading}         at com.dplayend.justleveling.registry.RegistryCommonEvents.onAttackEntity(RegistryCommonEvents.java:315) ~[justleveling-forge-1.20.x-v1.7.jar%23203!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.registry.__RegistryCommonEvents_onAttackEntity_LivingHurtEvent.invoke(.dynamic) ~[justleveling-forge-1.20.x-v1.7.jar%23203!/:forge-1.20.x-v1.7] {re:classloading,pl:eventbus:B}         at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.common.ForgeHooks.onLivingHurt(ForgeHooks.java:292) ~[forge-1.20.1-47.4.0-universal.jar%23240!/:?] {re:mixin,re:classloading,pl:mixin:APP:revive_me.mixins.json:ForgeHooksMixin,pl:mixin:APP:apoli.mixins.json:forge.ForgeHooksMixin,pl:mixin:A}         at net.minecraft.world.entity.player.Player.m_6475_(Player.java:909) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:pehkui.mixins.json:reach.PlayerEntityMixin,pl:mixin:APP:additionalentityattributes.mixins.json:common.DigSpeedMixin,pl:mixin:APP:additionalentityattributes.mixins.json:common.PlayerEntityMixin,pl:mixin:APP:aether.mixins.json:common.PlayerMixin,pl:mixin:APP:aether.mixins.json:common.accessor.PlayerAccessor,pl:mixin:APP:pehkui.mixins.json:PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.PlayerEntityMixin,pl:mixin:APP:apoli.mixins.json:PlayerEntityMixin,pl:mixin:APP:apoli.mixins.json:forge.PlayerMixin,pl:mixin:APP:carryon.mixins.json:PlayerMixin,pl:mixin:APP:paraglider.mixins.json:MixinPlayer,pl:mixin:APP:friendsandfoes-common.mixins.json:PlayerEntityMixin,pl:mixin:APP:bettercombat.mixins.json:PlayerEntityAccessor,pl:mixin:APP:bettercombat.mixins.json:PlayerEntityMixin,pl:mixin:APP:justleveling.mixins.json:MixPlayer,pl:mixin:APP:origins.mixins.json:NoCobwebSlowdownMixin,pl:mixin:APP:origins.mixins.json:WaterBreathingMixin$UpdateAir,pl:mixin:APP:apugli.mixins.json:common.PlayerEntityMixin,pl:mixin:APP:origins_classes.mixins.json:common.minecraft.PlayerMixin,pl:mixin:APP:parcool.mixins.json:common.PlayerMixin,pl:mixin:APP:mixins.irons_spellbooks.json:PlayerMixin,pl:mixin:APP:attributeslib.mixins.json:PlayerMixin,pl:mixin:APP:spartanweaponry.mixins.json:PlayerMixin,pl:mixin:APP:medievalorigins.forge.mixins.json:compat.iceandfire.PlayerMixin,pl:mixin:A}         at net.minecraft.world.entity.LivingEntity.m_6469_(LivingEntity.java:1112) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:additionalentityattributes.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:apoli.mixins.json:LivingEntityMixin,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:LivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:BlazeLivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LivingEntityMixin,pl:mixin:APP:bettercombat.mixins.json:LivingEntityAccessor,pl:mixin:APP:bettercombat.mixins.json:LivingEntityMixin,pl:mixin:APP:justleveling.mixins.json:MixLivingEntity,pl:mixin:APP:cataclysm.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:origins.mixins.json:LikeWaterMixin,pl:mixin:APP:origins.mixins.json:WaterBreathingMixin$CanBreatheInWater,pl:mixin:APP:apugli.mixins.json:common.LivingEntityMixin,pl:mixin:APP:apugli.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:apugli.forge.mixins.json:common.LivingEntityMixin,pl:mixin:APP:origins_classes.mixins.json:accessor.minecraft.LivingEntityAccessor,pl:mixin:APP:parcool.mixins.json:common.LivingEntityMixin,pl:mixin:APP:mixins.irons_spellbooks.json:LivingEntityMixin,pl:mixin:APP:attributeslib.mixins.json:LivingEntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:APP:obscure_api.mixins.json:LivingEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.player.Player.m_6469_(Player.java:840) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:pehkui.mixins.json:reach.PlayerEntityMixin,pl:mixin:APP:additionalentityattributes.mixins.json:common.DigSpeedMixin,pl:mixin:APP:additionalentityattributes.mixins.json:common.PlayerEntityMixin,pl:mixin:APP:aether.mixins.json:common.PlayerMixin,pl:mixin:APP:aether.mixins.json:common.accessor.PlayerAccessor,pl:mixin:APP:pehkui.mixins.json:PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.PlayerEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.PlayerEntityMixin,pl:mixin:APP:apoli.mixins.json:PlayerEntityMixin,pl:mixin:APP:apoli.mixins.json:forge.PlayerMixin,pl:mixin:APP:carryon.mixins.json:PlayerMixin,pl:mixin:APP:paraglider.mixins.json:MixinPlayer,pl:mixin:APP:friendsandfoes-common.mixins.json:PlayerEntityMixin,pl:mixin:APP:bettercombat.mixins.json:PlayerEntityAccessor,pl:mixin:APP:bettercombat.mixins.json:PlayerEntityMixin,pl:mixin:APP:justleveling.mixins.json:MixPlayer,pl:mixin:APP:origins.mixins.json:NoCobwebSlowdownMixin,pl:mixin:APP:origins.mixins.json:WaterBreathingMixin$UpdateAir,pl:mixin:APP:apugli.mixins.json:common.PlayerEntityMixin,pl:mixin:APP:origins_classes.mixins.json:common.minecraft.PlayerMixin,pl:mixin:APP:parcool.mixins.json:common.PlayerMixin,pl:mixin:APP:mixins.irons_spellbooks.json:PlayerMixin,pl:mixin:APP:attributeslib.mixins.json:PlayerMixin,pl:mixin:APP:spartanweaponry.mixins.json:PlayerMixin,pl:mixin:APP:medievalorigins.forge.mixins.json:compat.iceandfire.PlayerMixin,pl:mixin:A}         at net.minecraft.server.level.ServerPlayer.m_6469_(ServerPlayer.java:695) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:revive_me.mixins.json:ServerPlayerMixin,pl:mixin:APP:pehkui.mixins.json:ServerPlayerEntityMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerPlayerMixin,pl:mixin:APP:apugli.mixins.json:common.accessor.ServerPlayerEntityAccessor,pl:mixin:APP:illagerrevolution.mixins.json:ServerPlayerMixins,pl:mixin:A}         at net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_217701_(SonicBoom.java:87) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {re:mixin}         at net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_6725_(SonicBoom.java:74) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at net.minecraft.world.entity.ai.behavior.warden.SonicBoom.m_6725_(SonicBoom.java:19) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at net.minecraft.world.entity.ai.behavior.Behavior.m_22558_(Behavior.java:66) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,re:classloading}         at net.minecraft.world.entity.ai.Brain.m_21963_(Brain.java:445) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at net.minecraft.world.entity.ai.Brain.m_21865_(Brain.java:390) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         at net.minecraft.world.entity.monster.warden.Warden.m_8024_(Warden.java:311) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at net.minecraft.world.entity.Mob.m_6140_(Mob.java:768) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.MobMixin,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.LivingEntity.m_8107_(LivingEntity.java:2548) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:additionalentityattributes.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:apoli.mixins.json:LivingEntityMixin,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:LivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:BlazeLivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LivingEntityMixin,pl:mixin:APP:bettercombat.mixins.json:LivingEntityAccessor,pl:mixin:APP:bettercombat.mixins.json:LivingEntityMixin,pl:mixin:APP:justleveling.mixins.json:MixLivingEntity,pl:mixin:APP:cataclysm.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:origins.mixins.json:LikeWaterMixin,pl:mixin:APP:origins.mixins.json:WaterBreathingMixin$CanBreatheInWater,pl:mixin:APP:apugli.mixins.json:common.LivingEntityMixin,pl:mixin:APP:apugli.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:apugli.forge.mixins.json:common.LivingEntityMixin,pl:mixin:APP:origins_classes.mixins.json:accessor.minecraft.LivingEntityAccessor,pl:mixin:APP:parcool.mixins.json:common.LivingEntityMixin,pl:mixin:APP:mixins.irons_spellbooks.json:LivingEntityMixin,pl:mixin:APP:attributeslib.mixins.json:LivingEntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:APP:obscure_api.mixins.json:LivingEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.Mob.m_8107_(Mob.java:536) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.MobMixin,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.monster.Monster.m_8107_(Monster.java:42) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,re:computing_frames,re:classloading,pl:mixin:APP:naturalist-common.mixins.json:MonsterMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:IllusionerHostileEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2298) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:additionalentityattributes.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.LivingEntityMixin,pl:mixin:APP:aether.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:apoli.mixins.json:LivingEntityMixin,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:LivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:BlazeLivingEntityMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LivingEntityMixin,pl:mixin:APP:bettercombat.mixins.json:LivingEntityAccessor,pl:mixin:APP:bettercombat.mixins.json:LivingEntityMixin,pl:mixin:APP:justleveling.mixins.json:MixLivingEntity,pl:mixin:APP:cataclysm.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:origins.mixins.json:LikeWaterMixin,pl:mixin:APP:origins.mixins.json:WaterBreathingMixin$CanBreatheInWater,pl:mixin:APP:apugli.mixins.json:common.LivingEntityMixin,pl:mixin:APP:apugli.mixins.json:common.accessor.LivingEntityAccessor,pl:mixin:APP:apugli.forge.mixins.json:common.LivingEntityMixin,pl:mixin:APP:origins_classes.mixins.json:accessor.minecraft.LivingEntityAccessor,pl:mixin:APP:parcool.mixins.json:common.LivingEntityMixin,pl:mixin:APP:mixins.irons_spellbooks.json:LivingEntityMixin,pl:mixin:APP:attributeslib.mixins.json:LivingEntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:APP:obscure_api.mixins.json:LivingEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.Mob.m_8119_(Mob.java:337) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.MobMixin,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:spartanweaponry.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}         at net.minecraft.world.entity.monster.warden.Warden.m_8119_(Warden.java:278) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:694) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.accessor.ServerLevelAccessor,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:ExplosionMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:apugli.mixins.json:common.ServerWorldMixin,pl:mixin:A}         at net.minecraft.world.level.Level.m_46653_(Level.java:479) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:twilightforest:cloud,re:classloading,pl:accesstransformer:B,xf:fml:twilightforest:cloud,pl:mixin:APP:aether.mixins.json:common.accessor.LevelAccessor,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:APP:apugli.mixins.json:common.LevelMixin,pl:mixin:A}         at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.accessor.ServerLevelAccessor,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:ExplosionMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:apugli.mixins.json:common.ServerWorldMixin,pl:mixin:A}         at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:classloading}         at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:aether.mixins.json:common.accessor.ServerLevelAccessor,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:mixins.bosses_of_mass_destruction.json:ExplosionMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:apugli.mixins.json:common.ServerWorldMixin,pl:mixin:A}         at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[server-1.20.1-20230612.114412-srg.jar%23235!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}         ... 5 more
    • Finally solved this after looking a bit closer at the `Monster` class. I needed to override the `aiStep` method, adding a call to `updateSwingTime`. This makes `entity.swing()` trigger an animation. @Override public void aiStep() { this.updateSwingTime(); super.aiStep(); }  
    • new issue, now everything in game is black, no textures, it even caused a crash similar to the initial one (overlay error)
    • that worked in fact now i think i can put back mods that caused the throwables issue
  • Topics

×
×
  • Create New...

Important Information

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