Jump to content

Recommended Posts

Posted

Let me try to explain what I am doing. I have an item that, when used, creates a Tile Entity in a Dirt block, for example. This block will have a Tile Entity that will, in summary, build a 5x3x5 room around it. Up to that part I can do fine. Problem arises, though, if I leave and enter the game again. Because when that happens the Tile Entity vanishes from the map, even if it was in the middle of its work.

 

Now, I know there's an easy way to avoid that: creating a custom BlockContainer that will contain the Tile Entity and thus keep track of it. But I'm trying to avoid that just because I've designed my mod that way. I can do that, but I'd like to use that as a last resort. So, to the question.

 

What I'm not understanding is how to make it so the Tile Entity is saved on the map using those read/write NBT functions. Again, I can see how to set one for a container block, but doing that for a Tile Entity that is arbitrarily put on the map like this is not working. The save/load function is simply not being called. I'm missing something and I can't figure out what. Anyone knows how to work with this situation?

Posted

Did you do TileEntity.addMapping(tileEntityClass, StringId); Or you can use GameRegistry.registerTileEntity(tileEntityClass, StringID); (GameRegistry just uses this TileEntity method anyway, so it doesn't really matter which you use. This caused my tile entity to disappear until I actually mapped it.)

Posted

Containers get most of their information from the TileEntity. Not the other way around. I've heard a lot of people talk about the container as the interface that the server sees, while the client sees the gui which the container populates WITH information from the tileentity.

 

writeToNBT(...) and readFromNBT(...) are functions from TileEntity class, so if your tile entity does extend TileEntity, then you can override those functions. NBTTags are amazing, and can be used to store close to anything, if you work at it.

 

Make sure with the writeToNBT(...) you're actually setting and reading them properly. If you're using NBTTagList make sure you're appending tags to that list with yourTagList.append(yourTag) and then subsequently setting that tagList to the actual tag, with tag.setTag("name" yourTagList.

 

Perhaps this wasn't your question, perhaps this post is worthless. Hope it helps at least a bit, or something.

 

Posted
  On 11/1/2012 at 3:50 AM, Ghostrec35 said:

Did you do TileEntity.addMapping(tileEntityClass, StringId); Or you can use GameRegistry.registerTileEntity(tileEntityClass, StringID); (GameRegistry just uses this TileEntity method anyway, so it doesn't really matter which you use. This caused my tile entity to disappear until I actually mapped it.)

 

I actually thought that was the problem, but this has been fixed long ago. Still not quite working. Here's a snippet:

 

GameRegistry.registerTileEntity(TileSeedstoneHouse.class, "House Seedstone");

 

_bau5,  by no means, that was really informative. I'm still confused, though. Here's the code that I've implemented:

 

package Mole.common.seedstone;

import Mole.common.Constants;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
import net.minecraft.src.TileEntity;
import net.minecraft.src.WorldInfo;

public class TileSeedstoneHouse extends TileEntity {

int index = 0;
int width, height;
int blockID;
int ticks = 0;
boolean started = false;

//Starts building a House structure from (x,y,z), with block of type blockID
public TileSeedstoneHouse(int level, int type)
{
	switch (level)
	{
		case 1:
			width = 7;
			height = 5; break;
		case 2:
			width = 7;
			height = 6; break;
		case 3:
			width = 9;
			height = 6; break;
		default:
			width = 7;
			height = 5; break;
	}

	setType(type);
	start();
}

public void setType(int type)
{
	blockID = type;
}

public void start()
{
	started = true;
	System.out.println("Start the Seed!");
}

        //(...) Here's a lot of code that does the building; not important now, I reckon

@Override
    public void readFromNBT(NBTTagCompound tagCompound)
{
	System.out.println("Loading TE Seedstone at "+xCoord+":"+yCoord+":"+zCoord);
	super.readFromNBT(tagCompound);
	index = tagCompound.getInteger("Pointer");
	blockID = tagCompound.getInteger("BlockID");
	height = tagCompound.getInteger("H");
	width = tagCompound.getInteger("W");
    }

 @Override
    public void writeToNBT(NBTTagCompound tagCompound)
{       
	System.out.println("Saving TE Seedstone at "+xCoord+":"+yCoord+":"+zCoord);
 	super.writeToNBT(tagCompound);
 	tagCompound.setInteger("Pointer", index);
                tagCompound.setInteger("BlockID", blockID);
                tagCompound.setInteger("H", height);
                tagCompound.setInteger("W", width);
    }
}

 

I'm not sure if I'm using the readFrom/writeToNBT functions right(BTW: the print functions there don't even appear in the console =/). Or if that tile entity name is valid. Can anyone tutor me here?

Posted

I did a good load of backtracking while working with another issue(in summary, a fail proof "getBlockTileEntity" call would return null in a block where I did add a tile entity before) I found out the cause for this.

 

Going down the call hierarchy, setBlockTileEntity calls setChunkBlockTileEntity, which will actually save the TE into the chunk data. Here we have this if:

 

if (block != null && block.hasTileEntity(getBlockMetadata(par1, par2, par3)))
{
   ...
   this.chunkTileEntityMap.put(var5, par4TileEntity);
}

 

Which is where my problem lies, as hasTileEntity only returns true for BlockContainer instances. None of the blocks I'm adding a tile entity to are containers. In the end, the tile entity is added and updates, but is not part of the block. For all ends and means, apparently Minecraft won't recognize it as a TileEntity that exists there.

 

So far I couldn't find a way around that, besides creating a new block just to set my Tile Entities into. Anyone has any idea?

Posted

Ok, so I did some debug and backtracing and came up with this solution when creating the tile entity:

 

_TE = new TileSeedstoneHouse(1, blockId);
world.setBlockTileEntity(x, y, z, _TE);
chunk.chunkTileEntityMap.put(pos, _TE);

 

It works to some extent. It saves, it loads... once. And the tile entity stops updating. Or existing, for that matter. Apparently the loader doesn't know where to put it. I'm trying to trace deeper to find out how to get around that now, but I think I'm losing hacking momentum... :/

Posted

Considering I intended the block in question to be a Dirt block... no, no I couldn't. Not without making this a coremod, and that's way over my ambitions right now.

 

I'm giving up for now. I'm making a block to contain this damn thing already. =/

Posted
  On 11/5/2012 at 12:19 PM, pro-mole said:

Considering I intended the block in question to be a Dirt block... no, no I couldn't. Not without making this a coremod, and that's way over my ambitions right now.

 

I'm giving up for now. I'm making a block to contain this damn thing already. =/

Have you thought about making the server keep it's own map for what you want the tile entity to save? Set the key to something like String.valueOf(x) + "-" + String.valueOf(y) + "-" +String.valueOf(z) so you can get the information easily, then set up a simple client to server packet exchange to pass the information? Of course, this would be quite involved for a dirt block :P

Posted

I thought about using packets or something like that, but I think this is not the time to dwell into that. I've resigned myself to a solution that just works for now.

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.