Initial code #2
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package net.ardakaz.simpleMobSpawningOptimizer;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.Random;
|
||||
import java.lang.Math;
|
||||
|
||||
import static org.bukkit.Bukkit.getSimulationDistance;
|
||||
|
||||
public class SimpleMobSpawningOptimizer extends JavaPlugin implements Listener {
|
||||
|
||||
Random random = new Random();
|
||||
int mobsSpawned = 0;
|
||||
int mobsNotSpawned = 0;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Plugin startup logic
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
// Plugin shutdown logic
|
||||
getLogger().info(mobsSpawned + " mobs have been spawned, " + mobsNotSpawned + " mob spawns have been cancelled.");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
|
||||
int currentSimulationDistance = getSimulationDistance();
|
||||
int normalSimulationDistance = 10;
|
||||
double mobPercentage = (Math.PI * Math.pow(currentSimulationDistance, 2)) / (Math.PI * Math.pow(normalSimulationDistance, 2));
|
||||
|
||||
if (random.nextDouble() > mobPercentage) {
|
||||
event.setCancelled(true);
|
||||
mobsNotSpawned += 1;
|
||||
}
|
||||
else {
|
||||
mobsSpawned += 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user