Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-17 13:30:06 +01:00
Added FoodLevelChange event.
Dieser Commit ist enthalten in:
Ursprung
8d5a8667de
Commit
aa0739d90a
@ -1,6 +1,9 @@
|
|||||||
package net.minecraft.server;
|
package net.minecraft.server;
|
||||||
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent; // CraftBukkit
|
// CraftBukkit start
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||||
|
// CraftBukkit end
|
||||||
|
|
||||||
public class FoodMetaData {
|
public class FoodMetaData {
|
||||||
|
|
||||||
@ -32,7 +35,14 @@ public class FoodMetaData {
|
|||||||
if (this.saturationLevel > 0.0F) {
|
if (this.saturationLevel > 0.0F) {
|
||||||
this.saturationLevel = Math.max(this.saturationLevel - 1.0F, 0.0F);
|
this.saturationLevel = Math.max(this.saturationLevel - 1.0F, 0.0F);
|
||||||
} else if (i > 0) {
|
} else if (i > 0) {
|
||||||
this.foodLevel = Math.max(this.foodLevel - 1, 0);
|
// CraftBukkit start
|
||||||
|
FoodLevelChangeEvent event = new FoodLevelChangeEvent(entityhuman.getBukkitEntity(), Math.max(this.foodLevel - 1, 0));
|
||||||
|
entityhuman.world.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
if (!event.isCancelled()) {
|
||||||
|
this.foodLevel = event.getFoodLevel();
|
||||||
|
}
|
||||||
|
// CraftBukkit end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
91
src/main/java/net/minecraft/server/ItemFood.java
Normale Datei
91
src/main/java/net/minecraft/server/ItemFood.java
Normale Datei
@ -0,0 +1,91 @@
|
|||||||
|
package net.minecraft.server;
|
||||||
|
|
||||||
|
import org.bukkit.event.entity.FoodLevelChangeEvent; // CraftBukkit
|
||||||
|
|
||||||
|
public class ItemFood extends Item {
|
||||||
|
|
||||||
|
public final int a;
|
||||||
|
private final int bt;
|
||||||
|
private final float bu;
|
||||||
|
private final boolean bv;
|
||||||
|
private boolean bw;
|
||||||
|
private int bx;
|
||||||
|
private int by;
|
||||||
|
private int bz;
|
||||||
|
private float bA;
|
||||||
|
|
||||||
|
public ItemFood(int i, int j, float f, boolean flag) {
|
||||||
|
super(i);
|
||||||
|
this.a = 32;
|
||||||
|
this.bt = j;
|
||||||
|
this.bv = flag;
|
||||||
|
this.bu = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemFood(int i, int j, boolean flag) {
|
||||||
|
this(i, j, 0.6F, flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack b(ItemStack itemstack, World world, EntityHuman entityhuman) {
|
||||||
|
--itemstack.count;
|
||||||
|
// CraftBukkit start
|
||||||
|
FoodLevelChangeEvent event = new FoodLevelChangeEvent(entityhuman.getBukkitEntity(), Math.min(this.k() + entityhuman.foodData.foodLevel, 20));
|
||||||
|
entityhuman.world.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
if (!event.isCancelled()) {
|
||||||
|
entityhuman.getFoodData().a(event.getFoodLevel(), this.l());
|
||||||
|
}
|
||||||
|
// CraftBukkit end
|
||||||
|
|
||||||
|
if (!world.isStatic && this.bx > 0 && world.random.nextFloat() < this.bA) {
|
||||||
|
entityhuman.d(new MobEffect(this.bx, this.by * 20, this.bz));
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemstack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int c(ItemStack itemstack) {
|
||||||
|
return 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnumAnimation b(ItemStack itemstack) {
|
||||||
|
return EnumAnimation.b;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack a(ItemStack itemstack, World world, EntityHuman entityhuman) {
|
||||||
|
if (entityhuman.c(this.bw)) {
|
||||||
|
entityhuman.a(itemstack, this.c(itemstack));
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemstack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int k() {
|
||||||
|
return this.bt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float l() {
|
||||||
|
return this.bu;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean m() {
|
||||||
|
return this.bv;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemFood a(int i, int j, int k, float f) {
|
||||||
|
this.bx = i;
|
||||||
|
this.by = j;
|
||||||
|
this.bz = k;
|
||||||
|
this.bA = f;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemFood n() {
|
||||||
|
this.bw = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Item a(String s) {
|
||||||
|
return super.a(s);
|
||||||
|
}
|
||||||
|
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren