[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


    No I don't think there was good communication on that at all. It was slim pickins in that thread and the userbase just floundered for weeks until someone else fixed it. And again, the vacation thing doesn't make sense when he's posting all up and down other threads. That whole situation was just flabbergasting. Don't forget the people on the other end.

    I provide bug reports and suggestions ad nauseum to devs to help them improve their plugins. In return, I do expect good communication from anyone that thinks they are one of the major project devs though. If you're 13 and coding on your summer vaction, it's a different matter, of course. And I don't think that's too much to ask. And actually, I fully support dev vacations and freely give kudos where it's due :p

    Anyway, personal rants are taking this thread wayyy off-topic, thought I'm sure the OP appreciates the bumps :p

    Good luck to all.
  3. Offline


    I never "dumped" it, the plugin has temporary builds that work fine for the current RB's. Did you read the thread? Like 5th or 6th line in the OP is the link to the temporary builds.

    I never said I was going on vacation, I explained that I was putting it on hiatus to work on Spout.

    You do know a large reason that I started BukkitContrib (Which is now Spout) was to build a better minecart plugin, right? To add Custom blocks, custom minecarts, and remove the jerky lag on the client? :p

    I posted links to the alpha builds multiple times before Bukkit 1k was released and gave links to temporary builds at ci.craftfire.com several times too, before another dev picked up support.

    If you're going to rant, get facts right first. ;)
  4. Offline

    Marcos Cosmos

    Bad communication? You mean a eye-catching siggy isn't enough to imply that theres a new plugin? Also I Did get confused by bthe holiday. But he specifically mentioned to spout users that they should ask two other spoutdev members if they needed help with spout , so he wasnt hiding. Also it appears he came back of course but he was gone for a few days. Anyway i think youve missed something or other because the it thing I didnt know was the exact date he returned, but regardless there's no reason to worry about spout disappearing.. and yeah this is a little off topic...

    @TheTennessee do you have any plans for endermen?
  5. Offline


    Can you set a specific block that the mob will spawn on every (x) seconds?
  6. Offline


    Sadly every plugin I have ever come across that claims you can ride and CONTROL mobs has never worked. None of them ever actually have any sort of control, I have messed with them many times and each time it's always the same result, the creature goes where it pleases with 0 control over it =/
  7. Offline


    This is one of the more awesome plugins out there, thank you so much.
    By the way: "words" instead of "worlds" in plugin title! :D
    Keep up the good work!
  8. Offline


    I totally do not, that is totally your imagination. :oops:
    Thanks for pointing it out though, I am terrible at typos.

    Okay, for the REST of you, chill! This is my thread, and I won't have any of that. So... down, all of yah!

    @Afforess you misunderstand me here. It's not that I don't want to use spout. I do in fact. The thing is, AnimalCompanion doesn't even use AdvancedMobs as a dependency. It is an option. That's what I want to make spout, an option. Sadly, that means finding solutions for it without spout, then adding simpler solutions with spout. That also means making sure my code never references spout unless spout is found. I hope you understand what I mean by this. Right now, to access inventories, I am having the wolf drop his inventory into a chest where he was located and sitting on top of it. This isn't the best solution, but it will be completely overwritten by spout's solution if spout is found. So, I do plan to support spout, more and more as I see what it can do in fact.

    @toxycated Spider jockeys are actually a rare occurance where a skeleton becomes attached to a spider because they spawn on top of each other. My plugin won't effect them in any way. But that is a good idea for mob variants, is to make more types of riding mobs. Perhaps skeletons riding hellhounds in the nether? It's always possible.

    @Bronski run the newest version, and it will create an "example_world_config.yml" file for you. That has all of the settings in there for quick reference.

    @_Hayleigh_ I am not quite sure what you mean by that? If you mean custom mob spawning, like... search for obsidian and if the plugin finds an obsidian block to spawn a mob manually, and do it every X seconds? I am just utilizing the natural mob spawning right now and replacing what they try to spawn. If I spawned manually, I'd have one slight problem, and that is flooding the world, like what happened in the skylands to me once before.

    @Marcos Cosmos Oh you are tickling my fancy right now. Endermen are one of those mobs I am getting tickled pink about. I am going to have to wait to find out what their behavior is though before I do anything with them. I don't know if their block building can be turned off, how destructive it will be, or even if the endermen act like ghasts or something and don't have a traditional target. But... skin wise on my server I plan to make them into scarecrows. Variant wise... I'd probably make them something like spellcasters, very creepy spellcasters. Heck, if they keep the blocks in their hands, I might even make them do different things depending on the blocks they have in hand.

    I seemed to have missed this. So I'll reply here. My posts are getting rather long individually it seems. It isn't so much about competition, as it is having the know how myself. Learning this stuff is important to me, which kind of means going it on my own. So... for me, learning HOW to do is as important as doing it. After all, I didn't know Java at all before this.

    And I am not -not- going to use Spout, I am just not going to base my plugin off it. I will only make Spout optional, like AdvancedMobs is to AnimalCompanion, optional but adding alot.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 18, 2016
    eleljrk likes this.
  9. Offline


    Can you add an option to replace chicken in normal worlds with Ghasts?
  10. Offline


    I could perhaps try to find a way to add ghasts into the world somehow. Of course, it wouldn't be through chickens. Replacing one mob type with a different mob type in terms of animals/monsters is a bad idea usually, so I avoided it everywhere but the skylands since onyl chickens normally spawned in the skylands.

    Any ideas on what you would want the Normal world Ghasts to do?
  11. Offline


    Shooting blocks of earth could be kind of fun?
  12. Offline


    I came here again because of the alert, but guess what I found!
    "...spider becomes attached to a spider...". :D
    That one is actually quite clever of you.
  13. Offline


    Same as Giants. I'm trying to add some spice to my survival map. It's too easy without constant mob harassment.

    Edit: with customizable drops too.
  14. Offline


    Hm... I'll see what I can do with them. As for drops, I suggest going to OtherBlocks for that. I am including drops for new mob types that don't have any default drops, but if you want to change the drops of ghasts between worlds, you'll need to use OtherBlocks for that. Ghasts already have drops, so I won't be adding that in.

    @eleljrk ... When I gotta respond to a dozen people in one post, I am allowed to have typos. -_-
  15. Offline


    Thank you :)

    Also why am I getting these errors from the console? Nothing in-game seems to be wrong.

    Show Spoiler
    2011-08-23 18:03:52 [SEVERE] Could not pass event CREATURE_SPAWN to AdvancedMobs
    java.lang.IllegalArgumentException: Health must be between 0 and 200
    at org.bukkit.craftbukkit.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:38)
    at com.bukkit.tennessee.AdvancedMobs.AdvancedMobsEntityListener.onCreatureSpawn(AdvancedMobsEntityListener.java:63)
    at org.bukkit.plugin.java.JavaPluginLoader$67.execute(JavaPluginLoader.java:712)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callCreatureSpawnEvent(CraftEventFactory.java:234)
    at net.minecraft.server.World.addEntity(World.java:855)
    at net.minecraft.server.SpawnerCreature.spawnEntities(SpawnerCreature.java:134)
    at net.minecraft.server.World.doTick(World.java:1715)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:444)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 18, 2016
  16. Offline


    Well, first, are you using 1060? Second, what is your GiantHealth set to in your config?
  17. Offline


    Yes, using build 1060. Giant health is 240.
  18. Offline


    Man, you gotta read the error. Between 0 and 200. You aren't trolling me here are you? I'm going to let you figure this one out from here.
  19. Offline


    My bad... I've had a long day and I'm tired. Reading anything is a pain right now.
  20. Offline


    If you expose an API where I can query the new mobType of a specific entity I could perhaps work on allowing OtherBlocks to customise their drops. If you add a spawnCustomMob(type) function then perhaps OtherBlocks could also drop custom mobs.
  21. Offline


    I'll try to get that in Zarius. It'll probably be around the same time that I get the ability to spawn through commands though too. :p
  22. Offline


    Cool, let me know if you do get an API up. I might get to expanding on my other ideas at some point - getting the OtherBlocks 2.0 rewrite done is a big task though :D
  23. Offline

    Marcos Cosmos

    @TheTennessee (quote = too long)
    I know right! Endermen are the best idea Notch ever had, and the best mob ever :D
    As for control and all the features you could use endermen for, and control for wolves and mount and stuff aswell actually, So far as I know that kind of Control (particularly of mounted animals), and from what I've heard from developers it's impossible to do with MC as it is.. So once the standard modding API for spout is out I'ma push for them to find a way. Which will be a Major bonus for endermen I reckon :D. Of course, I doubt you could avoid spout dependancy with that but you could make an add-on plugin or something? :3

    Also. I would Really like to see your code as it develops or something, because I'm planning to dabble with plugins a little myself later in the year, and your approach is quite interesting :), and as to your last reply, all I have to say is "cool, sorry that I misunderstood"

    Anyway keep up the good work,
    Marcos Cosmos
  24. Offline


    Yeah, once I get animalcompanion to a stable build, I plan on finding out how to get my code up onto GitHub...

    Really though, so far I've found that the control works, but it is extremely twitchy. I can direct my wolf where to go well enough to travel long distances... However, I feel like the one thing that could make it work better is if your wolf didn't twitch around so much when not traveling, or your camera didn't -follow- that twitching. It's impossible to actually make your wolf stand still. Long distance riding, it works great, and once Spout support is in, making it work with keys might just make it good enough to use. It is possible though, at least to do something, maybe it won't be perfect, but I am still working on it.

    And yes, Endermen make me think of so many different things, but then again, I also play League of Legends, and their spindly bodies keep making me think of Fiddlesticks... so yeah... you can see where maybe my ideas are going.
  25. Offline


    I got this on 036:

    2011-08-24 00:01:45 [WARNING] Task of 'AdvancedMobs' generated an exception
    java.lang.IllegalArgumentException: Cannot measure distance between worlds or to null
            at org.bukkit.Location.distance(Location.java:327)
            at com.bukkit.tennessee.AdvancedMobs.WinterWolf$WinterWolfAttack.run(WinterWolf.java:80)
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:137)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:428)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    I will update and tell you if I see it again.

    2 of us saw at separate times wolves in skylands shooting snowballs seemingly through walls. The other guy said he was pinned against the wall in his house and the wolf was outside. I'm on cb1060.
  26. Offline

    Marcos Cosmos

    Mk cool, and yeah by AI/control, I meant the non-twitching for the wolf.
  27. Offline


    Oh i forgot the giant tnt damages us with essentials godmode on.
  28. Offline


    Yeah, I fixed that in 0.3.7, or at least, the version I found. So let me know after the update.

    I will try to pull their blast in a bit. It must be starting on the other side of the wall and not colliding with anything.
  29. Offline


    Can you provide a benchmark of how resource-intensive this plugin is?
  30. Offline


    Well... I heard there were some commands to use or something to figure that out. What do you suggest? That's honestly the first time I've heard of anyone asking for that.
  31. Offline


    I don't know about any external profiling tools but I used System.currentTimeMillis() at the start of my main functions, again at the end and subtracted the two to get time taken (I only do this if "profiling" is enabled).

Share This Page