Skip to content

Commit

Permalink
Move to Java 16
Browse files Browse the repository at this point in the history
  • Loading branch information
tastybento committed Aug 1, 2021
1 parent de4a4c1 commit 38de645
Show file tree
Hide file tree
Showing 29 changed files with 115 additions and 261 deletions.
18 changes: 12 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<powermock.version>2.0.2</powermock.version>
<java.version>16</java.version>
<powermock.version>2.0.9</powermock.version>
<!-- More visible way how to change dependency versions -->
<spigot.version>1.16.3-R0.1-SNAPSHOT</spigot.version>
<bentobox.version>1.16.0</bentobox.version>
Expand Down Expand Up @@ -126,7 +126,7 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.0.0</version>
<version>3.11.2</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -185,14 +185,18 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<release>${java.version}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<version>3.0.0-M5</version>
<configuration>
<argLine>
--illegal-access=permit
</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Expand All @@ -207,10 +211,12 @@
<show>public</show>
<failOnError>false</failOnError>
<additionalJOption>-Xdoclint:none</additionalJOption>
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>install</phase>
<goals>
<goal>jar</goal>
</goals>
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/world/bentobox/greenhouses/data/Greenhouse.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package world.bentobox.greenhouses.data;

import java.util.Map;
import java.util.Objects;
import java.util.UUID;

