Inactive [FUN/RPG] Dragons Lair - A fully customizable dungeon crawler [1.3.2-R2.0]

Discussion in 'Inactive/Unsupported Plugins' started by kumpelblase2, Jul 25, 2012.

  1. -/ Dragons Lair \-
    Github ------ BukkitDev

    Hey guys!

    So one day RaVneN_dk talked with me about what Minecraft would need. But Minecraft is endless. The world is endless. You can do whatever you like with a bit of imagination, so what is missing? It's missing a goal. A goal where the way is tough. A goal which takes some time to accomplish. A goal which can be redefined making it a new experience every time. This is the goal I'm trying to accomplish. I call it Dragons Lair. A plugin taking RPG in Minecraft to a new level with a dungeon crawler/Advanced dungeons & dragons based on the game of "Eye of the Beholder 2" but with the creativity of every player. Different on each server, but one thing in common: mastering all challenges no matter how hard they are in order to get honor and wealth. So in general, think of Dragons Lair as a borderless RPG environment, which can be used anywhere on your server.

    So far so good for the introduction, let's get straight to the functionality:
    • You decide the storyline of the dungeon!
    • Interactive NPCs
    • Challenges!
    • Events. Events everywhere.
    • Realistic behavior of NPCs and their conversations
    You can do basically everything you could do in a dungeon crawler with this plugin! There's something you can't do? Just ask me and I'll try to make it doable!

    Functionality
    But let's get a bit more into detail about this plugin. With this plugin you are able to react on things that happen on your server. For instance, if a player is walking through the entrance of a castle, you can close the door behind him so he can't walk back. Or a NPC can walk towards him and talk to him. Also you can define what the NPC and how he should react on certain answers. To be a bit more specific: You can create so called 'triggers' which will execute when the set requirement was met. For example a player walked over the specific block/area. The trigger might then call an 'event' which performs an action on your server, e.g. blocks change. You're not limited to a maximum amount of triggers/events, the only limitation is how much your server can handle.
    I also said that you can create 'dungeons' and fully customize them, which is 100% true. A dungeon in Dragons Lair is not bind to a specific area like an arena in MobArena for instance. The dungeon is internally the whole world(s) on your server. But don't worry, Players who don't participate in a dungeon nor players in a dungeon will see any difference. You might want to limit the dungeon though. Think of a dungeon like the mechanics around a RPG map/game. And actually there's no big difference between the functionality of the plugin outside of a dungeon and inside a dungeon, but still there is some.
    One is a logging feature, because the dungeon should be playable more than once and since the dungeon might get huge, it's necessary that you can save your progress and play again later. You can do that. When you destroy a block inside a dungeon and save your current state, players who start the dungeon won't see the block broken, only if you start your saved state, the block is broken again. You can save as often as you want, but you can't go back a save. Also, you can't reload a save.
    Another thing that is only in a dungeon is that you get a map which shows you the current process of the dungeon. In which chapter you're currently in and what is the current objective. Those can be customized by you.
    There's one more things which makes this plugin even better. NPCs. I know there are other NPC plugins out there, but do they provide a good way to speak with the NPCs? And do the NPCs react properly on the answers of the player? I haven't see one that's capable of that, have you? Now there's dragons lair, which finally gives the functionality and even lets you decide what they should say. Also, with the use of triggers, you can even do something when the player says something specific.

    Commands
    There are only two commands which you can use:
    /dl config this opens up the configuration
    /dl reload reload the plugin with all the data from the database

    Permissions
    There's also only one permission which is required to use the two above commands:
    dragonslair.config

    Videos
    *phew* lots of text, but also a lot of features. You probably want to see it in action now, don't you?
    Well then, here you go:
    Show Spoiler

    That's by far not everything that you can do with this plugin.

    Download
    Enough waiting, if you want to download it, please go over to the bukkitdev page where you'll always find the latest updates! You'll also find helpful wiki pages on how to get started and more info about certain things. But don't worry, I'll also keep you informed in this thread.

    Questions, suggestions, ... ?
    Feel free to post any kind of feedback, might it be a feature request or your opinion on this plugin, everything is welcome. Also don't be shy when you want to ask a question. I won't kill you, it's totally fine.

    Help, I got an error!
    Oh well, errors might happen every now and then. If so, please create a ticket on bukkitdev and give as much information as you can which helps me fixing the issue.

    Changelog
    Code:
    Version 2.3:
    - Updated for CraftBukkit 1.3.2-R1.0
    - Updated with Citizens 2
    - Players can no longer pickup items dropped inside a dungeon while they're outside or in a different one
    - You can now restrict interactions between players in- and outside dungeons
    - Fixed not removing triggers properly
    - Added 'dungeon_id' option to most triggers
    - Small fixes
     
    Version 2.2:
    - Updated for CraftBukkit 1.3.1-R2.0
    - Added scheduled events
    - Added WoW-like dead and respawn/resurrection
    - Added ability to deny block breaking in a dungeon
    - Fixed issues with delay in events and dungeon creation and editing
    - Fixed NPCs not being able to execute movement triggers
    - Fixed being able to register twice for one dungeon or more
    - Fixed maps not always getting added directly
    - Fixed issues with joining when max player amount is set
     
    Version 2.1:
    - You can now have multiple NPCs with the same name. When you have two with the same name, make sure you use the ID instead of the name in events and triggers!
    - Fixed database updating when using SQLite and table issues
    - Fixed issues with item crafting
     
    Version 2.0:
    - official release
    - Added 'ITEM_CRAFT' trigger
    - Fixed issues with location based triggers
    - Small enhancements and internal changes
     
    Version 1.4:
    - Added SQLite support
     
    Version 1.3:
    - Fixed not updating inventory on dungeon sometimes
    - Fixed not being able to edit dungeon start/register/end in the configuration
    - Fixed/Added logging for block data change (e.g. open/closing a door)
    - Fixed logging for blocks bigger than one block
    - Changed default cooldown of block interactions to 30s from 60s
     
    Version 1.2.1:
    - Fixed updating issues on windows
     
    Version 1.2:
    - Added 'EXECUTE_COMMAND' event
    - Added 'CHANGE_HEALTH' and 'CHANGE_HUNGER' event
    - Added 'CHANGE_LEVEL' event
    - Added 'LEVEL_ACHIEVE' trigger
    - Fixed some issues when using npc name and not id
    - Removed 'KILL_PLAYER' event
     
    Version 1.1:
    - Added Player kill event
    - Added dialogs to ingame configuration
     
    Version 1.0:
    - Initial beta release
    Final words
    So that's it! I hope you have a lot of fun using Dragons Lair.
    See ya,
    ~kumpelblase2
     
    Ripperpt, Arbenn, ZachBora and 2 others like this.
  2. Version 2.1 is out!
    See the change log for more details.
     
  3. Offline

    Emiya Shirou

    This looks amazing O.O
     
  4. Offline

    SilentTheif-PLM

    Wow, very interesting.
     
  5. Offline

    tsuna25

  6. Thanks, I hope you have a lot of fun using it :)



    Ok guys, I'll be on vacation for 3 weeks from tomorrow so I'm not able to answer you nor do any code related changes. I hope that I can at least take a look here one a week to see what's going on.
    However, have a great time and I see you when I'm back at home :)

    kumpelblase2
     
  7. Offline

    md_5

    Just double check your title, it says Dragons Lar.

    Approved

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

    kahlilnc

    This is way to awesome! :D
     
  9. Offline

    eckojt

    This is a great plugin...But one question if i created a new world off of my main world can I make it so that this plugin will work only in that world and not the main world so that players can play it on a selective basis? Also if that is possible how is everything generated is it automatic or do we have to create the map for it to be played on?
     
  10. Offline

    Shadow38055

    Possibility for multiple dungeons?
     
  11. Offline

    mahari3

    00:50:54 [SEVERE] Error occurred while enabling Dragons Lair v2.1 (Is it up to d
    ate?)
    java.lang.NoSuchMethodError: net.minecraft.server.NetworkManager.<init>(Ljava/ne
    t/Socket;Ljava/lang/String;Lnet/minecraft/server/NetHandler;)V
    at com.topcat.npclib.nms.NPCNetworkManager.<init>(NPCNetworkManager.java
    :15)
    at com.topcat.npclib.NPCManager.<init>(NPCManager.java:42)
    at de.kumpelblase2.dragonslair.DungeonManager.<init>(DungeonManager.java
    :39)
    at de.kumpelblase2.dragonslair.DragonsLairMain.onEnable(DragonsLairMain.
    java:51)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:357)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:381)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:263)
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:245
    )
    at net.minecraft.server.MinecraftServer.i(MinecraftServer.java:296)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:275)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:225)
    at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:140)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:380)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
     
  12. Offline

    Motorman

    I get the same error as mahari3
    Ive made the dragonslair database for MySQL, just gives me that error message now. Possibly a 1.3.1 issue?
     
  13. Offline

    petar02

    same thing over here
     
  14. Offline

    DCS0NEVEC

    Sorry, but to create one dungeon and to set up a MySQL Server and and and.... That takes a lot of time. And to make a dungeon where are lot of creatures an which is long... uhhh... Sorry but your MobDungeon plugin where easier to use.
     
  15. Offline

    Morgannah

    Oh, very nice!
     
  16. Offline

    PureTurmoil

    when i install this can i make the video install and config and in game useage
     
  17. You create the map because I don't want to dictate on how the dungeon should look like. And yes, you can limit it to a specific world:
    • Only create triggers/events/dungeons for that specific world
    • Not let them move/teleport into a different world
    • Only put that world on the 'enabled' worlds list

    Was there a restriction for only one dungeon? I don't think there is/was one at all.

    mahari3 Motorman petar02
    Yes it's a compatibility issue with 1.3.x that's already fixed and will be available in the next version.

    I know it takes a lot of time. But it's not really possible to create a super easy config for such a giant amount of features. Also, it would be a lot slower if I'd do the config in a different way. But I wouldn't say MobDungeon was easier to configure (except mysql maybe but since I know how to set it up it's no problem for me and also a lot of server providers also give you a database it shouldn't be any problem.) because you'd need to make most of the things inside the config file but in dragons lair you have a really good configuration that is easy to use and still lets you edit everything. Also MobDungeon has/had a lot less features (I'm pretty sure you could do all the things in Dragons Lair as well with enough effort) which means that it was less complex.

    Thanks.

    Nobody is or will prevent you from doing so right?
     
  18. Offline

    DCS0NEVEC

    Yeah... you are right xD I will try it again :p
     
  19. Offline

    Motorman


    Sweet! Do you have an estimate on when that version will be ready?
     
  20. It depends on how much time I need for testing. Code part is already done, just need to test the changes. If someone wants to help, I'd put up a dev version.
     
  21. Offline

    mahari3

    I had figured it was, but I posted just in case.
     
  22. Since I don't really have a good idea on how I'm gonna implement an upcoming feature, I'm gonna make it a public question. I'm planning (and already mostly finished) a respawn system like in WoW, so when you die, you get ported to the starting point of the dungeon and act like a ghost, you can't be seen by any other player, can't pickup items nor break or use stuff. When you get in range of your death point, you can either respawn (which is free) or get resurrected which costs money but will give you your old items back. The question now is, what should happen with the items on death? Should they get removed instantly? Tell me what you think!
     
  23. New version is waiting for it's approval, yaay! (for changelog, see first post)
    There's also a new config option which lets you configure the amount of money a player needs to pay to get resurrected after he died.
     
  24. Offline

    Freejack

    Ok I have gotten this to work once before 1.3.1 and now since this update all I get is :

    9:32:03 PM
    Dragons:
    Lair] Unable to load chapters from database: Table 'dragonslair.chapters' doesn't exist
    9:32:03 PM
    Dragons:
    Lair] Unable to load objectives from database: Table 'dragonslair.objectives' doesn't exist
    9:32:03 PM
    Dragons:
    Lair] Unable to load dialogs from database: Table 'dragonslair.dialogs' doesn't exist
    9:32:03 PM
    Dragons:
    Lair] Unable to load npcs from database:
    9:32:03 PM
    CONSOLE:
    [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dragonslair.npcs' doesn't exist
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at java.lang.reflect.Constructor.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.Util.getInstance(Util.java:382)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at de.kumpelblase2.dragonslair.settings.Settings.loadNPCs(Settings.java:138)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at de.kumpelblase2.dragonslair.settings.Settings.loadAll(Settings.java:26)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at de.kumpelblase2.dragonslair.DragonsLairMain$1.run(DragonsLairMain.java:75)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:510)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    9:32:03 PM
    Dragons:
    Lair] Unable to load triggers from database: Table 'dragonslair.triggers' doesn't exist
    9:32:03 PM
    Dragons:
    Lair] Unable to load events from database: Table 'dragonslair.events' doesn't exist
    9:32:03 PM
    Dragons:
    Lair] Unable to load dungeons from database: Table 'dragonslair.dungeons' doesn't exist
    9:32:03 PM
    CONSOLE:
    [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dragonslair.log' doesn't exist
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at java.lang.reflect.Constructor.newInstance(Unknown Source)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.Util.getInstance(Util.java:382)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at de.kumpelblase2.dragonslair.logging.LoggingManager.loadEntries(LoggingManager.java:27)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at de.kumpelblase2.dragonslair.DragonsLairMain$1.run(DragonsLairMain.java:76)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:510)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    9:32:03 PM
    CONSOLE:
    [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    9:32:03 PM
    CONSOLE:
    [WARNING] [Dragons Lair] Unable to load scheduled events:
    9:32:03 PM
    CONSOLE:
    [WARNING] [Dragons Lair] Table 'dragonslair.scheduled_events' doesn't exist
    I have gone in and wiped it clean created a new db in mysql and I still get this. All my other mysql connections work great. I have 2.2 and bukkit 1.3.1. I would really love to get this back to working so I can get it setup.
     
  25. When you reset the database or create a new one you need to set the 'rev' value back to 0 so dragonslair knows that it needs to create all the required tables again.
     
  26. Offline

    Freejack

    Thank you sir...........
     
  27. Offline

    Apocalypsdragon

    If I type in the /dl config command it doesent show anything. Neither does it say there is no such command, it seems to accept it, but it just doesent show anything!!!
    Any Reason for that ?
     
  28. To be able to access the config command as well as the reload command you need the 'dragonslair.config' permission.
     
  29. Offline

    Apocalypsdragon

    Even if im OP ?
     
  30. Offline

    Kainzo

    Have you heard of Pastie.org?
     

Share This Page