summaryrefslogtreecommitdiff
path: root/src/main/java/com/encrox/instanceddungeons/Dungeon.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/encrox/instanceddungeons/Dungeon.java')
-rw-r--r--src/main/java/com/encrox/instanceddungeons/Dungeon.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/com/encrox/instanceddungeons/Dungeon.java b/src/main/java/com/encrox/instanceddungeons/Dungeon.java
new file mode 100644
index 0000000..69cd847
--- /dev/null
+++ b/src/main/java/com/encrox/instanceddungeons/Dungeon.java
@@ -0,0 +1,48 @@
+package com.encrox.instanceddungeons;
+
+import java.util.ArrayList;
+
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+import org.json.JSONObject;
+
+import com.sk89q.worldedit.BlockVector;
+
+public class Dungeon {
+
+ private Section section;
+ private String id;
+ private int depth;
+ private ArrayList<Player> players;
+
+ public Dungeon(Player player, String id, int depth) {
+ this.id = id;
+ this.depth = depth;
+ section = new Section(InstancedDungeons.startDescriptors.getJSONObject((int)Math.round(Math.random()*(InstancedDungeons.startDescriptors.length()-1))), 0, depth);
+ try {
+ section.load();
+ section.instantiate();
+ BlockVector[] destinations = section.getAbsoluteExits();
+ BlockVector destination = destinations[(int)Math.round(Math.random()*(destinations.length-1))];
+ addPlayer(player);
+ player.teleport(new Location(InstancedDungeons.dungeonWorld.getWorld(), destination.getBlockX(), destination.getBlockY(), destination.getBlockZ()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void addPlayer(Player player) {
+ section.addPlayer(player);
+ }
+
+ public void removePlayer(Player player) {
+ section.removePlayer(player);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+}