import org.bukkit.Location;
Expand Down Expand Up @@ -163,17 +164,17 @@ public void setRoofHopperLocation(@Nullable Vector v) {
/**
* @return the boundingBox
*/
@Nullable
@NonNull
public BoundingBox getBoundingBox() {
return boundingBox;
return Objects.requireNonNullElseGet(boundingBox, BoundingBox::new);
}

/**
* @return a bounding box of the greenhouse that does not include the walls or roof
*/
@Nullable
@NonNull
public BoundingBox getInternalBoundingBox() {
return boundingBox == null ? null : boundingBox.clone().expand(-1D);
return getBoundingBox().clone().expand(-1D);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public class BiomeRecipe implements Comparable<BiomeRecipe> {
// Conversions
// Original Material, Original Type, New Material, New Type, Probability
//private final Map<Material, GreenhouseBlockConversions> conversionBlocks = new EnumMap<>(Material.class);
private Multimap<Material, GreenhouseBlockConversions> conversionBlocks = ArrayListMultimap.create();
private final Multimap<Material, GreenhouseBlockConversions> conversionBlocks = ArrayListMultimap.create();

private int mobLimit;
private int waterCoverage;
Expand Down Expand Up @@ -121,7 +121,7 @@ public boolean addMobs(EntityType mobType, double mobProbability, Material mobSp
mobTree.put(lastProb + probability, new GreenhouseMob(mobType, mobSpawnOn));
return true;
} else {
addon.logError("Mob chances add up to > 100% in " + type.toString() + " biome recipe! Skipping " + mobType.toString());
addon.logError("Mob chances add up to > 100% in " + type.toString() + " biome recipe! Skipping " + mobType);
return false;
}
}
Expand Down Expand Up @@ -245,17 +245,17 @@ public void convertBlock(Block b) {
for(GreenhouseBlockConversions conversion_option : conversionBlocks.get(bType)) {

// Roll the dice before bothering with checking the surrounding block as I think it's more common for greenhouses to be filled with convertable blocks and thus this dice roll wont be "wasted"
if(ThreadLocalRandom.current().nextDouble() < conversion_option.getProbability()) {
if(ThreadLocalRandom.current().nextDouble() < conversion_option.probability()) {
// Check if any of the adjacent blocks matches the required LocalMaterial, if there are any required LocalMaterials
if(conversion_option.getLocalMaterial() != null) {
if(conversion_option.localMaterial() != null) {
for(BlockFace adjacent_block : ADJ_BLOCKS) {
if(b.getRelative(adjacent_block).getType() == conversion_option.getLocalMaterial()) {
b.setType(conversion_option.getNewMaterial());
if(b.getRelative(adjacent_block).getType() == conversion_option.localMaterial()) {
b.setType(conversion_option.newMaterial());
break;
}
}
} else {
b.setType(conversion_option.getNewMaterial());
b.setType(conversion_option.newMaterial());
}
}
}
Expand Down Expand Up @@ -345,10 +345,10 @@ public boolean spawnMob(Block b) {
Location spawnLoc = b.getLocation().clone().add(new Vector(0.5, 0, 0.5));
return getRandomMob()
// Check if the spawn on block matches, if it exists
.filter(m -> m.getMobSpawnOn().map(b.getRelative(BlockFace.DOWN).getType()::equals).orElse(true))
.filter(m -> Optional.of(m.mobSpawnOn()).map(b.getRelative(BlockFace.DOWN).getType()::equals).orElse(true))
// If spawn occurs, check if it can fit inside greenhouse
.map(m -> {
Entity entity = b.getWorld().spawnEntity(spawnLoc, m.getMobType());
Entity entity = b.getWorld().spawnEntity(spawnLoc, m.mobType());
if (entity != null) {
preventZombie(entity);
return addon
Expand Down Expand Up @@ -383,13 +383,11 @@ private void preventZombie(Entity entity) {
return;
}

if (entity instanceof Piglin) {
Piglin p = (Piglin)entity;
if (entity instanceof Piglin p) {
p.setImmuneToZombification(true);
return;
}
if (entity instanceof Hoglin) {
Hoglin h = (Hoglin)entity;
if (entity instanceof Hoglin h) {
h.setImmuneToZombification(true);
}
}
Expand Down Expand Up @@ -434,11 +432,11 @@ public boolean growPlant(Block bl) {
return false;
}
return getRandomPlant().map(p -> {
if (bl.getY() != 0 && p.getPlantGrownOn().map(m -> m.equals(bl.getRelative(BlockFace.DOWN).getType())).orElse(false)) {
BlockData dataBottom = p.getPlantMaterial().createBlockData();
if (bl.getY() != 0 && Optional.of(p.plantGrownOn()).map(m -> m.equals(bl.getRelative(BlockFace.DOWN).getType())).orElse(false)) {
BlockData dataBottom = p.plantMaterial().createBlockData();
if (dataBottom instanceof Bisected) {
((Bisected) dataBottom).setHalf(Bisected.Half.BOTTOM);
BlockData dataTop = p.getPlantMaterial().createBlockData();
BlockData dataTop = p.plantMaterial().createBlockData();
((Bisected) dataTop).setHalf(Bisected.Half.TOP);
if (bl.getRelative(BlockFace.UP).getType().equals(Material.AIR)) {
bl.setBlockData(dataBottom, false);
Expand Down Expand Up @@ -557,7 +555,7 @@ public boolean noMobs() {
* @return the mob types that may spawn due to this recipe
*/
public Set<EntityType> getMobTypes() {
return mobTree.values().stream().map(GreenhouseMob::getMobType).collect(Collectors.toSet());
return mobTree.values().stream().map(GreenhouseMob::mobType).collect(Collectors.toSet());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,4 @@

import org.bukkit.Material;

class GreenhouseBlockConversions {
private final Material oldMaterial;
private final Material newMaterial;
private final double probability;
private final Material localMaterial;

public GreenhouseBlockConversions(Material oldMaterial, Material newMaterial, double probability, Material localMaterial) {
this.oldMaterial = oldMaterial;
this.newMaterial = newMaterial;
this.probability = probability;
this.localMaterial = localMaterial;
}
/**
* @return the oldMaterial
*/
public Material getOldMaterial() {
return oldMaterial;
}
/**
* @return the newMaterial
*/
public Material getNewMaterial() {
return newMaterial;
}
/**
* @return the probability
*/
public double getProbability() {
return probability;
}
/**
* @return the localMaterial
*/
public Material getLocalMaterial() {
return localMaterial;
}

}
record GreenhouseBlockConversions (Material oldMaterial, Material newMaterial, double probability, Material localMaterial) { }
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
package world.bentobox.greenhouses.greenhouse;

import java.util.Optional;

import org.bukkit.Material;
import org.bukkit.entity.EntityType;

class GreenhouseMob {
private final EntityType mobType;
private final Material mobSpawnOn;
/**
* @param mobType - entity type of mob
* @param mobSpawnOn - material on which it much spawn, or null if any
*/
public GreenhouseMob(EntityType mobType, Material mobSpawnOn) {
this.mobType = mobType;
this.mobSpawnOn = mobSpawnOn;
}
/**
* @return the mobType
*/
public EntityType getMobType() {
return mobType;
}
/**
* @return the mobSpawnOn
*/
public Optional<Material> getMobSpawnOn() {
return Optional.of(mobSpawnOn);
}
}
record GreenhouseMob(EntityType mobType, Material mobSpawnOn) { }
Original file line number Diff line number Diff line change
@@ -1,32 +1,5 @@
package world.bentobox.greenhouses.greenhouse;

import java.util.Optional;

import org.bukkit.Material;

class GreenhousePlant {
private final Material plantMaterial;
private final Material plantGrownOn;
/**
* Describes a recipe plant
* @param plantMaterial - material
* @param plantGrownOn - material on which this grows
*/
public GreenhousePlant(Material plantMaterial,Material plantGrownOn) {
this.plantMaterial = plantMaterial;
this.plantGrownOn = plantGrownOn;
}
/**
* @return the plantMaterial
*/
public Material getPlantMaterial() {
return plantMaterial;
}
/**
* @return the plantGrownOn
*/
public Optional<Material> getPlantGrownOn() {
return Optional.ofNullable(plantGrownOn);
}

}
record GreenhousePlant(Material plantMaterial,Material plantGrownOn) { }
12 changes: 4 additions & 8 deletions src/main/java/world/bentobox/greenhouses/greenhouse/Roof.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package world.bentobox.greenhouses.greenhouse;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;

import org.bukkit.Bukkit;
import org.bukkit.Location;
Expand All @@ -28,13 +26,12 @@
public class Roof extends MinMaxXZ {
private static final List<Material> ROOF_BLOCKS;
static {
List<Material> r = Arrays.stream(Material.values())
// Roof blocks
ROOF_BLOCKS = Arrays.stream(Material.values())
.filter(Material::isBlock) // Blocks only, no items
.filter(m -> Tag.TRAPDOORS.isTagged(m) // All trapdoors
|| (m.name().contains("GLASS") && !m.name().contains("GLASS_PANE")) // All glass blocks
|| m.equals(Material.HOPPER)) // Hoppers
.collect(Collectors.toList());
ROOF_BLOCKS = Collections.unmodifiableList(r);
|| m.equals(Material.HOPPER)).toList();
}
/**
* Check if material is a roof material
Expand All @@ -56,7 +53,7 @@ public static boolean roofBlocks(@NonNull Material m) {

/**
* Finds a roof from a starting location under the roof and characterizes it
* @param cache
* @param cache async world cache
* @param loc - starting location
*/
public Roof(AsyncWorldCache cache, Location loc) {
Expand Down Expand Up @@ -207,7 +204,6 @@ private Vector spiralSearch(Vector v, int startY) {

/**
* Get highest roof block
* @param v - vector of search block
* @param x - x coord of current search
* @param startY - starting y coord
* @param z - z coord of current search
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package world.bentobox.greenhouses.greenhouse;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;

import org.bukkit.Bukkit;
import org.bukkit.Location;
Expand All @@ -17,14 +15,13 @@
public class Walls extends MinMaxXZ {
private static final List<Material> WALL_BLOCKS;
static {
List<Material> w = Arrays.stream(Material.values())
// Hoppers
WALL_BLOCKS = Arrays.stream(Material.values())
.filter(Material::isBlock) // Blocks only, no items
.filter(m -> !m.name().contains("TRAPDOOR")) // No trap doors
.filter(m -> m.name().contains("DOOR") // All doors
|| (m.name().contains("GLASS") && !m.name().contains("GLASS_PANE")) // All glass blocks
|| m.equals(Material.HOPPER)) // Hoppers
.collect(Collectors.toList());
WALL_BLOCKS = Collections.unmodifiableList(w);
|| m.equals(Material.HOPPER)).toList();
}

private int floor;
Expand Down

0 comments on commit 38de645

Please sign in to comment.