summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndre LeBlanc <andre@norcode.com>2013-03-20 11:48:35 -0400
committerGJ <gjmcferrin@gmail.com>2013-03-25 14:45:24 -0400
commit18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835 (patch)
treecdc0953ab3b6a0ce43c19338df8484c77bde5071 /src
parent96ba65d506641ef37fbefc5f9a6c65a4ccec5d23 (diff)
downloadcraftbukkit-18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835.tar
craftbukkit-18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835.tar.gz
craftbukkit-18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835.tar.lz
craftbukkit-18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835.tar.xz
craftbukkit-18d7bc7ca3ff8fa5a183b9bb6bbab8ae388a8835.zip
Allow fishing success rate to be adjustable. Adds BUKKIT-3837
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/EntityFishingHook.java8
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java21
2 files changed, 22 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index 7a630116..b35a5d65 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -234,13 +234,7 @@ public class EntityFishingHook extends Entity {
if (this.au > 0) {
--this.au;
} else {
- short short1 = 500;
-
- if (this.world.F(MathHelper.floor(this.locX), MathHelper.floor(this.locY) + 1, MathHelper.floor(this.locZ))) {
- short1 = 300;
- }
-
- if (this.random.nextInt(short1) == 0) {
+ if (random.nextDouble() < ((org.bukkit.entity.Fish) this.getBukkitEntity()).getBiteChance()) { // CraftBukkit - moved logic to CraftFish
this.au = this.random.nextInt(30) + 10;
this.motY -= 0.20000000298023224D;
this.makeSound("random.splash", 0.25F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java
index 1e432ca0..7504bd50 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java
@@ -2,13 +2,17 @@ package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityFishingHook;
import net.minecraft.server.EntityHuman;
+import net.minecraft.server.MathHelper;
+import org.apache.commons.lang.Validate;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Fish;
import org.bukkit.entity.LivingEntity;
public class CraftFish extends AbstractProjectile implements Fish {
+ private double biteChance = -1;
+
public CraftFish(CraftServer server, EntityFishingHook entity) {
super(server, entity);
}
@@ -40,4 +44,21 @@ public class CraftFish extends AbstractProjectile implements Fish {
public EntityType getType() {
return EntityType.FISHING_HOOK;
}
+
+ public double getBiteChance() {
+ EntityFishingHook hook = getHandle();
+
+ if (this.biteChance == -1) {
+ if (hook.world.F(MathHelper.floor(hook.locX), MathHelper.floor(hook.locY) + 1, MathHelper.floor(hook.locZ))) {
+ return 1/300.0;
+ }
+ return 1/500.0;
+ }
+ return this.biteChance;
+ }
+
+ public void setBiteChance(double chance) {
+ Validate.isTrue(chance >= 0 && chance <= 1, "The bite chance must be between 0 and 1.");
+ this.biteChance = chance;
+ }
}