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
Thank you again ;)
The fact that "map / PvE", is written as it is its all completely normal, we have "ranger" our maps in this folder ("map") so this is the tree that appears.
My problem is only on the waves there is no wave that appears at the broadcast as a result I changed my setup gives you in case it would be easier for you.
thank you very much
dungeon.yml http://pastebin.com/ArDerdGr levels.yml http://pastebin.com/JZW3XQE6 wave.yml http://pastebin.com/mGmx5XJZ
@OreoKirby
just like you would do as a reward.
When creating an entrance fee how does one make it require "Money" from iConomy for example?
@melzeth
some commands require a permission e.g. editdungeon or create/delete. Otherwise, is there an error or something in the console?
I don't know if I'm doing something wrong, but this time I even can't ejecute any command at all.
v1.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
Changes/Info:
How to use WorldEdit:
- Make your selection
- type /md generate
- If you want to edit a previous made area do /md generate <areaid>
Setoptions command:
- /md setoption <option> <value>
- e.g.: /md set option min_players 4
- options are named like the config options for dungeons
Ready button:
- just place a button inside the lobby area, that's all. When a player hits it he'll get (un)ready depending on his previous state
Entrance fee:
- example:
- You would now need 10 stone to be able to play inside the dungeon. The fee will get removed when the level starts. Meaning if a players leaves before the level starts, he won't pay anything.
- All items now need to look like in the example above. so
- first node is a normal item, whereas the second one is an item with a data/damage value (color, potions).
- permissions have changed, see main page
Hello and before all a BIG thank you for your attention :)
So I change the "warp spectator" to the same coordinate as the warp lobby. And the fact that there is marked map / PvE it is normal because our maps are appointed principal in a folder "map".
After the changes the problem unfortunately persists after the "/ j md Kelan" I teleports well once the "/ ready" but when I see that the message "wave # 1" still no mob in sight. ^ ^
Regarding the wave I have to put the name of the wave that is already like places, for example: "wave1-" if I want some more I put a line "-Wave2" or it goes directly to the following?
For classes sorry, but I'm stuck here on where do I specify which classes are available?
Thank you very much for helping!
@Puffermcklein
es zwingt dich keiner dazu MobDungeon zu benutzen, also von daher. Ich habe da geholfen, wo ich zumindest eine kleine Ahnung habe, woran es liegen könnte.
Beim speichern kann ich dir z.B. eher wenig/garnicht helfen, da das schreiben bukkit, bzw. eine library von bukkit, übernimmt.
Und bei der Sache mit den permissions, kann ich auch eher weniger tun, da es mir bis jetzt nicht möglich war das zu reproduzieren um eine Lösung zu finden. Wenn ich das schaffe, dann versuche ich das auch zu lösen.
Der Fehler ist bereits gefixt im nächsten release. Workaround: /md setcorner <nummer>
Langsam keine lust mehr ... nehme ich lieber ein anderes dungeon-plugin. Wenn man hilfe braucht wird man hier ja auch ignoriert...
/md create ... dungeon erstellt ... /md addlevel ... level erstellt ... /md setcorner - An internal error occurred while attempting to perform this command
2012-03-24 13:05:15 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'md' in plugin MobDungeon v1.1.2 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:910) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:870) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:853) 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:118) 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.ArrayIndexOutOfBoundsException: -1 at de.kumpelblase2.mobdungeon.Settings.SettingsLevel.setEdge(SettingsLevel.java:108) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onCornerSet(MDCommandExecutor.java:1313) at de.kumpelblase2.mobdungeon.MDCommandExecutor.onCommand(MDCommandExecutor.java:97) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
You also need the permission mobdungeon.join.<dungeonname> or mobdungeon.join.* (replace <dungeonname> with the name of your dungeon) I had the same issue.
@melzeth
You can't join, because it says 'you don't have permission' ? That is really weird...
@kumpelblase2
I know, but I can't join =(
@melzeth
joining should be allowed by default.
Hello, I have a problem joining to my Dungeon w/o beeing op, and my config file look like this:
mobdungeon.join
description: Gives acces to join a dungeon
default: true
What do?
@kumpelblase2
1. Naja woran kann es denn dann liegen, dass ingame Konfigurationen nicht in die config-Dateien übernommen werden? :/
2. Habe ich noch nicht geguckt, aber muss ja eigentlich, wenn es damit kompatibel ist.
3. Geht ja noch nicht, aber Problem in dem Fall ja erkannt. xD
Danke nochmal.
@Puffermcklein
1. Nachdem ich die Nachricht verfasst habe, habe ich gemerkt, dass das eigentlich nicht sein kann, da der mc-server und das plugin ja gleiche rechte haben und dadurch auch das speichern der Welten nicht funktionieren würde. Also meine Antwort ist eigentlich useless :P
2. hm... Mob dungeon sagt auch 'Permission system found: PermissionEX' oder so? Kann mir sonst eigentlich nicht vorstellen, dass es nicht geht...
3. Schön, dass es jetzt geht ;)
Hey ... erst einmal danke für die Antwort.
1. Schon ok. :P Ich nutzen Win7, aber das ist eher irrelevant, da der Server extern läuft, aber... allgemein ein interessanter Aspekt ... kann man das irgendwie nachvollziehen, ob oder ob das nicht vom Server/Anbieter untersützt ist/wird?
2. Vault und PEX - jap. Und auf dem neusten Stand.
3. Ich bin die punkte anschließend, nach dem es ingame nicht funktionierte, selber abgelaufen und habe die coords in die config eingetragen ... allerdings habe ich dort nichts gefunden um die bereiche mit /md changesize zu erweitern ... das Problem scheint also gelöst bzw die Ursache ist nun erkannt. ^^
P.S. Ich bin zwar gut in solchen Dingen, aber LEIDER kein Pro :D
mfg
@Puffermcklein
Gut kombiniert, Watson! :)
1. Da kann ich leider wenig tun, da das schreiben der Daten der Yaml parser übernimmt und ich da keinen Einfluss habe. (Sorry, wenn das so rüber kommt, als würde ich dich für dumm halten) Wenn du auf nem linux system bist, schonmal daran gedacht die rechte sich anzuschauen?
2. hm... Benutz du Vault? Kann sein, das PEX da was nicht ordentlich macht.... Ich habs mit PEX + Vault getestet und funktioniert wunderbar... .join ist btw. eigentlich standardmäßig auf true (so auch leave, list, spectate)....
3. Pass auf, dass die Bereiche, wo die Lobby, spectator, etc. warps sind auch innerhalb der gesetzten punkte sind. Du kann auch separate Bereiche einrichten.
Ich hoffen ich kann dir damit zumindest etwas helfen ;)
kumpelblase2
Hi ... ich gehe mal stark davon aus, dass es sich bei "kumpelblase" um eine deutschsprachige Person handelt ... ;)
Ich bin gerade zu faul alles in englisch zu schreiben... warum kompliziert, wenn es auch einfach geht.
Mich beschäftigen momentan direkt mehrere Probleme mit dem plugin, welches ansonsten eine klasse idee ist.
1. Wird kein einziger von den Befehlen, welche ich ingame eingebe, in die config dateien übernommen ... kein dungeon, keine corners ... nichts. Ich kann die daten nach erstellung eines dungeons ingame mit /md save und über die console speicher, da steht dann auch xxx saved ... allerdings tut sich in den config dateien nichts. Wenn ich anschließend reloade, sind die alten daten (test dungeon) wieder drin, aber nichts von dem was ich erstellt habe. Ich habe es dann alles selber über die config eingetragen ... dauerte ein wenig, funktioniere aber und hat auch alle daten angenommen, allerdings habe ich immer noch mit den folgenden Problemen zu kämpfen...
2. Die permisson notes funktinieren allen anschein nach nicht. Als Admin kann ich logischer weise alles nutzen, erstellen, joinen, leaven etc. Wenn ich mit dann allerdings den Rang eines normalen spielers gebe ... PermEx reloade und (oder auch nicht) relogge ... habe ich keine Permissions, obwohl sie eingetragen sind in meiner Permissions-Datei. (mobdungeon.join/leave etc.)
3. Wenn ich dann als Admin den dungeon joinen will, dann werde ich nicht vernünftig zu den vorgegebenen locations teleportiert (habe schon 2 blöcke höher als normal gewählt, als eigentlich geplant) und bekomme immer die Meldung "[MobDungeon]Teleporting is not allowed" dabei ist der teleport an sich ja vom mobdungeon selber ... wenn ich dann mal in der Lobby bin, werde ich anschließend nicht rum entrance teleportiert und es kommt die selbe meldung ...
Ich hoffe du kannst mir damit ein wenig weiterhelfen ... und falls ich nun ein bekanntes Problem angesprochen habe, welches schon einmal in irgend einem Post besprochen und behoben wurde, dann sry 4 double post. :)
lg
@gardsvik95
then you might accidentally removed a space which causes yaml to fail.