MobDungeon
MobDungeon
Hey community!
Many of you would say: "Isn't there already a plugin called 'MobArena', that does the same thing?". Well you're right in some way, because the basic idea of both is to fight against mobs and get rewards. But as you know, in MobArena you can only play at ONE location per arena. If you want to be able to fight in different spots, you would need to make separate arenas. Also you would need to leave/finish the first one and then manually join into the second one for example. MobDungeon takes it further. You can now set multiple locations and get through them without doing something manually. You'll see that later.
So first of all, I want to thank garbagemule for his awesome plugin, MobArena. It's still a better plugin definitely, but we'll see ;)
Introduction
So one day, I came along the MobArena plugin and I really like it. Some days later, I build a huge arena containing four different locations. They were separated by walls so the players can't get into another arena. I thought about connecting them in some way, e.g. that players would first need to finish the first arena, then get to the next one. The problem was now, I wanted that the players would automatically get teleported to that next arena without them doing anything. But that doesn't work with MobArena. Since I'm programmer who has some years experience in some languages (e.g. C#, C, Java), I thought it would be a nice little project for me to get into bukkit-plugin programming. I already knew bukkit for so long, but didn't really got into developing, so I thought I would be a good start. So here I am with my plugin.
Ideas
The main Idea is pretty obvious: Kill mobs, get to the next level, receive rewards. Pretty simple, huh? Yeah, but what about the way you get into the next level, or what kind of rewards you get? Well, let's make a list:
- Requirement to proceed to next level
- Variety of rewards, like Items and money
- Be able to create a wave of mobs once, and use it in as many levels as often as you want
- More levels per dungeon!
- Be able to create/modify/delete dungeons/levels directly inside the game
- Easy to use settings-format
- Classes! You have any other great ideas? Let me know!
Commands
Here are all commands that are/will be available:
- /md list : lists all available dungeons/levels/waves
- /md info : plugin info
- /md help : all commands with usage & description
- /md create : creates a new dungeon
- /md delete : deletes a dungeon
- /md addlevel : add level to the current dungeon
- /md removelevel : removes a level from the current dungeon
- /md editdungeon : sets the dungeon as the current one and set's him in the edit-state
- /md setcorner : sets corner of the current level
- /md deletecorner : deletes a corner with id
- /md changesize : change size of the level in all directions (up, down, in, out)
- /md editrequirement : change requirement for completing current level
- /md setspawn : adds a new monster spawn point
- /md deletespawn : removes spawn point
- /md setwarp : adds a warp point
- /md deletewarp : deletes a warp point
- /md getcurrent : returns current dungeon & level
- /md setcurrent : sets current dungeon/level
- /md save : saves current dungeons/levels/waves/classes
- /md reload : reloads data into the plugin
- /md j or /md join : joins a dungeon
- /md spec or /md spectate : joins as a spectator
- /md l or /md leave : leaves current dungeon
- /md generate: creates an area based on the WolrdEdit selection
- /md setoption: sets the given option to the given value
You can use /mbd or /mobdungeon as well!
Permissions
mobdungeon.join.*: description: Gives acces to join a dungeon mobdungeon.leave.*: description: Enables leaving a dungeon while it's active mobdungeon.spectate.*: description: Gives access to spectate a dungeon mobdungeon.list: description: Gives access to the lists of dungeons/levels/waves mobdungeon.cofig.*: description: Gives access to all editing commands for a dungeon/level mobdungeon.config.save: description: Saves all data to the files mobdungeon.config.reload: description: Loads the data again from files mobdungeon.config.editdungeon: description: Enables editing of a dungeon/level for the player mobdungeon.config.create.*: description: Enables creation of certain things. mobdungeon.config.delete.*: description: Enables deletion of certain things mobdungeon.config.create.dungeon: description: Enables creation of a dungeon for a player mobdungeon.config.create.level: description: Enables creation of a level for a player mobdungeon.config.delete.dungeon: description: Enables deletion of a dungeon for a player mobdungeon.config.delete.level: description: Enables deletion of a level for a player mobdungeon.config.create.warp: description: Gives access to setting a warp in a level mobdungeon.config.create.spawn: description: Gives access to setting a spawn in a level mobdungeon.config.editrequirement: description: Gives access of editing the requirement for the level default: false mobdungeon.config.changesize: description: Gives access of changing the size of a level mobdungeon.config.create.edge: description: Gives access of setting a corner for a level mobdungeon.config.setcurrent: description: Used to change level for editing mobdungeon.config.delete.edge: description: Gives acces to delete a corner mobdungeon.config.delete.spawn: description: Gives access to delete a spawn mobdungeon.config.delete.warp: description: Gives access to delete a warp
Installation & Setup
To install the plugin, just drop it inside the plugins folder and start the server. Configs will be created automatically! Setup for those things that you can't edit in game will follow!
Changelog
Version 1.1.4.1: - Added ready-area - Fixed issues when WorldEdit is not installed Version 1.1.4: - Fixed permissions problem on 'setcorner' command Version 1.1.3: - Added min/max players option - Added multi-language support (You need to write them on your own) - Added broadcasting messages - Added small global config - Added world edit support - Added button to set yourself ready - Added entrance fee - Added set option command to edit dungeon options in game - Fixed error when loading level with no requirement set - Fixed permissions (you won't need vault only permissions anymore) - Fixed using setspawn without parameters - Fixed update-notification - Removed "level" optional-parameter from all commands (except where it's a required parameter) - Unified all items defined anywhere in the config. You'll need to rewrite somm of them, sorry. - When you finish editing a dungeon, the inventory no longer gets reseted Version 1.1.2: - Fixed saving issue - Added dungeon mode. You can now choose between normal and hardcore (bring your own items) - Changed change size command. You can now specify which cuboid area you want to change (all cuboids are default) - Fixed some javadocs Version 1.1.1: - fixed saving issue - finished events Version 1.1: - Updated to lates CB version - Fixed issues with not getting items when dying in the dungeon and it directly ends - Some other small fixes. - Added option to enable/disable item sharing between players - Added Update-notifier - Added and fixed Bosses (Yes, enderdragons work too) - Added and fixed Abilities - Added something API-like - Added temporary permissions for join, leave, spectator and classes ! - Added YAML-Configs! v.1.0.7: - Added "sign under block" entrance - Fixed some things - Added economy support (Note: you need vault for that!) - More work on bosses. - build agains R4 - default config is available again Version 1.0.6b: - Forgot some issues with essentials. There shouldn't be issues anymore. Version 1.0.6: - Fixed issues with Essentials - Added ability to enable/disable monster drops - Started work on bosses Version 1.0.5: - Fixed some NullPointerExceptions - Players now get warped to spectator position when they die. - Some other changes. - Fixed chunk not being loaded when leaving/ending the dungeon. - Added death message. - Prevented some NPEs. Version 1.0.4: - Changed help for some commands and added missing ones. - Changed the order of parameters for some commands (see help). - Fixed some issues when trying to enter a dungeon with no levels. - Fixed spawning more mobs that stetted. - Fixed issue that the dungeon ends after the first level. - New spectators now get teleported to the last spectator spot. Version 1.0.3: - Fixed some NullPointerExceptions. - Fixed help command. - Fixed setcorner and setspawn not working properly. Version 1.0.2: - Moved plugin.yml to wok with fatjar. - Disabled standard config because they don't work with fat jar for some reason... - Fixed bugs when more than one player is in a dungeon. - Fixed error when trying to edit a dungeon. - Modified setSpawn a bit to be easier configureable. Version 1.0.1: - Fixed adding items to rewards instead of giving it to player when selecting class and if amount is greater that 64. - Fixed default level config. Version 1.0: - Initial release.
Videos
Ending
Thanks for using this and keep me at developing this ;) If you have questions, suggestions, bugs or something else, just let me know.
kumpelblase2
Download
Current file can be downloaded here: MobDungeonBeta
Great! This issue with the waves is strange though. When I tried the level today, it stopped at wave3 instead of wave2, and I haven't changed a thing in the waves or levels files.
I'm continuing to push out pre-releases until all major bugs are fixed. There will be new one out today I think, which hopefully already fixes 40-50% of the errors.
@TheNorwegianBotMeister
Tried, worked fine for me, but maybe because I'm changing many parts of the code the fix all the current errors. I' still gonna try your waves to see if it's a problem related to them.
@xXReVurbXx
Working on it, see pre-releases.
My server's control panel makes the most recent stuff appear at the top.
Read this error from bottom to the top.
This is what happens when I try to /md ready or click a button in the lobby.
http://pastebin.com/rw1EbEtX
@kumpelblase2
Thank you, I can't believe I missed that. However, I bring more issues, because in my now working dungeon - everything stops after wave 2. I join the dungeon, select class, ready up and start fighting with no problems. Wave 1 and wave 2 work exactly like they are supposed to, but Wave 3 never arrives. Here's a more orderly list of my levels and waves files:
Levels
Waves
Note: The level with the issues is called "Stage1".
@TheNorwegianBotMeister
Well, it was a config issue. The last potion has a 3 too much at the beginning of the id.
@TheNorwegianBotMeister
working on it.
@Nik0lashka
working on it.
Huh, when I deleted level1, this message spammed my console about 10 times a second until I replaced the level.
01.04 18:10:58 [Server] INFO [MobDungeon] An error occurred: The level 'level1' does not exist.
well i updated plugin to last from dropbox:
[WARNING] [MobDungeon] There was an error getting the current level. The index is out of bounds: 0 2012-04-01 19:43:05 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'md' in plugin MobDungeon v1.1.5_pre at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:469) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:906) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:866) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:849) at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:116) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon.startFight(MDDungeon.java:605) at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon.setPlayerReady(MDDungeon.java:734) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onReady(MDCommandExecutor.java:1844) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onCommand(MDCommandExecutor.java:140) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 12 more 2012-04-01 19:43:05 [WARNING] [MobDungeon] There was an error getting the current level. The index is out of bounds: 0 2012-04-01 19:43:05 [WARNING] Task of 'MobDungeon' generated an exception java.lang.NullPointerException at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon$3.run(MDDungeon.java:573) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
@kumpelblase2
I see, thank you.
@TheNorwegianBotMeister
It think it is a bukkit related issue because I don't see anything that points to mob dungeon at all. I'm gonna try how this happens and submit a ticket at bukkit.
@kumpelblase2
Thank you.
@TheNorwegianBotMeister
hmm... I'm gonna take a look at that.
@kumpelblase2
The most recent pre-release.
@TheNorwegianBotMeister
which version are you using?
I absolutely adore this plugin, but there seems to be an issue with one of my classes. The alchemist class, as listed below, kicks me from the server whenever I choose it, seemingly because of an "Internal server error" Once I rejoin I have left the dungeon, but I'm carrying the items from the alchemist class.
This is the class:
alchemist: items: "373:16421": amount: 9 "373:16449": amount: 5 "373:16425": amount: 4 "373:8226": amount: 3 "373:16394": amount: 3 "373:16451": amount: 3 "3373:16428": amount: 8 "283": amount: 1 armor: - 298 - 315 - 316 - 317
The console provides me with the following error:
01.04 15:25:13 [Server] WARNING [MobDungeon] There was an error getting the current level. The index is out of bounds: -1 01.04 15:25:13 [Server] INFO at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) 01.04 15:25:13 [Server] INFO at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) 01.04 15:25:13 [Server] INFO at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) 01.04 15:25:13 [Server] INFO at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) 01.04 15:25:13 [Server] INFO at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) 01.04 15:25:13 [Server] INFO at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) 01.04 15:25:13 [Server] INFO at net.minecraft.server.Packet10Flying.handle(SourceFile:126) 01.04 15:25:13 [Server] INFO at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:341) 01.04 15:25:13 [Server] INFO at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:228) 01.04 15:25:13 [Server] INFO at net.minecraft.server.EntityHuman.F_(EntityHuman.java:159) 01.04 15:25:13 [Server] INFO at net.minecraft.server.EntityLiving.F_(EntityLiving.java:447) 01.04 15:25:13 [Server] INFO at net.minecraft.server.EntityHuman.e(EntityHuman.java:310) 01.04 15:25:13 [Server] INFO at net.minecraft.server.PlayerInventory.i(PlayerInventory.java:169) 01.04 15:25:13 [Server] INFO at net.minecraft.server.ItemStack.a(ItemStack.java:263) 01.04 15:25:13 [Server] INFO java.lang.NullPointerException 01.04 15:25:13 [Server] WARNING Failed to handle packet: java.lang.NullPointerException
New pre-release!
http://dl.dropbox.com/u/15011952/bukkit/MobDungeon.jar
Changelog: - Added disable_inventory
- ReFixed boss health
- Fixed levelinded being out of range
- Fixed not saving removals of dungeons and levels
- Fixed not removing armor when mode is 'normal'
@thanhxike
sure.
@Nik0lashka
can you try the prerelease (see newest pre-release in the post above)?
@stutiguias
I hopefully fixed it in the newer pre-release
Can i use the current version for 1.2.4 R.01 server ?
hello, i got a problem, what i did: created dungeon, created level, set 6 corners, changed size 2 up 4 down, added 2 spawns, added lobby spectator and entrance warps, when i type "/md j Arena" it works fine - teleports to lobby, i choose class, but when i type "/md ready" it tells this "An internal error occured while attemting tp perform this command" and here is log: [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'md' in plugin MobDungeon v1.1.4 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:469) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:906) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:866) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:849) at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:116) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon.startFight(MDDungeon.java:663) at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon.setPlayerReady(MDDungeon.java:847) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onReady(MDCommandExecutor.java:1926) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onCommand(MDCommandExecutor.java:140) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 12 more 2012-04-01 12:51:36 [WARNING] Task of 'MobDungeon' generated an exception java.lang.NullPointerException at de.kumpelblase2.mobdungeon.BaseClasses.MDDungeon$3.run(MDDungeon.java:631) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
@kumpelblase2
my falt... its normal now... i notice only if he disconnect the itens don't change back, on next login... but the problem maybe is on conflict with other plugin... and i test the 1.1.5_pre ... the config file is empty and the boss life don't work... i only get this error WARNING] [MobDungeon] There was an error getting the current level. The index is out of bounds: -1