Skip to content

Commit

Permalink
change all random calls to a static Random object to ensure proper ra…
Browse files Browse the repository at this point in the history
…ndomness
  • Loading branch information
Jeebiss committed Apr 24, 2013
1 parent 1e2ab24 commit 7d69e5f
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 24 deletions.
Expand Up @@ -15,6 +15,7 @@

import net.aufdemrand.denizen.listeners.AbstractListener;
import net.aufdemrand.denizen.listeners.core.ItemDropListenerType.ItemDropType;
import net.aufdemrand.denizen.utilities.RandomGenerator;
import net.aufdemrand.denizen.utilities.arguments.aH;
import net.aufdemrand.denizen.utilities.arguments.aH.ArgumentType;
import net.aufdemrand.denizen.utilities.debugging.dB;
Expand All @@ -37,8 +38,6 @@ public class ItemDropListenerInstance extends AbstractListener implements Listen
Integer quantity = 1;
Integer qtyDropped = 0;

Random r = new Random();

@Override
public void constructed() {
denizen.getServer().getPluginManager().registerEvents(this, denizen);
Expand Down Expand Up @@ -154,7 +153,7 @@ public void onLoad() {
dropRate = (Integer) get("dropRate");
quantity = (Integer) get("quantity");
qtyDropped = (Integer) get("qtyDropped");
r = (Random) get("r");
//r = (Random) get("r");

}

Expand All @@ -171,7 +170,7 @@ public void onSave() {
store("dropRate", dropRate);
store("quantity", quantity);
store("qtyDropped", qtyDropped);
store("r", r);
//store("r", r);
}

@Override
Expand Down Expand Up @@ -207,7 +206,7 @@ public void mobKilled(EntityDeathEvent event) {
dB.echoDebug("...within region");

dB.echoDebug("...trying to drop item");
if (r.nextInt(101) < dropRate) {
if (RandomGenerator.nextInt(101) < dropRate) {
dB.echoDebug("...item should drop now");
event.getEntity().getWorld().dropItem(event.getEntity().getLocation(), item);
qtyDropped++;
Expand All @@ -233,7 +232,7 @@ public void blockMined(BlockBreakEvent event) {
}
dB.echoDebug("...within region");

if (r.nextInt(101) < dropRate) {
if (RandomGenerator.nextInt(101) < dropRate) {
event.getBlock().getWorld().dropItem(event.getBlock().getLocation(), item);
qtyDropped++;
dB.echoDebug("...item dropped");
Expand All @@ -258,7 +257,7 @@ public void blockPlaced(BlockPlaceEvent event) {
}
dB.echoDebug("...within region");

if (r.nextInt(101) < dropRate) {
if (RandomGenerator.nextInt(101) < dropRate) {
event.getBlock().getWorld().dropItem(event.getBlock().getLocation(), item);
qtyDropped++;
dB.echoDebug("...item dropped");
Expand Down
Expand Up @@ -3,10 +3,10 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import net.aufdemrand.denizen.npc.dNPC;
import net.aufdemrand.denizen.npc.activities.AbstractActivity;
import net.aufdemrand.denizen.utilities.RandomGenerator;
import net.aufdemrand.denizen.utilities.arguments.aH;
import net.aufdemrand.denizen.utilities.arguments.aH.ArgumentType;
import net.aufdemrand.denizen.utilities.debugging.dB;
Expand Down Expand Up @@ -94,12 +94,12 @@ public boolean removeGoal(dNPC npc, boolean verbose) {

public Location getNewLocation(double X, double Y, double Z, World world, int radius, int depth) {
Location newLocation = new Location(world, X, Y, Z);
Random intRandom = new Random();
int randomX = intRandom.nextInt(radius * 2) - radius;
int randomZ = intRandom.nextInt(radius * 2) - radius;

int randomX = RandomGenerator.nextInt(radius * 2) - radius;
int randomZ = RandomGenerator.nextInt(radius * 2) - radius;
int randomY = 0;

if (depth > 1) randomY = intRandom.nextInt(depth * 2) - depth;
if (depth > 1) randomY = RandomGenerator.nextInt(depth * 2) - depth;
else randomY = 2;

newLocation.setX(newLocation.getX() + randomX);
Expand Down
@@ -1,9 +1,9 @@
package net.aufdemrand.denizen.npc.traits;

import java.util.ArrayList;
import java.util.Random;

import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.RandomGenerator;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
Expand Down Expand Up @@ -145,8 +145,8 @@ private void cast() {
victor.setY(Math.tan(launchAngle) * dist);
victor = normalizeVector(victor);
v = v + (.5 * Math.pow(hangtime, 2));
Random rand = new Random(1234);
v = v+ (rand.nextDouble() - .8)/2;
//Random rand = new Random(1234);
v = v+ (RandomGenerator.nextDouble() - .8)/2;
victor = victor.multiply(v / 20.0);

Projectile theHook = (Projectile) fishHook.getBukkitEntity();
Expand Down
Expand Up @@ -5,11 +5,11 @@
import net.aufdemrand.denizen.scripts.ScriptEntry;
import net.aufdemrand.denizen.scripts.ScriptQueue;
import net.aufdemrand.denizen.scripts.commands.AbstractCommand;
import net.aufdemrand.denizen.utilities.RandomGenerator;
import net.aufdemrand.denizen.utilities.arguments.aH;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizen.utilities.debugging.dB.Messages;

import java.util.Random;

/**
* Randomly selects a random script entry from the proceeding entries, discards
Expand Down Expand Up @@ -74,8 +74,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
Integer possibilities = (Integer) scriptEntry.getObject("possibilities");
ScriptQueue queue = (ScriptQueue) scriptEntry.getObject("queue");

Random random = new Random();
int selected = random.nextInt(possibilities);
int selected = RandomGenerator.nextInt(possibilities);
ScriptEntry keeping = null;

dB.echoDebug("...random number generator selected '%s'", String.valueOf(selected + 1));
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/net/aufdemrand/denizen/tags/core/UtilTags.java
Expand Up @@ -2,14 +2,14 @@

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.events.ReplaceableTagEvent;
import net.aufdemrand.denizen.utilities.RandomGenerator;
import net.aufdemrand.denizen.utilities.arguments.aH;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

public class UtilTags implements Listener {
Expand Down Expand Up @@ -42,8 +42,7 @@ public void utilTags(ReplaceableTagEvent event) {
max = store;
}

Random rand = new Random();
event.setReplaced(String.valueOf(rand.nextInt(max - min + 1) + min));
event.setReplaced(String.valueOf(RandomGenerator.randInt(min, max)));
}
}
}
Expand Down
@@ -0,0 +1,21 @@
package net.aufdemrand.denizen.utilities;

import java.util.Random;

public class RandomGenerator {

static Random rand = new Random();

public static int randInt(int from, int to) {
return rand.nextInt(to - from + 1) + from;
}

public static int nextInt(int n) {
return rand.nextInt(n);
}

public static double nextDouble() {
return rand.nextDouble();
}

}
5 changes: 2 additions & 3 deletions src/main/java/net/aufdemrand/denizen/utilities/Utilities.java
Expand Up @@ -32,10 +32,9 @@ public class Utilities {

public static Location getWalkableLocationNear(Location location, int range) {
Location returnable;
Random range_random = new Random();

int selected_x = range_random.nextInt(range * 2);
int selected_z = range_random.nextInt(range * 2);
int selected_x = RandomGenerator.nextInt(range * 2);
int selected_z = RandomGenerator.nextInt(range * 2);
returnable = location.add(selected_x - range, 1, selected_z - range);

if (!isWalkable(returnable)) return getWalkableLocationNear(location, range);
Expand Down

0 comments on commit 7d69e5f

Please sign in to comment.