CMA Reloaded
Cake's Miner Apocalypse
I have taken this project up, because most of the users asked me. So here it is.
Origin of Idea
Cakes Miner Apocalypse Subreddit
Just to be clear, this mod was made for the subreddit, not the other way around. However, anyone can use it, not just people involved with the subreddit!
Backstory
You stumble over a tangle of grass as you finally come to your senses. Where are you? You look around, seeming to be in the middle of a vast grassy plain, the likes of which you've never seen except in the holobooks of your youth. Where were you coming from? You look over your shoulder to try and spy your origin, but the plain extends for as far as the eye can see, no end in sight. A jolt of pain sends your hand up to the side of your head to find hair matted with blood. A head injury, most likely. Even as you think this, your memory becomes clearer. A special mission, they said. Something about preserving humanity. You dig in your pocket under the heavy, lead filled armor and find a handfull of seeds. It all comes flooding back.
You were a candidate in a military program on experimental stasis, although now you suspect that you had been fooled. Why else would you be wearing what amounted to a lead apron, in a world where the air tastes like metal from the ionization. Why else would the room in which you awoke, a room that you have ho hope of finding again, look as though it were a million years old. Why else would you have a pocketfull of seeds. Why else can you not find the vast, sprawling city of your home.
What happened to the world? Are you alone, or are there others? Questions race through your mind as a change in the scenery catches your eye. The world is becoming slightly darker, the sun sinking over the horizon. You don't know why, but you have the feeling that being out in the open at night, even in this seemingly deserted land, would be a bad idea. You walk to a tree, a lone sentinel in a land full of mysteries. You clench your fist. Well, it's not like you have an axe...
Explanation
This mod is meant to approximate single-player mode in multiplayer minecraft, with the rare possibility of discovery and friendship. Players are randomly spawned into locations in the world, which is a set size and wraps around on the borders. The distances involved (customizable) mean that you have a good chance of remaining completely undiscovered if you wish, however if you go venturing, you may very well bump into another player, shattering the single-player illusion. Over time, players find each other, creating towns, friendships, betrayals, and enemies out of the interactions.
I felt it important to add my name to the title of the mod, not to try to increase my own popularity, but to distinguish my mod from the many others that I am sure will be made out of this idea. I will be taking this mod in a different direction than I'm sure the official mod will go in, and from where other individuals' mods will go.
Features (so far)
- Multiworld support!
- Random spawn and respawn across the total surface of the world.
- Customizable world size (edit CakesMinerApocalypseMapSize.txt in your server folder to width and height of world, default 10000).
- World-edge wrap, meaning that once you reach an edge of the world, you will be teleported to the other side.
- Radio equipment for survivors, if they wish, to communicate with other survivors over long distances.
- Chat based on distance, no global chat, chat gets more unintelligible the farther you are away from the speaker.
- Random Fallout Shelter generation in 0.1% of chunks (by default). See this imgur album for details. Fallout shelters are encased in bedrock with an iron door as the only entrance.
- Iron doors that are powered are indestructible. An iron door with a lever next to it is the only entrance to fallout shelters, which when closed are impervious to attack.
- Radiation damage system where you get damaged more the closer you get to generated craters (in 0.1% of chunks by default).
- G.E.C.K.s lower the area's radiation levels. See this imgur album for details.
- Dirty Bombs/Nukes!
- Click here for an in-depth explanation of the features of this mod...
Servers That Feature This Mod!
None right now, submit yours in the comments!
Acknowledgments
- dotblank - Your programming expertise helped this mod out in a tight spot, and has enhanced my plugin programming knowledge.
@SherlockHomie
http://dev.bukkit.org/server-mods/cakesminerapocalypse/files/2-cakes-miner-apocalypse-2-8/
Fixed!
@SherlockHomie
Yeah, problem is with alternate worlds. I will check on it today.
Just got this error 14:26:10 [SEVERE] Could not pass event BlockRedstoneEvent to CakesMinerApocalyps e v2.7 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.v1_4_R1.BlockTripwireHook.a(BlockTripwireHook.ja va:166) at net.minecraft.server.v1_4_R1.BlockTripwire.d(BlockTripwire.java:101) at net.minecraft.server.v1_4_R1.BlockTripwire.onPlace(BlockTripwire.java :70) at net.minecraft.server.v1_4_R1.Chunk.a(Chunk.java:433) at net.minecraft.server.v1_4_R1.World.setRawTypeIdAndData(World.java:304 ) at net.minecraft.server.v1_4_R1.World.setRawTypeIdAndData(World.java:293 ) at net.minecraft.server.v1_4_R1.StructurePiece.a(SourceFile:384) at net.minecraft.server.v1_4_R1.WorldGenJungleTemple.a(SourceFile:452) at net.minecraft.server.v1_4_R1.StructureStart.a(SourceFile:29) at net.minecraft.server.v1_4_R1.StructureGenerator.a(SourceFile:73) at net.minecraft.server.v1_4_R1.ChunkProviderGenerate.getChunkAt(SourceF ile:425) at org.bukkit.craftbukkit.v1_4_R1.generator.NormalChunkGenerator.getChun kAt(NormalChunkGenerator.java:49) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:226) at net.minecraft.server.v1_4_R1.Chunk.a(Chunk.java:801) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:143) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:85) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.createWorld(CraftServer.ja va:751) at org.bukkit.Bukkit.createWorld(Bukkit.java:156) at org.bukkit.WorldCreator.createWorld(WorldCreator.java:235) at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypse.alternateWorlds (CakesMinerApocalypse.java:839) at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypse.onEnable(CakesM inerApocalypse.java:117) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader .java:457) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage r.java:381) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.jav a:282) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer. java:264) at net.minecraft.server.v1_4_R1.MinecraftServer.j(MinecraftServer.java:3 21) at net.minecraft.server.v1_4_R1.MinecraftServer.e(MinecraftServer.java:3 00) at net.minecraft.server.v1_4_R1.MinecraftServer.a(MinecraftServer.java:2 59) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.jav a:149) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java :399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:8 49) Caused by: java.lang.NullPointerException at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypseBlockListener.on BlockRedstoneChange(CakesMinerApocalypseBlockListener.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:425) ... 35 more 14:26:10 [INFO] Preparing spawn area for worldAlternate, 56% 14:26:11 [SEVERE] Could not pass event BlockRedstoneEvent to CakesMinerApocalyps e v2.7 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.v1_4_R1.BlockTripwireHook.a(BlockTripwireHook.ja va:166) at net.minecraft.server.v1_4_R1.BlockTripwire.d(BlockTripwire.java:101) at net.minecraft.server.v1_4_R1.BlockTripwire.onPlace(BlockTripwire.java :70) at net.minecraft.server.v1_4_R1.Chunk.a(Chunk.java:433) at net.minecraft.server.v1_4_R1.World.setRawTypeIdAndData(World.java:304 ) at net.minecraft.server.v1_4_R1.World.setRawTypeIdAndData(World.java:293 ) at net.minecraft.server.v1_4_R1.StructurePiece.a(SourceFile:384) at net.minecraft.server.v1_4_R1.WorldGenJungleTemple.a(SourceFile:472) at net.minecraft.server.v1_4_R1.StructureStart.a(SourceFile:29) at net.minecraft.server.v1_4_R1.StructureGenerator.a(SourceFile:73) at net.minecraft.server.v1_4_R1.ChunkProviderGenerate.getChunkAt(SourceF ile:425) at org.bukkit.craftbukkit.v1_4_R1.generator.NormalChunkGenerator.getChun kAt(NormalChunkGenerator.java:49) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:226) at net.minecraft.server.v1_4_R1.Chunk.a(Chunk.java:801) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:143) at net.minecraft.server.v1_4_R1.ChunkProviderServer.getChunkAt(ChunkProv iderServer.java:85) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.createWorld(CraftServer.ja va:751) at org.bukkit.Bukkit.createWorld(Bukkit.java:156) at org.bukkit.WorldCreator.createWorld(WorldCreator.java:235) at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypse.alternateWorlds (CakesMinerApocalypse.java:839) at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypse.onEnable(CakesM inerApocalypse.java:117) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader .java:457) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage r.java:381) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.jav a:282) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer. java:264) at net.minecraft.server.v1_4_R1.MinecraftServer.j(MinecraftServer.java:3 21) at net.minecraft.server.v1_4_R1.MinecraftServer.e(MinecraftServer.java:3 00) at net.minecraft.server.v1_4_R1.MinecraftServer.a(MinecraftServer.java:2 59) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.jav a:149) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java :399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:8 49) Caused by: java.lang.NullPointerException at me.cakenggt.CakesMinerApocalypse.CakesMinerApocalypseBlockListener.on BlockRedstoneChange(CakesMinerApocalypseBlockListener.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:425) ... 35 more
It kind of got cut off because the log didn't get the whole thing. But I tried to copy as most as possible.
@dretax
When do you plan on releasing it?
Edit: Well I'm stupid, I just refreshed and the file was there and ready.
@SherlockHomie
Well thank you! :D
You are now my favorite plugin developer.