Expand CreatureSpawner API

This commit is contained in:
Senmori 2018-01-24 17:18:25 +11:00 committed by md_5
parent 4a030536cd
commit c7656468e4
2 changed files with 84 additions and 0 deletions

View File

@ -1,5 +1,25 @@
--- a/net/minecraft/server/MobSpawnerAbstract.java --- a/net/minecraft/server/MobSpawnerAbstract.java
+++ b/net/minecraft/server/MobSpawnerAbstract.java +++ b/net/minecraft/server/MobSpawnerAbstract.java
@@ -12,13 +12,13 @@
private MobSpawnerData spawnData = new MobSpawnerData();
private double d;
private double e;
- private int minSpawnDelay = 200;
- private int maxSpawnDelay = 800;
- private int spawnCount = 4;
+ public int minSpawnDelay = 200; // CraftBukkit private -> public
+ public int maxSpawnDelay = 800; // CraftBukkit private -> public
+ public int spawnCount = 4; // CraftBukkit private -> public
private Entity i;
- private int maxNearbyEntities = 6;
- private int requiredPlayerRange = 16;
- private int spawnRange = 4;
+ public int maxNearbyEntities = 6; // CraftBukkit private -> public
+ public int requiredPlayerRange = 16; // CraftBukkit private -> public
+ public int spawnRange = 4; // CraftBukkit private -> public
public MobSpawnerAbstract() {}
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
public void setMobName(@Nullable MinecraftKey minecraftkey) { public void setMobName(@Nullable MinecraftKey minecraftkey) {
if (minecraftkey != null) { if (minecraftkey != null) {

View File

@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.block; package org.bukkit.craftbukkit.block;
import com.google.common.base.Preconditions;
import net.minecraft.server.MinecraftKey; import net.minecraft.server.MinecraftKey;
import net.minecraft.server.TileEntityMobSpawner; import net.minecraft.server.TileEntityMobSpawner;
import org.bukkit.Material; import org.bukkit.Material;
@ -57,4 +58,67 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
public void setDelay(int delay) { public void setDelay(int delay) {
this.getSnapshot().getSpawner().spawnDelay = delay; this.getSnapshot().getSpawner().spawnDelay = delay;
} }
@Override
public int getMinSpawnDelay() {
return this.getSnapshot().getSpawner().minSpawnDelay;
}
@Override
public void setMinSpawnDelay(int spawnDelay) {
Preconditions.checkArgument(spawnDelay <= getMaxSpawnDelay(), "Minimum Spawn Delay must be less than or equal to Maximum Spawn Delay");
this.getSnapshot().getSpawner().minSpawnDelay = spawnDelay;
}
@Override
public int getMaxSpawnDelay() {
return this.getSnapshot().getSpawner().maxSpawnDelay;
}
@Override
public void setMaxSpawnDelay(int spawnDelay) {
Preconditions.checkArgument(spawnDelay > 0, "Maximum Spawn Delay must be greater than 0.");
Preconditions.checkArgument(spawnDelay >= getMinSpawnDelay(), "Maximum Spawn Delay must be greater than or equal to Minimum Spawn Delay");
this.getSnapshot().getSpawner().maxSpawnDelay = spawnDelay;
}
@Override
public int getMaxNearbyEntities() {
return this.getSnapshot().getSpawner().maxNearbyEntities;
}
@Override
public void setMaxNearbyEntities(int maxNearbyEntities) {
this.getSnapshot().getSpawner().maxNearbyEntities = maxNearbyEntities;
}
@Override
public int getSpawnCount() {
return this.getSnapshot().getSpawner().spawnCount;
}
@Override
public void setSpawnCount(int count) {
this.getSnapshot().getSpawner().spawnCount = count;
}
@Override
public int getRequiredPlayerRange() {
return this.getSnapshot().getSpawner().requiredPlayerRange;
}
@Override
public void setRequiredPlayerRange(int requiredPlayerRange) {
this.getSnapshot().getSpawner().requiredPlayerRange = requiredPlayerRange;
}
@Override
public int getSpawnRange() {
return this.getSnapshot().getSpawner().spawnRange;
}
@Override
public void setSpawnRange(int spawnRange) {
this.getSnapshot().getSpawner().spawnRange = spawnRange;
}
} }