garbagemule / MobArena

MobArena plugin for Minecraft
GNU General Public License v3.0
193 stars 151 forks source link

Add support for mobs from Forge mods #359

Closed KorDum closed 6 years ago

KorDum commented 7 years ago

Plugin works perfectly with vanilla mobs. But if CustomMobs, Mo'Zombies is installed, mobs despawns after spawn always. Deleting these mods solves the problem. Bukkit-1.7.9

garbagemule commented 7 years ago

So when you say Bukkit-1.7.9, you mean you're running a Minecraft 1.7 server? The mods you talk about, are they Bukkit plugins or some sort of Forge plugin or similar?

KorDum commented 7 years ago

Yes, Minecraft 1.7.10 (Thermos server - KCauldroun like). Mods are the mods for Forge, not plugins. They replace some mobs (for example Zombie) with custom mobs (for example Zombie Notch, Cyberzombie, etc).

KorDum commented 7 years ago

Can give the ability to disable checking and despawning mobs in config? Really fast fix but quick and dirty hack.

ct-martin commented 6 years ago

Renamed issue to be more clear.

@garbagemule (at a glance) would MobArena be doing anything to validate mobs, is this a config parsing thing, or something else?

garbagemule commented 6 years ago

Right, so what happens during initialization is that MobArena wraps all the values of the EntityType enum in instances of the MACreature class, right about here: https://github.com/garbagemule/MobArena/blob/master/src/main/java/com/garbagemule/MobArena/waves/MACreature.java#L28-L35

This (the move from enum to class) was done in order to support custom entities in Cauldron. I had a long test session with bloodmc (Cauldron author/maintainer at the time, not sure how things are now) that eventually resulted in working custom mobs, so I'm surprised to see that it doesn't work now.

During an arena session, MobArena removes mobs if A) the mobs are outside of the arena region, or B) the mobs are not tracked by MobArena. Since MobArena tracks all the mobs it spawns, the region limitation might be the first suspect. But if it works with vanilla mobs, chances are the replacement mobs are "tampered with" post-spawning. If the reference MobArena holds is to an entity that has been removed and replaced, that could be the reason. I think an adventure into Debugging Land would be necessary here.

Also, I hate to do this, but I hate misnomers more... "Forge mods" are plugins. Spigot and Forge are mods, because they modify the game code. They are literal modifications of the software. Bundles of code that interface with the hotspots in the frameworks that these mods expose are plugins (or addons), because they plug into these hotspots (or add on top of the frameworks). If "Forge mods" were mods, they'd be modifying the Forge code, which they don't. If they were "Minecraft mods", they wouldn't need to interface with Forge, which they do. They are plugins :P

garbagemule commented 6 years ago

As previously mentioned, Forge monster support was implemented with bloodmc back in the day. If this turns out to be a continued issue, we can re-open, but given the lack of activity here, I'm closing it for now.