Fix /plot area create <name> without passing a specific terrain type (#4025)

fix: Ensure PlotAreaBuilder#plotAreaType returns non-null value
This commit is contained in:
Pierre Maurice Schwang 2023-04-29 15:27:49 +02:00 committed by GitHub
parent 0484ac73af
commit ca0f38255d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,11 +25,17 @@ import com.plotsquared.core.plot.PlotAreaTerrainType;
import com.plotsquared.core.plot.PlotAreaType; import com.plotsquared.core.plot.PlotAreaType;
import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.util.SetupUtils; import com.plotsquared.core.util.SetupUtils;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Objects;
public class PlotAreaBuilder { public class PlotAreaBuilder {
private String generatorName; private String generatorName;
private String plotManager; private String plotManager;
@Nullable
private PlotAreaType plotAreaType; private PlotAreaType plotAreaType;
private PlotAreaTerrainType terrainType; private PlotAreaTerrainType terrainType;
private String worldName; private String worldName;
@ -85,8 +91,10 @@ public class PlotAreaBuilder {
return this.plotManager; return this.plotManager;
} }
@NotNull
@Contract(" -> !null")
public PlotAreaType plotAreaType() { public PlotAreaType plotAreaType() {
return this.plotAreaType; return Objects.requireNonNullElse(this.plotAreaType, PlotAreaType.NORMAL);
} }
public PlotAreaTerrainType terrainType() { public PlotAreaTerrainType terrainType() {
@ -127,7 +135,8 @@ public class PlotAreaBuilder {
return this; return this;
} }
public PlotAreaBuilder plotAreaType(PlotAreaType plotAreaType) { public PlotAreaBuilder plotAreaType(@NotNull PlotAreaType plotAreaType) {
Objects.requireNonNull(plotAreaType, "PlotAreaType must not be null");
this.plotAreaType = plotAreaType; this.plotAreaType = plotAreaType;
return this; return this;
} }