Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DungeonsXL Support #348

Open
ashcorpdev opened this issue Dec 5, 2020 · 4 comments
Open

DungeonsXL Support #348

ashcorpdev opened this issue Dec 5, 2020 · 4 comments
Labels
Possible Might be added - good candidate for a PR!

Comments

@ashcorpdev
Copy link

DungeonsXL is a pretty commonly used Dungeon instancing plugin, and has a documented API here: https://erethon.de/javadocs/dungeonsxl/de/erethon/dungeonsxl/api/DungeonsAPI.html

Would love to see some integration built in to Depenizen.

Plugin: https://www.spigotmc.org/resources/dungeonsxl.9488/

@mcmonkey4eva
Copy link
Member

... what integration?

@ashcorpdev
Copy link
Author

DungeonsAPI.getGameWorld().getDungeon() - https://erethon.de/javadocs/dungeonsxl/de/erethon/dungeonsxl/api/world/GameWorld.html#getDungeon--
Currently getting the name of the dungeon is not really doable with just Denizen, as the worlds are named DXL_Game_<instance> so this would help to get the name of the world. Also allows for dungeon-specific scripts, even if there are multiple instances. I previously wanted to have a script for a specific dungeon I have, but as the world name changes based on how many instances are already active, there's no way to have a consistent name to work with.

DungeonsAPI.getPlayerGroup() - https://erethon.de/javadocs/dungeonsxl/de/erethon/dungeonsxl/api/DungeonsAPI.html#getPlayerGroup-org.bukkit.entity.Player-
So I can grab the group the player is in and (if they are in a group) apply different buffs etc for grouped players and scale mobs according to the number of players.

DungeonsAPI.getPlayerGroup().getMembers() - https://erethon.de/javadocs/dungeonsxl/de/erethon/dungeonsxl/api/player/PlayerGroup.html#getMembers--
If the player is in a group and triggers a certain event, I want to get a list of all the players within that group so I can apply effects to all of them (group buffs).

DungeonsAPI.isInstance() - https://erethon.de/javadocs/dungeonsxl/de/erethon/dungeonsxl/api/DungeonsAPI.html#isInstance-org.bukkit.World-
For checking if the player is actually in an instance in the first place. Currently no easy way to do this other than checking the world name and seeing if it contains 'GAME' in it. I want to run some scripts only when there are players in an active instance.

@SXRWahrheit
Copy link
Contributor

The javadocs are nice, but what do you want the depenizen integration to look like?

@ashcorpdev
Copy link
Author

Ideally, something like:

<dxl[<world>].dungeon> - returns DungeonTag?

<dxl[<world>].dungeon.get_name> - returns el tag with the dungeon name

<dxl[<world>].is_instance> - returns boolean as to whether the specified world is an instance.

<dxl[<player>].group> - returns either the name/id of the group or null (as that is a valid return to say the player doesn't have a group).

<dxl[<player>].get_group_members> - return a list tag with the list of players in the group if there is one. If null, perhaps return the player as a single list element.

These are suggested formats for the tags, but that's the general idea I'm thinking.

@mcmonkey4eva mcmonkey4eva added the Possible Might be added - good candidate for a PR! label Dec 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Possible Might be added - good candidate for a PR!
Projects
None yet
Development

No branches or pull requests

3 participants