Inactive [FUN/EDIT/RPG] DungeonBuilder v0.9.7 - Player created dungeons [1.2.4-R1.0]

Discussion in 'Inactive/Unsupported Plugins' started by Zimp, Jun 23, 2011.

  1. Offline

    Zimp

    Grifhell and Kevinflu like this.
  2. Offline

    Arianon

    My problem is:

    I Will add a mob to the dungeon, but it dont spawn then the dungeon begins.
    ich have the newst version of dungeonbuilder and the newst version of worldguard.
    The Monsters are true in the server.propeties
    and my english is very bad xD
     
  3. Offline

    Zimp

    I managed to reproduce this in my area once, though I am still unable to reproduce it on demand. From what I am seeing it appears to be an issue with WorldGuard.

    Here are my observations:

    1. The line numbers in your stack trace do not match the source for the latest release of WorldGuard. This may mean you need to update your WorldGuard.
    2. Based on what I am seeing in the WorldGuard source the following is happening:
    • A create spawn event is generated by my plugin.
    • This event is passed through the registered EntityListeners, including WorldGuard's.
    • While WorldGuard is processing the spawn event it grabs a reference to a "RegionManager" for the world the entity is trying to spawn in.
    • If the process of loading the RegionManager fails it will return a null reference.
    • The EntityListener in WorldGuard then tries to use the null reference and errors out.
    • The thread of execution for spawning the monster is now terminated early and the monster is not spawned.

    I have also seen the same issue arise from player move events in WorldGuard.
     
  4. Offline

    Zimp

    Updated to version 0.6.1 and tested for build 1000 of the bukkit server.
     
  5. Offline

    Dec64

    Any chance of adding the ability to remove the bedrock box? or even change the material it is made out of?
     
  6. Offline

    Zimp

    That is something that I am considering now that I have the mechanism in place that prevents players from destroying blocks in dungeons. There is still the concern of players outside the dungeon trying to break their way in though.
     
  7. Offline

    Dec64

    Is the bedrock essential to the plugin? so if i removed it after generating would everything still work ok?

    Preventing block destroying would be an awesome addition aswell.
     
  8. Offline

    Zimp

    You could theoretically replace the bedrock through some other means and then save the dungeon and the dungeon would probably function properly.

    The problem lies in the fact that players outside the dungeon could destroy the shell of the dungeon if it wasnt bedrock and access the contents of the dungeon without being flagged as "running" the dungeon. I put in permission checks to prevent players from placing/breaking blocks inside dungeons but those checks will only happen in situations where the player enters the dungeon through the teleporters.

    Now if you have your dungeons separated into their own world that players cant access then you would be safe from the above concern.

    Odds are I will tackle this issue next release but I am not 100% sure on what kind of implementation I will go with yet.
     
  9. Offline

    embty

    Suggestion: Players can just break blocks in a straight line to get to their goals in dungeons. So is it possible to protected a certain world from any kind of break/placement and just allow the placement and breaking of certain blocks like sand/torches/levers and such.
     
  10. Offline

    fatmarley

    This has just started to happen since I put in your latest build.

    Show Spoiler
    2011-07-18 05:43:49 [SEVERE] Could not pass event PLAYER_RESPAWN to DungeonBuilder
    java.lang.NullPointerException
    at net.virtuallyabstract.minecraft.DungeonBuilder$MyPlayerListener.onPlayerRespawn(DungeonBuilder.java:975)
    at org.bukkit.plugin.java.JavaPluginLoader$3.execute(JavaPluginLoader.java:258)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:332)
    at net.minecraft.server.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:239)
    at net.minecraft.server.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:204)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:870)
    at net.minecraft.server.Packet9Respawn.a(SourceFile:18)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
     
  11. Offline

    Zimp

    @fatmarley Version updated to 0.6.2 to fix the issue you reported with player respawns.
     
  12. Offline

    kinkinkijkin

    How do you install the plugin? I just get a ZIP with some random files.
     
  13. Offline

    Zimp

    The download link should point you to a ".jar" file, place that file in the "plugins" folder of your bukkit server and restart your server.
     
  14. Offline

    kinkinkijkin

    I click the link, it sends me to a URL with the .jar extension, but it feeds me a .zip.
     
  15. Offline

    Zimp

    It's a file that contains a bunch of .class files correct?
     
  16. Offline

    kinkinkijkin

    No, it contained a .yml, a meta inf folder, and a classes folder. But I fixed it. Just used a different browser.

    Now I have this problem:

    I type in /createworld 2 and then I put in the type, but every time, the server window says :
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:320)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:713)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:677)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:670)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.IllegalArgumentException: No enum const class org.bukkit.World$Environment.skylands
    at java.lang.Enum.valueOf(Unknown Source)
    at org.bukkit.World$Environment.valueOf(World.java:673)
    at net.virtuallyabstract.minecraft.DungeonBuilder.onCommand(DungeonBuilder.java:255)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    ... 12 more

    Or
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:320)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:713)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:677)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:670)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.IllegalArgumentException: No enum const class org.bukkit.World$Environment.normal
    at java.lang.Enum.valueOf(Unknown Source)
    at org.bukkit.World$Environment.valueOf(World.java:673)
    at net.virtuallyabstract.minecraft.DungeonBuilder.onCommand(DungeonBuilder.java:255)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    ... 12 more

    or
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:320)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:713)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:677)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:670)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.IllegalArgumentException: No enum const class org.bukkit.World$Environment.nether
    at java.lang.Enum.valueOf(Unknown Source)
    at org.bukkit.World$Environment.valueOf(World.java:673)
    at net.virtuallyabstract.minecraft.DungeonBuilder.onCommand(DungeonBuilder.java:255)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    ... 12 more

    And the client window says "An internal server error occurred while attempting to perform this command"
     
  17. Offline

    Zimp

    The world types need to be all capital letters, for example:

    /createWorld world2 NORMAL
    /createWorld world3 NETHER
    /createWorld world4 SKYLANDS
     
  18. Offline

    Zerafas

    Been testing this, and appears we have to find existing caves to make the dungeons more realistic? is there anyway to spawn pre-built dungeons? and upon undoing an existing dungeon, it spams you need to stand on the spawn location, which is difficult to find, as the diamond block apparently is not the spawn location.
     
  19. Offline

    morizuki

    does the treasure will also reload? and is there any config what's the chest will be?
     
  20. Offline

    Zimp

    @Zerafas

    There are two commands for creating dungeons depending on how you want to make it. The first is simply "createDungeon" which will create the bedrock shell around the existing terrain. This is for situations where you have an existing piece of the world where you want to create a dungeon out of it.

    The second is "createEmptyDungeon" which is intended to give users a clean slate for making a dungeon, it will create a bedrock shell with the center hollowed out and torches lining the floor/wall.

    The /teleportToDungeon command can be used to find the dungeon starting position that is required to delete the dungeon. This requirement is a safety mechanism to make deleting a dungeon non-trivial since it is a hard action to undo.

    @morizuki

    Currently the saving mechanism for special blocks such as checks/signs/etc is not in place. While it will save the block type it will not save things like the text or contents properly. I plan to tackle these issues and other save/load issues next.
     
    morizuki likes this.
  21. Offline

    tommygoesha

    so does this mean we cant use worldguardwith it cause no monsters are spawning and i have world guard :\..
    Edit: Correction no mobs are spawning in the dungeons. even without the world guard. no errors.
     
  22. Offline

    Zimp

    @tommygoesha Do monsters spawn if you manually type the /spawnMonsters command? Is the difficulty level of the world the dungeons is in set to peaceful?
     
  23. Offline

    iPhysX

    I really like the look of this ill have more of a look at it later :p
     
  24. Offline

    tommygoesha

    ya thats the only way i tested it was /spawnmonsters (nameofdungeon).. and ya its on normal. =\.. maybe im misunderstanding the proccess of creating a dungeon.. idk..
     
  25. Offline

    Zimp

    @tommygoesha What information does /listMonsterSpawns (nameofdungeon) return? You should see a list of aliases for each monster spawnpoint that was set.
     
  26. Offline

    tommygoesha

    it would just say Skeleton or spider, w\e i put earlier it would show but when i did spawnmonster it said monsters were spawned but i didnt see any :\..
     
  27. Offline

    Faernitz

    Zimp, I installed the last recommended build and it works just fine ! The commands are quite easy to remember and to use. I just love it ! :D

    And since I love it so much, I've got a few requests for you ! I do understand that you want to stabilize the core before adding new stuff, but I have ideas I'd want to share.

    You said you were getting the grasp of the functions that protect blocks from being destroyed by players. I was wondering if the "permission" to destroy blocks could be customized for each different kind of blocks inside the dungeon. This way you'd be able to say that the stone of caves cannot be mined through, but the ores could be looted and kept at the end of the dungeon.
    It would be even more fantastic if you could also choose that, as an example, sand cannot be destroyed until you use a shovel to dig it. This way, an underground dungeon could reveal new passages as you find new tools to help you dig your way through.

    Another idea i had would be to manage your dungeon properties via "rules".
    With a command like
    Code:
    /createRule <ruleName>
    You then have a config file in the plugin folder : ruleName.cfg, in which you can define TONS of different stuff
    like block protections, number of allowed death inside the dungeon before being kicked out, chest refill... You can either do it directly in the file, or in-game via commands like
    Code:
    /modifyRule <ruleName> <setting> <true|false>
    Once filled the rule as you want, you come back in-game and
    Code:
    /addRuleToDungeon <ruleName> <dungeonName>
    . Your super custom rules can then be associated to different dungeons you created.

    That's all I have right now, but again, your plugin's awesome :)
     
  28. Offline

    tommygoesha

    srry to be such a bother but do you think this could some how be a little more accurate toward premade dungeons :]? like using a wand tool like in worldedit to select the 2 points? or like epiczones were u can put zoning at each corner of the dungeon and itll zone 2blocks outward of that point? idk im just spitballing ideas just i feel like its too complicated to get the right angle or area when i have to be in the center of it :]
     
  29. Offline

    Zimp

    Version 0.6.5 released

    Changes include:

    1. Improved loading and saving of dungeons. This includes support for saving chest contents and sign text.
    2. Added commands for creating a dungeon by setting markers for the dimensions
    3. Added a command to undo dungeon creation
    4. Added a command for killing previously spawned monsters
    5. Added commands for setting default permissions for a dungeon.
     
    Dec64 likes this.
  30. Offline

    davidbullship

    I'm having a horrible issue trying to get monster spawn points to work. We are not using worldguard.
    I can create the points in which the particular mob should spawn, but I can't get them to spawn at all using the /spawnMonsters command.
     
  31. Offline

    Zimp

    So far I've encountered the following complications in dealing with monster spawns:

    1. If the world is set to peaceful then no monster spawning is allowed. Not much I can do about this.
    2. If the dungeon is in a different world than the teleporter to it then there were situations where the server would not spawn monsters in a chunk that hasn't been loaded yet. There are code changes in the recent version to try and address this issue.

    If anyone else has identified other scenarios where the monsters don't spawn then please tell me, those two are the only ones I have identified so far.

    That said, the commands for setting spawnpoints is also a bit difficult to use and poorly documented. So here are a few concrete examples to help out:

    To add a zombie spawn to your current location you would type:

    /addMonsterSpawn zombie1 zombie testdungeon

    Where "zombie1" is the alias for this spawn point, "zombie" is the type of creature to spawn and "testdungeon" is the alias for the dungeon the spawn point is in. The alias needs to be unique for each spawnpoint, this is what you will use to delete it in the future, it is also what is displayed when you list monsters spawns.

    The second parameter is very picky and needs to match one of the following values:

    skeleton
    spider
    zombie
    ghast
    pig-zombie
    creeper

    If the monster spawnpoint is set correctly then the "/spawnMonsters" command should trigger it to spawn. It will also spawn when a player enters the dungeon through the teleporter.
     

Share This Page