aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--src/main/java/com/MylesAndMore/tumble/EventListener.java12
-rw-r--r--src/main/java/com/MylesAndMore/tumble/Game.java24
-rw-r--r--src/main/java/com/MylesAndMore/tumble/api/Layers.java119
4 files changed, 124 insertions, 39 deletions
diff --git a/README.md b/README.md
index 267a4b0..37150ef 100644
--- a/README.md
+++ b/README.md
@@ -67,13 +67,13 @@ Scroll down for more options to configure your game.
- Acceptable options include: shovels, snowballs, mixed
- *Default:* ```mixed```
-- ```hideJoinLeaveMessages```
+- ```hideJoinLeaveMessages```
- Hides join/leave messages in public chat.
- *Default:* ```false```
-- ```permissionMessage```
+- ```permissionMessage```
- Customize the message that displays when the player does not have permission to execute a command from this plugin.
-## Issues & Feedback
+## Issues & Feedback
-Feel free to report any bugs, leave feedback, ask questions, or submit ideas for new features on our [GitHub issues page](https://github.com/MylesAndMore/tumble/issues/new)!
+Feel free to report any bugs, leave feedback, ask questions, or submit ideas for new features on our [GitHub issues page](https://github.com/MylesAndMore/tumble/issues/new)!
diff --git a/src/main/java/com/MylesAndMore/tumble/EventListener.java b/src/main/java/com/MylesAndMore/tumble/EventListener.java
index 5e46e87..63ca9a0 100644
--- a/src/main/java/com/MylesAndMore/tumble/EventListener.java
+++ b/src/main/java/com/MylesAndMore/tumble/EventListener.java
@@ -12,6 +12,7 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDropItemEvent;
import org.bukkit.event.entity.*;
+import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;
@@ -281,4 +282,15 @@ public class EventListener implements Listener {
}
}
}
+
+ @EventHandler
+ public void InventoryDragEvent(InventoryDragEvent event) {
+ if (TumbleManager.getGameWorld() == null) {
+ return;
+ }
+ if (event.getWhoClicked().getWorld() == Bukkit.getWorld((TumbleManager.getGameWorld()))) {
+ event.setCancelled(true);
+ }
+ }
+
}
diff --git a/src/main/java/com/MylesAndMore/tumble/Game.java b/src/main/java/com/MylesAndMore/tumble/Game.java
index 91c2770..aa24e97 100644
--- a/src/main/java/com/MylesAndMore/tumble/Game.java
+++ b/src/main/java/com/MylesAndMore/tumble/Game.java
@@ -219,15 +219,15 @@ public class Game {
// Choose a random type of generation; a circular layer, a square layer, or a multi-tiered layer of either variety
if (Random.nextInt(4) == 0) {
// Circular layer
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList());
}
else if (Random.nextInt(4) == 1) {
// Square layer
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getSafeMaterialList());
}
else if (Random.nextInt(4) == 2) {
// Multi-tiered circle
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRASS_BLOCK), layers.getMaterialList());
@@ -237,7 +237,7 @@ public class Game {
}
else {
// Multi-tiered square
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.SNOW_BLOCK), layers.getSafeMaterialList());
Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRASS_BLOCK), layers.getMaterialList());
@@ -271,7 +271,7 @@ public class Game {
// Similar generation to shovels, except there are three layers
if (Random.nextInt(4) == 0) {
// Circular layer
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList());
layer.setY(layer.getY() - 6);
Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
layer.setY(layer.getY() - 6);
@@ -279,7 +279,7 @@ public class Game {
}
else if (Random.nextInt(4) == 1) {
// Square layer
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList());
layer.setY(layer.getY() - 6);
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList());
layer.setY(layer.getY() - 6);
@@ -287,7 +287,7 @@ public class Game {
}
else if (Random.nextInt(4) == 2) {
// Multi-tiered circle
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList());
@@ -296,7 +296,7 @@ public class Game {
Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList());
layer.setY(layer.getY() - 6);
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList());
@@ -305,7 +305,7 @@ public class Game {
Generator.generateClumps(Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList());
layer.setY(layer.getY() - 6);
- Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateLayer(layer, 17, 1, Material.STONE), layers.getSafeMaterialList());
Generator.generateLayer(layer, 13, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateLayer(layer, 13, 1, Material.GRANITE), layers.getMaterialList());
@@ -315,7 +315,7 @@ public class Game {
}
else {
// Multi-tiered square
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList());
Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList());
@@ -324,7 +324,7 @@ public class Game {
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList());
layer.setY(layer.getY() - 6);
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList());
Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList());
@@ -333,7 +333,7 @@ public class Game {
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 7, layer.getY(), layer.getZ() - 7), new Location(layer.getWorld(), layer.getX() + 7, layer.getY(), layer.getZ() + 7), Material.LIME_GLAZED_TERRACOTTA), layers.getMaterialList());
layer.setY(layer.getY() - 6);
- Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getMaterialList());
+ Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 17, layer.getY(), layer.getZ() - 17), new Location(layer.getWorld(), layer.getX() + 17, layer.getY(), layer.getZ() + 17), Material.STONE), layers.getSafeMaterialList());
Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateClumps(Generator.generateCuboid(new Location(layer.getWorld(), layer.getX() - 13, layer.getY(), layer.getZ() - 13), new Location(layer.getWorld(), layer.getX() + 13, layer.getY(), layer.getZ() + 13), Material.GRANITE), layers.getMaterialList());
diff --git a/src/main/java/com/MylesAndMore/tumble/api/Layers.java b/src/main/java/com/MylesAndMore/tumble/api/Layers.java
index 8818631..d0d5890 100644
--- a/src/main/java/com/MylesAndMore/tumble/api/Layers.java
+++ b/src/main/java/com/MylesAndMore/tumble/api/Layers.java
@@ -12,25 +12,77 @@ import java.util.Random;
public class Layers {
public Layers(){
- // Make the other layers more common than the glass layer
- for (int i = 0; i < 10; i++) {
- matList.add(gen0);
- matList.add(gen1);
- matList.add(gen2);
- matList.add(gen3);
- matList.add(gen4);
- matList.add(gen5);
- matList.add(gen6);
- matList.add(gen7);
- matList.add(gen8);
- matList.add(gen9);
- matList.add(gen10);
- matList.add(gen12);
- matList.add(gen15);
- matList.add(gen16);
- }
- // Glass layer
+ matList.add(gen0);
+ matList.add(gen1);
+ matList.add(gen2);
+ matList.add(gen3);
+ matList.add(gen4);
+ matList.add(gen5);
+ matList.add(gen6);
+ matList.add(gen7);
+ matList.add(gen8);
+ matList.add(gen9);
+ matList.add(gen10);
+ matList.add(gen12);
+ matList.add(gen14);
+ matList.add(gen15);
+ matList.add(gen16);
+ matList.add(gen0);
+ matList.add(gen1);
+ matList.add(gen2);
+ matList.add(gen3);
+ matList.add(gen4);
+ matList.add(gen5);
+ matList.add(gen6);
+ matList.add(gen7);
+ matList.add(gen8);
+ matList.add(gen9);
+ matList.add(gen10);
+ matList.add(gen12);
+ matList.add(gen14);
+ matList.add(gen15);
+ matList.add(gen16);
+ matList.add(gen0);
+ matList.add(gen1);
+ matList.add(gen2);
+ matList.add(gen3);
+ matList.add(gen4);
+ matList.add(gen5);
+ matList.add(gen6);
+ matList.add(gen7);
+ matList.add(gen8);
+ matList.add(gen9);
+ matList.add(gen10);
+ matList.add(gen12);
+ matList.add(gen14);
+ matList.add(gen15);
+ matList.add(gen16);
+ // Troll glass layer
matList.add(gen11);
+
+ safeMatList.add(gen1);
+ safeMatList.add(gen2);
+ safeMatList.add(gen4);
+ safeMatList.add(gen5);
+ safeMatList.add(gen7);
+ safeMatList.add(gen9);
+ safeMatList.add(gen10);
+ safeMatList.add(gen1);
+ safeMatList.add(gen2);
+ safeMatList.add(gen4);
+ safeMatList.add(gen5);
+ safeMatList.add(gen7);
+ safeMatList.add(gen9);
+ safeMatList.add(gen10);
+ safeMatList.add(gen1);
+ safeMatList.add(gen2);
+ safeMatList.add(gen4);
+ safeMatList.add(gen5);
+ safeMatList.add(gen7);
+ safeMatList.add(gen9);
+ safeMatList.add(gen10);
+ // Troll glass layer
+ safeMatList.add(gen11);
}
// Define Random class
@@ -41,10 +93,11 @@ public class Layers {
public List<Material> getMaterialList() {
return matList.get(random.nextInt(matList.size()));
}
-
- // Define the list that will store the material lists
- private final List<List<Material>> matList = new ArrayList<>();
-
+
+ /**
+ * @return A random predefined List of Materials that are okay to spawn players on top of
+ */
+ public List<Material> getSafeMaterialList() { return safeMatList.get(random.nextInt(safeMatList.size())); }
// Begin lists
@@ -68,7 +121,7 @@ public class Layers {
add(Material.GRASS_BLOCK);
add(Material.GRASS_BLOCK);
add(Material.GRASS_BLOCK);
- // add(Material.COBWEB);
+ add(Material.COBWEB);
}};
private final List<Material> gen1 = new ArrayList<>() {{
@@ -262,6 +315,14 @@ public class Layers {
add(Material.GLASS);
add(Material.GLASS);
add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
+ add(Material.GLASS);
add(Material.WHITE_STAINED_GLASS);
}};
@@ -274,6 +335,14 @@ public class Layers {
add(Material.BRICK_STAIRS);
}};
+ private final List<Material> gen14 = new ArrayList<>() {{
+ add(Material.LECTERN);
+ add(Material.OBSIDIAN);
+ add(Material.SPONGE);
+ add(Material.BEEHIVE);
+ add(Material.DRIED_KELP_BLOCK);
+ }};
+
private final List<Material> gen15 = new ArrayList<>() {{
add(Material.SANDSTONE);
add(Material.SANDSTONE_SLAB);
@@ -297,4 +366,8 @@ public class Layers {
add(Material.JUNGLE_TRAPDOOR);
}};
+ private final List<List<Material>> matList = new ArrayList<>();
+
+ private final List<List<Material>> safeMatList = new ArrayList<>();
+
}