[FUN/MECH] AdvancedMobs v0.3.7 - Mob variants for your normal, nether, and skylands worlds [1060]

Discussion in 'Inactive/Unsupported Plugins' started by TheTennessee, Aug 10, 2011.

  1. Offline


    AdvancedMobs - Mob variants for spawning in normal, nether, and skylands worlds
    Version: 0.3.6
    Tested with: CB 1060

    Latest JAR:
    MediaFire - <Edit by Moderator: Redacted mediafire url>
    MegaUpload - Version 0.3.7 JAR

    Previous Versions:
    0.3 - MegaUpload - Version 0.3 JAR
    0.2 - MegaUpload - Version 0.2 JAR
    0.1 - MegaUpload - Version 0.1 JAR

    As my first plugin, I decided to do some of the things I couldn't find with other plugins. I've run AngryWolves (with hellhounds), and Tossers on my server before. These plugins added new variations on old enemies. This got me started thinking about what I could do. So, I learned java (I have been doing C++ for years), read and listened to some plugin tutorials, and learned from looking at some other source code that the plugin developers have been kind enough to upload. This is the culmination of that work.

    AdvancedMobs is a plugin meant to add advanced mob types to your worlds. The nether too bland for you, the skylands nice to look at, but utterly devoid of anything to do? Maybe you just want giants to work in your world. This plugin has all of that, and more is going to be added too. The nether will get fire immune versions of zombies, skeletons, spiders and slimes, the skylands will get ghasts, creepers with new attacks, and animals, and your normal world will finally get to see zombie pigmen, and they are none too happy about being yanked out of their normal world. All of this and giants too, and they have a few surprises of their own.

    <font color="rgb(255, 0, 0)">Important: If you find any bugs or adherent behaviors while using this plugin, please give a list of the mob changing plugins you have besides this one, the startup messages for AdvancedMobs (it will show [AdvancedMobs] in front of it) as well as any errors you get in the console. Your config file would also be helpful if you changed any values. </font><font color="rgb(255, 0, 0)">Also be sure to include your CB version. I will not be responsible for versions I don't support.</font>

    <font color="rgb(255, 0, 0)"><font color="rgb(255, 153, 0)">Warnings: Skylands mobs use velocity in their attacks. They will cause you to sometimes move too fast and get kicked. This is rare under most circumstances, but if you have a fly mod enabled on your server it can do this. There are several ways to solve this, including enabling fly, adding the plugin "NoMovedTooQuicklyKick", and also possibly handling the velocity with anti-hack plugins. If you do not want this, you can turn the force down on their attacks, or turn them off altogether.</font></font>

    * Zombie Pigmen can spawn in normal worlds (and can be spawned hostile)
    * Zombies, Skeletons, Spiders, and Slimes can spawn in the nether, and are immune to fire

    - * Nether Slimes can set YOU on fire too
    - Ghasts, Powered Creepers, Pigs, and Sheep will spawn in your skylands worlds
    * Aether Ghast fireballs explode into snowballs instead of explosions
    * Powered Creepers can explode with air power instead of damage, possibly knocking you off the skylands
    - Giants spawn in all worlds!
    * Normal Giants will toss TNT at enemies to give them a ranged attack (TNT won't destroy terrain)
    * Fire Giants spawn in the nether and spit fireballs instead of TNT
    * Storms cause normal giants to gain the power of lightning, calling it down on you
    * Custom loot tables for giants (since they normally don't drop anything)
    * Configurable health
    - Advanced Hostile Wolves for all worlds
    * Hellhounds are immune to fire and spawn in the nether and normal world
    * Winter Wolves spit blasts of cold at you, and spawn in the skylands and in snowy terrain in the normal world
    * A super secret special wolf type - fear the sitting wolves
    * Configurable loot tables for both
    * All special wolves are tamable!

    - * (Hit them with a raw porkchop to calm them for 10 seconds)
    - Configurable spawn rates for everything, and the ability to turn on and off most special properties for advanced mobs
    - Multiworld support - turn off mob types in certain worlds
    - Much much more to be added

    Multiworld Setup:

    In order to set up multiworld support, you will need to create files in your "AdvancedMobs" folder. These files will be named the name of the world you want to modify plus "_config.yml" ([world]_config.yml). So if your world "world_nether" needs to have some creatures changed, you need to make a file called "world_nether_config.yml" and put it in that folder.

    Once you have made this file, you do not need to turn any creatures to true. Any creature names not found in the config will default to true. So, if you wanted to turn off nether zombies for instance, you would put on a line inside the config file "Zombie: false". All creatures have their normal names, and zombiepigmen are called "PigZombie". You can only turn off a creature type that this plugin is spawning, it will not effect natural spawns or spawns from other plugins.

    Example contents of "world_config.yml"
    PigZombie: false
    Wolf: true
    That would turn the ability for this mod to create pig zombies in the world "world" to off, but leave Hellhounds and Winter Wolves on. Conversely, since the default is true anyways, "Wolf: true" could have been left out and they would still be on.

    Change Log:

    Version 0.3.7
    * Fixed a ClassCastException error that was happening
    * Added an example world config file to the default config files

    Version 0.3.6
    * Toned down the secret wolves' attacks some
    * Fixed the log message for autosaving (it was saying AnimalCompanion because that's where I copied the auto save from)
    * Fixed a bug in the world loading section of loadWolves()

    Version 0.3.5
    * Fixed nether slimes getting giant fire effects
    * All tick rate timers were 3 times too fast, fixed
    * Added force variables in the config for ghast/winter wolf snowballs and creeper explosions
    * Fixed a bug with the "secret wolves" that was leaving behind junk in the world
    * Added hookups for the AnimalCompanion plugin

    Version 0.3
    * Made all wolf types tamable - hit them with a raw porkchop to calm them down long enough to tame one
    * Tamed special wolves are persistent between server restarts
    * Added a super secret wolf type, fear the sitting wolf
    * Gave hellhounds a small tick fire bite
    * Ghast fireballs in the skylands now explode with snowballs and deal a small amount of damage + knockback

    Older Notes:

    Show Spoiler
    Version 0.2
    * Added multiworld support
    * Added Hellhounds and Winter Wolves
    * Added loot tables for advanced wolves
    * Tweaked Aether Creeper explosions
    * Added version identifier to console output

    Version 0.1
    * Initial Release

    Known Issues:
    * Slimes that catch fire have huge fire effects on them
    * Fire giant fireballs sometimes don't show up but will still damage you
    * Ghasts in the skylands can sometimes get stuck in terrain (Should be resolved)
    * Winter Wolf smoke effects can sometimes become disembodied
    * Winter Wolves in the normal world become normal angry wolves on server restart
    * Hellhounds in the normal world near water or after/during a rain storm can lose their fire effect until they find a target
    * Winter Wolves/Ghasts/Powered Creepers in the skylands can under rare instances with some other mods enabled cause a "Kicked for moving too fast" client kick

    Planned Features:
    * Aether Slimes (high jumping slimes that push you away when they land)
    * Aether Ghasts shoot snowballs (instead of fireballs, do less damage, but have a high spread)
    * Adventurers (humanoids with armor on that can attack you)

    - * Valkyries for the skylands
    * Demons for the nether
    - Advanced Wolves (hellhounds for nether, winter wolves for skylands/normal world)
    * Make advanced wolves tamable and persistent
    - More configuration for everything
    - Add a check to make sure giants don't spawn underground
    - Full multiworld support
    - Spout support for skins
    - Custom mob spawning and hookups for other plugins

    Possible Features:
    * Giants can kick you if you get too close to them
    * Giants might throw up slimes onto you if you hit them (rare chance)
    * Flying/floating mobs for the skylands (pigs and sheep that can fly!)
    * Ghasts for the normal world that do... something
    * Depth dependent normal world mobs (like elemental creepers or harder mobs of some kind)
    * Biome specific normal world mobs (like cactus creepers that explode in arrows)
    * Mob riders, like spider jockeys but with different mob variants

    Related Plugins: (Not made by me)
    * AngryWolves - http://forums.bukkit.org/threads/me...lf-spawns-now-with-hellhounds-953-1000.11256/
    * Tossers - http://forums.bukkit.org/threads/fu...hat-jump-up-jump-up-and-chow-down-1000.16844/
    * Creeper Rods - http://forums.bukkit.org/threads/mech-misc-creeperrods-v1-2-lightning-rods-not-bombs-860.20691/
    * NaturalGiants - http://forums.bukkit.org/threads/mech-naturalgiants-v1-30-make-giants-spawn-naturally-1000.10746/
    * OtherBlocks (for loot dropping) - http://forums.bukkit.org/threads/me...op-editing-ultimate-customization-1000.21074/
    * sRPG (for advanced normal mob behaviors) - http://forums.bukkit.org/threads/rp...ustomizable-rpg-and-combat-system-1000.19180/
    Last edited by a moderator: Nov 13, 2016
    Meechel likes this.
  2. Offline


    Alright cool. Well, I'll be getting back to AdvancedMobs soon. My work on AnimalCompanion is probably coming to an end. I think I've made riding work as best as I can without using Spout. Looks like Spout will be almost required for riding wolves. At least it kinda works, especially over plains and long distances.
  3. Offline


    Thanks for the reply but no thats not what I mean.

    Im talking about maxing mob spawn at a specific spot ie x/y location as in games like World of Warcraft and most standard MMO's. (And to respawn on death after a timer has completed, so you kill a mob at position 100,100 and it reappears 5mins later in the same spot)

    This would give admins the ability to create dungeons where mobs spawn in specific spots rather than just randomly.
  4. Offline


    very interesting plugin, quite fun at night now when using this or even in skylands/nether :)
    however, after some time my console has been spammed with the following message every 2 seconds.
    20:13:59 [WARNING] [AdvancedMobs0.3.7] Caught target cast exception.
    I do have a few plugins that may be causing an issue, unsure if they are indeed the cause or not.
    MyWolf v4.9c and quite possibly mcMMO

    MyWolf adds leveling, pet immortality/lives w/respawn timer, behavior (defensive,friendly,aggressive,etc) + inventory to the wolf as well as the ability to use a string to control its movement/what it agro's.
    mcMMO adds abilities to tames wolves if leveled up enough by a % chance.
    I have noticed a few possible glitches, unsure if they are glitches or not will test later without mywolf&mcmmo but the hellhound when tamed, loses its flame after a few seconds unless you set fire to something and have it walk over it.

    looks like it is mywolf. :/
  5. Offline


    Can you change the normal mob spawning rates? Such as creepers and zombies in normal world? And if so, how ? :p
  6. Offline


    You could hook into WorldGuard and allow configuration of standard mob replacement to be defined specifically for that region - this would allow for dungeons.

    As for respawning on death - might be able to do this for smaller areas by saving the location the mob spawned to a file and adding a timer value when they die. You'd have to limit the number of mobs though & start cancelling spawns when you have a certain number of "stored" mobs waiting to respawn - otherwise the area would overpopulate.
  7. Offline


    That would be a little outside the scope of my plugin. I am only going to be dealing with mob variants, nothing to do with advanced spawning. I can try to make all the hookups for that though if someone else wants to handle my mobs, but that's going to be one of those things that I won't touch because of how much time it takes, and adding more features to my two current plugins is taking up all my time as is.

    @toxycated I didn't think I left that message in AdvancedMobs, but I guess I only removed it from AnimalCompanion. That is a bukkit error that I have to "catch" in my plugins to prevent them from breaking. It means that otherwise, you would be getting spammed by much large errors. I will try to remember to remove the message though before the next update. I had it in there to be sure I was catching it, debug you know? I guess I missed one or two.

    @micdoodle8 I am not doing anything with normal mobs, or their spawning... only mob variants, period.
  8. Offline


    i keep seeing giants disappear in skylands. like maybe after i start to move toward them. are you canceling them if they are in a cave or something?
  9. Offline


    Hey there. Loving the plugin: Nothing like instilling a little fear into your population ^^

    I am having an odd error though:
    2011-08-25 09:41:28 [SEVERE] Could not pass event ENTITY_EXPLODE to LogBlock
        at de.diddiz.LogBlock.LBEntityListener.onEntityExplode(LBEntityListener.java:50)
        at org.bukkit.plugin.java.JavaPluginLoader$62.execute(JavaPluginLoader.java:677)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
        at net.minecraft.server.Explosion.a(Explosion.java:195)
        at net.minecraft.server.World.createExplosion(World.java:1481)
        at net.minecraft.server.WorldServer.createExplosion(WorldServer.java:145)
        at org.bukkit.craftbukkit.CraftWorld.createExplosion(CraftWorld.java:420)
        at org.bukkit.craftbukkit.CraftWorld.createExplosion(CraftWorld.java:428)
        at org.bukkit.craftbukkit.CraftWorld.createExplosion(CraftWorld.java:424)
        at com.bukkit.tennessee.AdvancedMobs.AdvancedMobsEntityListener.onExplosionPrime(AdvancedMobsEntityListener.java:684)
        at org.bukkit.plugin.java.JavaPluginLoader$63.execute(JavaPluginLoader.java:684)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
        at net.minecraft.server.EntityTNTPrimed.explode(EntityTNTPrimed.java:84)
        at net.minecraft.server.EntityTNTPrimed.m_(EntityTNTPrimed.java:66)
        at net.minecraft.server.World.entityJoinedWorld(World.java:1212)
        at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:48)
        at net.minecraft.server.World.playerJoinedWorld(World.java:1194)
        at net.minecraft.server.World.cleanUp(World.java:1110)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:450)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    This is happening (I assume) whenever a giant spawns and stats hurling TNT around. All seems fine in game and the players don't notice anythign is wrong but htis error spams the hell out of console.

    I am using Bukkit 1060, latest version of AdvMobs and LogBlock is on latest version too. Is this an error with your code or with LogBLock?
  10. Offline


    Someone got that error before. From what I could figure out then, the line it was pointing to was the 0 radius explosion I use in order to not cause terrain damage. My guess is, they are not handling an explosion with a radius of 0 properly. I would post over there, since where it exits from my plugin is a call to createExplosion... I am thinking they are trying to de-reference a null pointer because it was created via a command which they weren't expecting and they need to check if that pointer is null before accessing its member variables/functions.

    I have noticed this in all worlds actually. It is nothing that I am doing, and I think it might be a normal action in Minecraft. I have noticed if you walk away from a mob then return to the location they were last seen in, they aren't there sometimes. They must have despawned once you were outside of the view distance to see them. This quiet optimization in Minecraft's code must become apparent when you can still see the giants, since you know, they are alot larger and easier to notice. That's my guess anyhow, since I am not trying to make them despawn. It is also I think what causes the winter wolves to leave behind smoke, but I've so far been unable to catch their despawning through any event.
  11. Offline


    Yes, this seems to be standard minecraft behaviour. The NaturalGiants plugin also had this issue.
  12. Offline


    Cheers for the reply. I'll pass this along to logblock.
  13. Offline


    also getting spammed with this every 6 seconds or so in the console. i get that it's a debug but is the plugin hosed once it starts doing this, like i need to restart the server? it's been doing that for probably 30 minutes now and still going.
  14. Offline


    No, your server is fine. As long as it says that, and it doesn't give a ClassCastException error [Severe] then you are fine. I have also removed that message in the current dev build. I am working on a few bug fixes, including for the winter wolves smoke ghosting... and I am working on the Aether Slimes right now. So once I get that to a good spot, I'll be putting that up. And... when I do, you won't get that message anymore. For now, I am sorry about the spam, but it won't hurt your server any.
  15. Offline


    Thanks a nice plugin :) and i have a funny idea ... you could make giants throw creepers instead of tnt :D
  16. Offline


    Getting this error....
    please help
    Running CB 1060

    2011-08-27 10:27:34 [SEVERE] Could not pass event CHUNK_LOAD to AdvancedMobs
    at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
    at java.util.AbstractList$Itr.next(Unknown Source)
    at org.bukkit.craftbukkit.CraftWorld.getLivingEntities(CraftWorld.java:537)
    at com.bukkit.tennessee.AdvancedMobs.AdvancedMobsWorldListener.onChunkLoad(AdvancedMobsWorldListener.java:49)
    at org.bukkit.plugin.java.JavaPluginLoader$48.execute(JavaPluginLoader.java:577)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:90)
    at org.bukkit.craftbukkit.CraftWorld.loadChunk(CraftWorld.java:234)
    at org.bukkit.craftbukkit.CraftWorld.loadChunk(CraftWorld.java:120)
    at org.getspout.spout.SpoutNetServerHandler.getFastPacket51(SpoutNetServerHandler.java:673)
    at org.getspout.spout.SpoutNetServerHandler.playerTeleported(SpoutNetServerHandler.java:641)
    at org.getspout.spout.SpoutNetServerHandler.updateActiveChunks(SpoutNetServerHandler.java:518)
    at org.getspout.spout.SpoutNetServerHandler.queueOutputPacket(SpoutNetServerHandler.java:417)
    at org.getspout.spout.SpoutNetServerHandler.sendPacket(SpoutNetServerHandler.java:408)
    at net.minecraft.server.NetServerHandler.teleport(NetServerHandler.java:413)
    at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:250)
    at com.thevoxelbox.bukkit.port.newPort.departPlayer(newPort.java:313)
    at com.thevoxelbox.bukkit.port.PortTick.run(PortTick.java:74)
    at java.lang.Thread.run(Unknown Source)
  17. Offline


    I honestly don't know what caused that. I've never had that before. The line it's breaking on suggests it is breaking when it tries to get the living entities in the world. I also see that you have spout installed.

    Theory, do you have any other plugins in there that use spout and change living entities such as the player? It could be getting back spout classes and not recognizing them. I would have to wait until I start testing spout support though to test that theory.

    How often are you getting the error, and do you see anything going wrong in world? Also, is it possible to recreate the same event but without spout running?
  18. Offline

    Marcos Cosmos

  19. After some testing today, I have come to the conclusion that this plugin has a massive memory leak.

    Would be good if someone could also test this on a live server with a good amount of players.
    For us, when I enable this, it triples the amount of garbage collections required per time-unit.

    Hope you can look into it, I can also have someone look into it if you want help, would need source then ofc :)

  20. Offline


    @Marcos Cosmos It's a private server just for me and my friends.

    @Joy Well, first, we've already established in the other thread that your server doesn't like my plugins, but that could right now be the Winter Wolves smoke bug. I am working on that on my end, so hopefully that will go away.

    Otherwise, you do know that in order to give most of the mob variants special AI/attacks they have to have a container class over them to make modifications on a per-tick basis right? Could be that it is cleaning up just alot more than you are used to.

    However, how did you come to this conclusion?
  21. Offline

    Marcos Cosmos

    But I'm your friend? D;
  22. Offline


    I saw other people talking about a memory leak in Bukkit that was made worse by Spout. Not sure of the status of that though.
  23. Yea we run a great deal of plugins, so any new plugin risks having an issue with an already running plugin :p Still those issues can almost always be fixed.

    I monitor our GC log in console as much as the console itself, so I instantly notice GC issues. Our current cycle is around 10 seconds, if I enable AdvancedMobs without changing anything else, it drops to 3 seconds.
  24. Offline


    Well, hopefully as I start working out the bugs, you'll see that go down. I'll have to monitor that myself and see if I can do anything about it. I am getting a little more efficient with it, but Bukkit is absolutely pissing me off by not giving me an onEntityRemove event. It keeps removing entities I am tracking, but because I am holding onto that entity's information, it never goes null. SO... I have no way of knowing that the entity isn't in world, because it's location and all of its information is still valid. This is why you get smoke effects just floating in the last location where a wolf was.
  25. Offline


    can you please give a link to your dev build
  26. Offline


    commands would be nice :)
    /am spawn HellHound 1
    or something...
  27. Offline


    edit: whoops, wrong thread there.

    That is a planned feature. I want to add it in, but I would also have to add permissions and alot of other stuff before I do. Right now, certain mobs just work, but others won't. Any angry wild wolf in the skylands for example would be a winter wolf, since that's just the criteria for them.
  28. Offline


    Hey just a thought. Since the smoke graphic is fine but still a little odd for a winter wolf, would it be possible to swap out snow flakes for the smoke, but make it act the same way?
  29. Offline


    hey i host a server and it keeps telling me( Caught target cast exception.) nothing else happens but is that the plugins problem or something i did
  30. Offline


    @kalez It isn't, unless I get some way to send packets directly or something. I'm actually a little bit limited in what effects bukkit provides me with.

    @frost-fire no, that's a debug message I accidentally left in the last version. It should go away in the new one once I release. It won't hurt your server any, in fact it means it caught something that would have.
  31. Offline


    Figured not, but never hurts to ask =b I realize those limits when setting up magic spell effects and such too.

Share This Page