Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-19 04:50:06 +01:00
Added PlayerFish event.
Dieser Commit ist enthalten in:
Ursprung
aacb95e275
Commit
3789f61c7e
@ -6,6 +6,7 @@ import java.util.List;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.entity.EntityDamageByProjectileEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public class EntityFish extends Entity {
|
||||
@ -336,6 +337,16 @@ public class EntityFish extends Entity {
|
||||
byte b0 = 0;
|
||||
|
||||
if (this.c != null) {
|
||||
// CraftBukkit start
|
||||
PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) this.owner.getBukkitEntity(), this.c.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_ENTITY);
|
||||
this.world.getServer().getPluginManager().callEvent(playerFishEvent);
|
||||
|
||||
if (playerFishEvent.isCancelled()) {
|
||||
this.die();
|
||||
this.owner.hookedFish = null;
|
||||
return 0;
|
||||
}
|
||||
// CraftBukkit end
|
||||
double d0 = this.owner.locX - this.locX;
|
||||
double d1 = this.owner.locY - this.locY;
|
||||
double d2 = this.owner.locZ - this.locZ;
|
||||
@ -348,6 +359,16 @@ public class EntityFish extends Entity {
|
||||
b0 = 3;
|
||||
} else if (this.k > 0) {
|
||||
EntityItem entityitem = new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Item.RAW_FISH));
|
||||
// CraftBukkit start
|
||||
PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) this.owner.getBukkitEntity(), entityitem.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_FISH);
|
||||
this.world.getServer().getPluginManager().callEvent(playerFishEvent);
|
||||
|
||||
if (playerFishEvent.isCancelled()) {
|
||||
this.die();
|
||||
this.owner.hookedFish = null;
|
||||
return 0;
|
||||
}
|
||||
// CraftBukkit end
|
||||
double d5 = this.owner.locX - this.locX;
|
||||
double d6 = this.owner.locY - this.locY;
|
||||
double d7 = this.owner.locZ - this.locZ;
|
||||
@ -363,9 +384,25 @@ public class EntityFish extends Entity {
|
||||
}
|
||||
|
||||
if (this.h) {
|
||||
// CraftBukkit start
|
||||
PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) this.owner.getBukkitEntity(), null, PlayerFishEvent.State.IN_GROUND);
|
||||
this.world.getServer().getPluginManager().callEvent(playerFishEvent);
|
||||
|
||||
if (playerFishEvent.isCancelled()) {
|
||||
this.die();
|
||||
this.owner.hookedFish = null;
|
||||
return 0;
|
||||
}
|
||||
// CraftBukkit end
|
||||
b0 = 2;
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
if (b0 == 0) {
|
||||
PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) this.owner.getBukkitEntity(), null, PlayerFishEvent.State.FAILED_ATTEMPT);
|
||||
this.world.getServer().getPluginManager().callEvent(playerFishEvent);
|
||||
}
|
||||
// CraftBukkit end
|
||||
this.die();
|
||||
this.owner.hookedFish = null;
|
||||
return b0;
|
||||
|
38
src/main/java/net/minecraft/server/ItemFishingRod.java
Normale Datei
38
src/main/java/net/minecraft/server/ItemFishingRod.java
Normale Datei
@ -0,0 +1,38 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import org.bukkit.event.player.PlayerFishEvent; // CraftBukkit
|
||||
|
||||
public class ItemFishingRod extends Item {
|
||||
|
||||
public ItemFishingRod(int i) {
|
||||
super(i);
|
||||
this.d(64);
|
||||
this.c(1);
|
||||
}
|
||||
|
||||
public ItemStack a(ItemStack itemstack, World world, EntityHuman entityhuman) {
|
||||
if (entityhuman.hookedFish != null) {
|
||||
int i = entityhuman.hookedFish.h();
|
||||
|
||||
itemstack.damage(i, entityhuman);
|
||||
entityhuman.w();
|
||||
} else {
|
||||
// CraftBukkit start
|
||||
PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), null,PlayerFishEvent.State.FISHING);
|
||||
world.getServer().getPluginManager().callEvent(playerFishEvent);
|
||||
|
||||
if (playerFishEvent.isCancelled()) {
|
||||
return itemstack;
|
||||
}
|
||||
// CraftBukkit end
|
||||
world.makeSound(entityhuman, "random.bow", 0.5F, 0.4F / (b.nextFloat() * 0.4F + 0.8F));
|
||||
if (!world.isStatic) {
|
||||
world.addEntity(new EntityFish(world, entityhuman));
|
||||
}
|
||||
|
||||
entityhuman.w();
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren